Error compiling template "Designs/rm/DynamicArticleListPage.cshtml"
Line 21: The using directive for 'Dynamicweb.Content.Items' appeared previously in this namespace
Line 22: The using directive for 'Dynamicweb.Frontend.Navigation' appeared previously in this namespace
Line 23: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 25: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 26: The using directive for 'System.Text.RegularExpressions' appeared previously in this namespace
Line 33: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 34: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 36: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 38: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 39: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 40: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 41: The using directive for 'System.Reflection' appeared previously in this namespace
Line 42: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 43: The using directive for 'System.Reflection' appeared previously in this namespace
Line 44: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 45: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 46: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 47: The using directive for 'System.Text.RegularExpressions' appeared previously in this namespace
Line 48: The using directive for 'System.Reflection' appeared previously in this namespace
Line 49: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 50: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 51: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 52: The using directive for 'System.Reflection' appeared previously in this namespace
Line 53: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 54: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 55: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 56: The using directive for 'System.Reflection' appeared previously in this namespace
Line 57: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 58: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 59: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 60: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 61: The using directive for 'System.Reflection' appeared previously in this namespace
Line 62: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 63: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 64: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 65: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 66: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 68: The using directive for 'System.Reflection' appeared previously in this namespace
Line 69: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 70: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 71: The using directive for 'System.Reflection' appeared previously in this namespace
Line 72: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 73: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 74: The using directive for 'System.Reflection' appeared previously in this namespace
Line 75: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 76: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 77: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 78: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 79: The using directive for 'System.Reflection' appeared previously in this namespace
Line 80: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 81: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 82: The using directive for 'System.Reflection' appeared previously in this namespace
Line 83: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 84: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 85: The using directive for 'System.Reflection' appeared previously in this namespace
Line 86: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 87: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 88: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 89: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 90: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 91: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 92: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 93: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 94: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 95: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 96: The using directive for 'Dynamicweb.Content.Items' appeared previously in this namespace
Line 97: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 98: The using directive for 'Dynamicweb.Rapido.Blocks.Components.Articles' appeared previously in this namespace
Line 99: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 100: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 1704: 'PageView.Item' is obsolete: 'Use 'Page.Item' instead'
Line 1704: 'PageView.Item' is obsolete: 'Use 'Page.Item' instead'
Line 1709: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 1711: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 1771: The name 'RenderMobileFilters' does not exist in the current context
Line 1780: 'PageView.Item' is obsolete: 'Use 'Page.Item' instead'
Line 1840: 'PageView.Item' is obsolete: 'Use 'Page.Item' instead'
Line 1855: 'PageView.Item' is obsolete: 'Use 'Page.Item' instead'
Line 1871: 'PageView.Item' is obsolete: 'Use 'Page.Item' instead'
Line 1918: Argument 1: cannot convert from 'void' to 'object'
Line 5072: The variable 'placeholderImage' is assigned but its value is never used

1 // <auto-generated/> 2 #pragma warning disable 1591 3 namespace CompiledRazorTemplates.Dynamic 4 { 5 #line hidden 6 using System.Threading.Tasks; 7 using System.Linq; 8 using System; 9 using System.Globalization; 10 using System.Text.RegularExpressions; 11 using Custom.Integration.Brokers; 12 using RealMaeglerne.Dynamicweb; 13 using Dynamicweb.Content.Items; 14 using Dynamicweb.Environment; 15 using Newtonsoft.Json; 16 using Dynamicweb.Logging; 17 using Dynamicweb.Core; 18 using Dynamicweb.Frontend.Navigation; 19 using Dynamicweb; 20 using static RealMaeglerne.Library.Helper; 21 using Dynamicweb.Content.Items; 22 using Dynamicweb.Frontend.Navigation; 23 using Dynamicweb.Core; 24 using Dynamicweb.Core.Encoders; 25 using Dynamicweb; 26 using System.Text.RegularExpressions; 27 using System.Collections.Generic; 28 using System.Reflection; 29 using Dynamicweb.Rapido.Blocks.Components; 30 using Dynamicweb.Rapido.Blocks.Components.Articles; 31 using Dynamicweb.Rapido.Blocks.Components.Documentation; 32 using Dynamicweb.Rapido.Blocks; 33 using Dynamicweb; 34 using Dynamicweb.Rapido.Blocks.Components; 35 using Dynamicweb.Rapido.Blocks.Components.General; 36 using Dynamicweb.Rapido.Blocks; 37 using System.IO; 38 using Dynamicweb.Rapido.Blocks.Components; 39 using Dynamicweb.Rapido.Blocks.Components.General; 40 using Dynamicweb.Rapido.Blocks; 41 using System.Reflection; 42 using Dynamicweb.Rapido.Blocks.Components.General; 43 using System.Reflection; 44 using Dynamicweb.Rapido.Blocks.Components.General; 45 using Dynamicweb.Rapido.Blocks.Components; 46 using Dynamicweb.Core; 47 using System.Text.RegularExpressions; 48 using System.Reflection; 49 using Dynamicweb.Rapido.Blocks.Components.General; 50 using Dynamicweb.Rapido.Blocks.Components; 51 using Dynamicweb.Core; 52 using System.Reflection; 53 using Dynamicweb.Rapido.Blocks.Components; 54 using Dynamicweb.Rapido.Blocks.Components.General; 55 using Dynamicweb.Rapido.Blocks; 56 using System.Reflection; 57 using Dynamicweb.Rapido.Blocks.Components.General; 58 using Dynamicweb.Rapido.Blocks.Components; 59 using Dynamicweb.Rapido.Blocks.Components.General; 60 using Dynamicweb.Rapido.Blocks.Components; 61 using System.Reflection; 62 using Dynamicweb.Rapido.Blocks.Components.General; 63 using Dynamicweb.Core; 64 using Dynamicweb.Rapido.Blocks.Components; 65 using Dynamicweb.Rapido.Blocks.Components.General; 66 using Dynamicweb.Rapido.Blocks; 67 using Dynamicweb.Frontend; 68 using System.Reflection; 69 using Dynamicweb.Rapido.Blocks.Components.General; 70 using Dynamicweb.Rapido.Blocks.Components; 71 using System.Reflection; 72 using Dynamicweb.Rapido.Blocks.Components.General; 73 using Dynamicweb.Rapido.Blocks.Components; 74 using System.Reflection; 75 using Dynamicweb.Rapido.Blocks.Components.General; 76 using Dynamicweb.Rapido.Blocks.Components; 77 using Dynamicweb.Rapido.Blocks.Components.General; 78 using Dynamicweb.Rapido.Blocks.Components; 79 using System.Reflection; 80 using Dynamicweb.Rapido.Blocks.Components.General; 81 using Dynamicweb.Rapido.Blocks.Components; 82 using System.Reflection; 83 using Dynamicweb.Rapido.Blocks.Components.General; 84 using Dynamicweb.Rapido.Blocks.Components; 85 using System.Reflection; 86 using Dynamicweb.Rapido.Blocks.Components.General; 87 using Dynamicweb.Rapido.Blocks.Components; 88 using Dynamicweb.Rapido.Blocks.Components.General; 89 using Dynamicweb.Rapido.Blocks.Components.General; 90 using Dynamicweb.Rapido.Blocks.Components; 91 using Dynamicweb.Rapido.Blocks.Components.General; 92 using Dynamicweb.Rapido.Blocks.Components; 93 using Dynamicweb.Rapido.Blocks.Components.General; 94 using Dynamicweb.Rapido.Blocks.Components; 95 using Dynamicweb.Core; 96 using Dynamicweb.Content.Items; 97 using Dynamicweb.Rapido.Blocks.Components; 98 using Dynamicweb.Rapido.Blocks.Components.Articles; 99 using Dynamicweb.Rapido.Blocks.Components.General; 100 using Dynamicweb.Rapido.Blocks; 101 using Dynamicweb.Security.UserManagement; 102 internal class RazorEngine_3025e918dd8249b09179ecc7b82af701 : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 103 { 104 #pragma warning disable 1998 105 public async override global::System.Threading.Tasks.Task ExecuteAsync() 106 { 107 WriteLiteral("\r\n"); 108 WriteLiteral("\r\n"); 109 WriteLiteral("\r\n"); 110 WriteLiteral("\r\n"); 111 WriteLiteral("\r\n"); 112 WriteLiteral("\r\n\r\n\r\n"); 113 WriteLiteral("\r\n"); 114 WriteLiteral("\r\n"); 115 WriteLiteral("\r\n"); 116 WriteLiteral("\r\n"); 117 WriteLiteral("\r\n"); 118 WriteLiteral("\r\n"); 119 WriteLiteral("\r\n"); 120 WriteLiteral("\r\n"); 121 WriteLiteral("\r\n"); 122 WriteLiteral("\r\n"); 123 WriteLiteral("\r\n"); 124 WriteLiteral("\r\n"); 125 WriteLiteral("\r\n"); 126 WriteLiteral("\r\n\r\n"); 127 WriteLiteral("\r\n"); 128 WriteLiteral("\r\n"); 129 WriteLiteral("\r\n"); 130 WriteLiteral("\r\n"); 131 WriteLiteral("\r\n"); 132 WriteLiteral("\r\n"); 133 WriteLiteral("\r\n"); 134 WriteLiteral("\r\n"); 135 WriteLiteral("\r\n"); 136 WriteLiteral("\r\n"); 137 WriteLiteral("\r\n"); 138 WriteLiteral("\r\n"); 139 WriteLiteral("\r\n"); 140 WriteLiteral("\r\n"); 141 WriteLiteral("\r\n"); 142 WriteLiteral("\r\n"); 143 WriteLiteral("\r\n"); 144 WriteLiteral("\r\n"); 145 WriteLiteral("\r\n"); 146 WriteLiteral("\r\n"); 147 WriteLiteral("\r\n"); 148 WriteLiteral("\r\n"); 149 WriteLiteral("\r\n"); 150 WriteLiteral("\r\n\r\n"); 151 WriteLiteral("\r\n"); 152 WriteLiteral("\r\n"); 153 WriteLiteral("\r\n\r\n"); 154 WriteLiteral("\r\n"); 155 WriteLiteral("\r\n"); 156 WriteLiteral("\r\n"); 157 WriteLiteral("\r\n\r\n"); 158 WriteLiteral("\r\n"); 159 WriteLiteral("\r\n"); 160 WriteLiteral("\r\n"); 161 WriteLiteral("\r\n"); 162 163 Context.Current.Response.AddHeader("access-control-allow-origin", "*"); 164 165 string bodyClass = ""; 166 string template = "real"; 167 string TemplateUrl = "/Files/Templates/Designs/rm/"; 168 string MetaTitle = Model.Title; 169 string MetaDescription = Model.Description; 170 string MetaKeywords = Model.Keywords; 171 string searchClass = ""; 172 173 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css")); 174 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}"; 175 176 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg"; 177 178 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2"); 179 180 // Indstillinger 181 var settings_Frontpage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : ""; 182 var settings_Boligside = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : ""; 183 var settings_Maeglersogning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : ""; 184 var settings_MinSide = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : ""; 185 var settings_Sibling_Site = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : ""; 186 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : ""; 187 var settings_Product_Group = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : ""; 188 var settings_Boligagent = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : ""; 189 var settings_Persondatapolitik = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : ""; 190 191 // API 192 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : ""; 193 var settings_BoligListFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : ""; 194 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : ""; 195 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : ""; 196 var settings_BoligCountFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : ""; 197 var settings_BoligMapFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : ""; 198 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"]; 199 200 // Forside 201 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : ""; 202 var settings_FrontpageVideo = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : ""; 203 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : ""; 204 205 // Tracking 206 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : ""; 207 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]))) 208 { 209 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]); 210 } 211 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : ""; 212 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : ""; 213 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : ""; 214 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]); 215 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]); 216 var settings_Google_Optimize_Id = Converter.ToString(SettingsItem["Google_Optimize_Id"]); 217 218 // Indstillinger for brugerfunktioner 219 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : ""; 220 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : ""; 221 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : ""; 222 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : ""; 223 224 int createUserParagraphId = 0; 225 int loginParagraphId = 0; 226 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId); 227 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId); 228 229 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv. 230 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv) 231 int searchPageId = GetPageSettingsPageId("Boligside"); 232 if (searchPageId == 0) 233 { 234 searchPageId = GetWebsiteSettingsPageId("Boligside"); 235 } 236 237 int boligsideId = GetPageSettingsPageId("Boligside"); 238 if (boligsideId == 0) 239 { 240 boligsideId = GetWebsiteSettingsPageId("Boligside"); 241 } 242 243 string productGroupFilter = String.Empty; 244 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null) 245 { 246 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString(); 247 } 248 249 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"])) 250 { 251 searchClass = "is-frontpage"; 252 } 253 254 bool isErhverv = false; 255 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null) 256 { 257 var s = Pageview.Page.PropertyItem["Erhverv"].ToString(); 258 Boolean.TryParse(s, out isErhverv); 259 } 260 261 bool isBrokerPage = false; 262 if (!string.IsNullOrEmpty(Model.Area.Item.GetString("M_glerGruppeId"))) 263 { 264 isBrokerPage = true; 265 bodyClass = ""; // Get rid of transparent header on brokerPage 266 } 267 268 string callTrackingId = Model.Item.GetString("CallTrackingId"); 269 270 RealEstate.User.Model.BrokerEmployee MyBroker = null; 271 try 272 { 273 var MyB = new RealEstate.User.MyBroker(); 274 MyBroker = MyB.GetMyBroker(); 275 } 276 catch 277 { 278 // Ignore 279 } 280 281 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : ""); 282 string querySearchNameAttr = "search"; 283 284 // Overwrite search with zipcodeinterval if set 285 if (Context.Current.Request.QueryString["zipcodeinterval"] != null) 286 { 287 querySearch = Context.Current.Request.QueryString["zipcodeinterval"]; 288 querySearchNameAttr = "zipcodeinterval"; 289 } 290 291 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : ""); 292 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : ""); 293 294 Dynamicweb.Security.UserManagement.User user = null; 295 int userID = 0; 296 string userName = ""; 297 string userEmail = ""; 298 string userPhone = ""; 299 string userZip = ""; 300 string userAddress = ""; 301 302 if (Dynamicweb.Security.UserManagement.UserContext.Current.IsLoggedOn) 303 { 304 user = Dynamicweb.Security.UserManagement.UserContext.Current.User; 305 userName = user.Name; 306 userEmail = user.Email; 307 userPhone = user.Phone; 308 userZip = user.Zip; 309 userAddress = user.Address; 310 userID = user.ID; 311 } 312 313 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode"); 314 string forgotPwTemplate = ""; 315 string forgotPwSender = ""; 316 string markerColor = ""; 317 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png"; 318 319 // Important - e-mail templates for forgotPw must be placed in "UserManagement/Login" folder 320 forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml"; 321 forgotPwSender = "noreply@mailreal.dk"; 322 markerColor = "#213960"; 323 324 var butikId = string.Empty; 325 string bEmail = string.Empty; 326 if (MyBroker != null && MyBroker.Broker != null) 327 { 328 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 329 bEmail = MyBroker.Broker.Item().GetString("Email"); 330 } 331 332 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment")); 333 334 var termsMail = "info@realmaeglerne.dk"; 335 WriteLiteral("\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta charset=\"utf-8\">\r\n <title>"); 336 Write(MetaTitle); 337 WriteLiteral("</title>\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n <meta name=\"description\""); 338 BeginWriteAttribute("content", " content=\"", 117041, "\"", 117067, 1); 339 WriteAttributeValue("", 117051, MetaDescription, 117051, 16, false); 340 EndWriteAttribute(); 341 WriteLiteral(">\r\n <meta name=\"keywords\""); 342 BeginWriteAttribute("content", " content=\"", 117096, "\"", 117119, 1); 343 WriteAttributeValue("", 117106, MetaKeywords, 117106, 13, false); 344 EndWriteAttribute(); 345 WriteLiteral(">\r\n <meta name=\"format-detection\" content=\"telephone=no\">\r\n <meta http-equiv=\"Expires\" content=\"60\">\r\n <meta name=\"robots\""); 346 BeginWriteAttribute("content", " content=\"", 117251, "\"", 117357, 3); 347 WriteAttributeValue("", 117261, Pageview.Area.Noindex ? "noindex" : "index", 117261, 46, false); 348 WriteAttributeValue("", 117307, ",", 117307, 1, true); 349 WriteAttributeValue("", 117308, Pageview.Area.Nofollow ? "nofollow" : "follow", 117308, 49, false); 350 EndWriteAttribute(); 351 WriteLiteral(">\r\n\r\n"); 352 WriteLiteral("\r\n "); 353 Write(RenderSnippet("OpenGraphTags")); 354 WriteLiteral("\r\n"); 355 if (!string.IsNullOrEmpty(settings_Google_Optimize_Id)) 356 { 357 WriteLiteral(" <!-- Google optimize script-->\r\n <script"); 358 BeginWriteAttribute("src", " src=\"", 117549, "\"", 117629, 2); 359 WriteAttributeValue("", 117555, "https://www.googleoptimize.com/optimize.js?id=", 117555, 46, true); 360 WriteAttributeValue("", 117601, settings_Google_Optimize_Id, 117601, 28, false); 361 EndWriteAttribute(); 362 WriteLiteral("></script>\r\n"); 363 } 364 WriteLiteral(@" <!-- TrustBox script --> 365 <script type=""text/javascript"" src=""//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js"" async></script> 366 <!-- End TrustBox script --> 367 368 <script type=""application/ld+json""> 369 { 370 ""context"": ""https://schema.org/"", 371 """); 372 WriteLiteral(@"@type"": ""WebSite"", 373 ""name"": ""RealMæglerne"", 374 ""url"": ""https://www.realmaeglerne.dk/"", 375 ""potentialAction"": { 376 ""type"": ""SearchAction"", 377 ""target"": ""https://www.realmaeglerne.dk/find-maegler?q={search_term_string}"", 378 ""query-input"": ""required name=search_term_string"" 379 } 380 } 381 </script> 382 383 <script type=""application/ld+json""> 384 { 385 ""context"": ""https://schema.org"", 386 """); 387 WriteLiteral(@"@type"": ""Corporation"", 388 ""name"": ""RealMæglerne"", 389 ""alternateName"": ""R&B Mægler A/S"", 390 ""url"": ""https://www.realmaeglerne.dk"", 391 ""logo"": ""https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png"", 392 ""contactPoint"": { 393 ""type"": ""ContactPoint"", 394 ""telephone"": ""+4570237153"", 395 ""contactType"": ""sales"", 396 ""areaServed"": ""DK"", 397 ""availableLanguage"": ""Danish"" 398 }, 399 ""sameAs"": [ 400 ""https://www.facebook.com/realmaeglerne/"", 401 ""https://www.linkedin.com/company/realmæglerne/"", 402 ""https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g"", 403 ""https://www.realmaeglerne.dk/"" 404 ] 405 } 406 </script> 407 "); 408 Write(RenderSnippet("StructuredData")); 409 WriteLiteral("\r\n"); 410 WriteLiteral("\r\n"); 411 WriteLiteral(" <link rel=\"stylesheet\""); 412 BeginWriteAttribute("href", " href=\"", 119251, "\"", 119302, 2); 413 WriteAttributeValue("", 119258, TemplateUrl, 119258, 14, false); 414 WriteAttributeValue("", 119272, "assets/fontawesome/css/all.css", 119272, 30, true); 415 EndWriteAttribute(); 416 WriteLiteral(" async />\r\n <link rel=\"stylesheet\""); 417 BeginWriteAttribute("href", " href=\"", 119344, "\"", 119359, 1); 418 WriteAttributeValue("", 119351, mainCSS, 119351, 8, false); 419 EndWriteAttribute(); 420 WriteLiteral(" async />\r\n"); 421 422 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"])) 423 { 424 var cssErhvervFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/erhverv.min.css")); 425 string erhvervCSS = TemplateUrl + $"assets/dist/css/erhverv.min.css?{cssErhvervFileInfo.LastWriteTime.Ticks}"; 426 WriteLiteral(" <link rel=\"stylesheet\""); 427 BeginWriteAttribute("href", " href=\"", 119763, "\"", 119781, 1); 428 WriteAttributeValue("", 119770, erhvervCSS, 119770, 11, false); 429 EndWriteAttribute(); 430 WriteLiteral(" async>\r\n"); 431 } 432 WriteLiteral("\r\n\r\n <link rel=\"icon\" type=\"image/ico\""); 433 BeginWriteAttribute("href", " href=\"", 119850, "\"", 119914, 2); 434 WriteAttributeValue("", 119857, TemplateUrl, 119857, 14, false); 435 WriteAttributeValue("", 119871, "assets/images/favicons/favicon-real.ico?v=1", 119871, 43, true); 436 EndWriteAttribute(); 437 WriteLiteral(">\r\n <link rel=\"icon\" type=\"image/png\""); 438 BeginWriteAttribute("href", " href=\"", 119955, "\"", 120021, 2); 439 WriteAttributeValue("", 119962, TemplateUrl, 119962, 14, false); 440 WriteAttributeValue("", 119976, "assets/images/favicons/favicon-real-16x16.png", 119976, 45, true); 441 EndWriteAttribute(); 442 WriteLiteral(" sizes=\"16x16\">\r\n <link rel=\"icon\" type=\"image/png\""); 443 BeginWriteAttribute("href", " href=\"", 120076, "\"", 120142, 2); 444 WriteAttributeValue("", 120083, TemplateUrl, 120083, 14, false); 445 WriteAttributeValue("", 120097, "assets/images/favicons/favicon-real-32x32.png", 120097, 45, true); 446 EndWriteAttribute(); 447 WriteLiteral(" sizes=\"32x32\">\r\n <link rel=\"icon\" type=\"image/png\""); 448 BeginWriteAttribute("href", " href=\"", 120197, "\"", 120263, 2); 449 WriteAttributeValue("", 120204, TemplateUrl, 120204, 14, false); 450 WriteAttributeValue("", 120218, "assets/images/favicons/favicon-real-96x96.png", 120218, 45, true); 451 EndWriteAttribute(); 452 WriteLiteral(" sizes=\"96x96\">\r\n <meta name=\"google-site-verification\" content=\"hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg\" />\r\n\r\n"); 453 if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString())) 454 { 455 WriteLiteral(@" <script> 456 window.dataLayer = window.dataLayer || []; // must be placed above GTM script 457 </script> 458 <!-- Google Tag Manager --> 459 <script> 460 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 461 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 462 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 463 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 464 })(window,document,'script','dataLayer','"); 465 Write(settings_Google_Tag_Manager_ID); 466 WriteLiteral("\');</script>\r\n <!-- End Google Tag Manager -->\r\n"); 467 } 468 WriteLiteral("\r\n"); 469 if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId)) 470 { 471 WriteLiteral(" <script type=\"text/javascript\""); 472 BeginWriteAttribute("src", " src=\"", 121245, "\"", 121317, 2); 473 WriteAttributeValue("", 121251, "https://call.call-tracking.dk/getJavascript?custid=", 121251, 51, true); 474 WriteAttributeValue("", 121302, callTrackingId, 121302, 15, false); 475 EndWriteAttribute(); 476 WriteLiteral("></script>\r\n"); 477 } 478 WriteLiteral("\r\n"); 479 if (!String.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString())) 480 { 481 WriteLiteral(@" <!-- Begin Leadhub Pixel Code --> 482 <script> 483 (function(w,d,x,n,u,t,f,s,o){ 484 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){ 485 (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) 486 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '"); 487 Write(settings_Leadhub_Pixel_ID); 488 WriteLiteral("\');\r\n lhi(\'pageview\');\r\n </script>\r\n <!-- End Leadhub Pixel Code -->\r\n"); 489 } 490 WriteLiteral("\r\n <script>\r\n // Global namespace used for fetching API feeds from DW\r\n var RMAPI = (RMAPI) ? RMAPI : {};\r\n var ApiPreFix = \"/Default.aspx?ID=\";\r\n RMAPI.BoligCountFeed = ApiPreFix + \""); 491 Write(settings_BoligCountFeed); 492 WriteLiteral("\";\r\n RMAPI.BoligListFeed = ApiPreFix + \""); 493 Write(settings_BoligListFeed); 494 WriteLiteral("\" + \"&refpageid="); 495 Write(Pageview.Page.ID); 496 WriteLiteral("\";\r\n RMAPI.BoligListFeedErhverv = \""); 497 Write(settings_BoligListFeedErhverv); 498 WriteLiteral("\";\r\n RMAPI.BoligListFeedMaegler = ApiPreFix + \""); 499 Write(settings_BoligListFeedMaegler); 500 WriteLiteral("\" + \"&refpageid="); 501 Write(Pageview.Page.ID); 502 WriteLiteral("\";\r\n RMAPI.BoligSearchFeed = ApiPreFix + \""); 503 Write(settings_BoligSearchFeed); 504 WriteLiteral("\";\r\n RMAPI.BoligMapFeed = ApiPreFix + \""); 505 Write(settings_BoligMapFeed); 506 WriteLiteral("\";\r\n RMAPI.Boligagent = \""); 507 Write(settings_Boligagent); 508 WriteLiteral("\";\r\n RMAPI.IsErhverv = "); 509 Write(isErhverv.ToString().ToLower()); 510 WriteLiteral(";\r\n RMAPI.ProductGroupFilter = \""); 511 Write(productGroupFilter); 512 WriteLiteral("\";\r\n RMAPI.ButikId = \""); 513 Write(butikId); 514 WriteLiteral("\";\r\n RMAPI.Boligvisning = false;\r\n RMAPI.RefPageId = \""); 515 Write(Pageview.Page.ID); 516 WriteLiteral("\";\r\n RMAPI.Template = \""); 517 Write(template); 518 WriteLiteral("\";\r\n RMAPI.SliderSettings = "); 519 Write(JsonConvert.SerializeObject(Settings.Site)); 520 WriteLiteral(";\r\n RMAPI.AdvisorSearchFeed = \""); 521 Write(settings_AdvisorSearchFeed); 522 WriteLiteral("\";\r\n RMAPI.LoadingIcon = \""); 523 Write(loadingIcon); 524 WriteLiteral("\";\r\n RMAPI.MarkerColor = \""); 525 Write(markerColor); 526 WriteLiteral("\";\r\n RMAPI.mapMarkerUrl = \""); 527 Write(mapMarkerUrl); 528 WriteLiteral("\";\r\n RMAPI.settings_ForgotPwPage = \""); 529 Write(settings_ForgotPwPage); 530 WriteLiteral("\";\r\n </script>\r\n\r\n"); 531 if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString())) 532 { 533 WriteLiteral(@" <!-- Facebook Pixel Code --> 534 <script> 535 !function (f, b, e, v, n, t, s) { 536 if (f.fbq) return; n = f.fbq = function () { 537 n.callMethod ? 538 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 539 }; 540 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; 541 n.queue = []; t = b.createElement(e); t.async = !0; 542 t.src = v; s = b.getElementsByTagName(e)[0]; 543 s.parentNode.insertBefore(t, s) 544 }(window, document, 'script', 545 'https://connect.facebook.net/en_US/fbevents.js'); 546 fbq('init', '"); 547 Write(settings_Facebook_App_ID); 548 WriteLiteral("\');\r\n fbq(\'track\', \'PageView\');\r\n </script>\r\n <noscript>\r\n <img height=\"1\" width=\"1\""); 549 BeginWriteAttribute("src", " src=\"", 124220, "\"", 124305, 3); 550 WriteAttributeValue("", 124226, "https://www.facebook.com/tr?id=", 124226, 31, true); 551 WriteAttributeValue("", 124257, settings_Facebook_App_ID, 124257, 25, false); 552 WriteAttributeValue("", 124282, "&ev=PageView&noscript=1", 124282, 23, true); 553 EndWriteAttribute(); 554 WriteLiteral(" />\r\n </noscript>\r\n <!-- End Facebook Pixel Code -->\r\n"); 555 } 556 WriteLiteral("\r\n <script type=\'text/javascript\' src=\'https://platform-api.sharethis.com/js/sharethis.js#property=5d68cfaf5fea9f001288d9ac&product=inline-share-buttons\' async=\'async\'></script>\r\n\r\n</head>\r\n\r\n<body"); 557 BeginWriteAttribute("class", " class=\"", 124581, "\"", 124608, 2); 558 WriteAttributeValue("", 124589, template, 124589, 9, false); 559 WriteAttributeValue("", 124598, bodyClass, 124598, 10, false); 560 EndWriteAttribute(); 561 WriteLiteral(" data-spforgotpwtemplate=\""); 562 Write(forgotPwTemplate); 563 WriteLiteral("\" data-spforgotpwsender=\""); 564 Write(forgotPwSender); 565 WriteLiteral("\" data-spforgotpwsubject=\""); 566 Write(forgotPwSubject); 567 WriteLiteral("\" data-spsalesassesmentid=\""); 568 Write(salesAssessmentPageId); 569 WriteLiteral("\">\r\n"); 570 571 string logoUrl = TemplateUrl + (!Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg"); 572 WriteLiteral("\r\n"); 573 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) && GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID) 574 { 575 WriteLiteral(" <div class=\"top-search\">\r\n <div class=\"header logo\">\r\n <div class=\"logo\">\r\n <a href=\"/erhverv\">\r\n <img"); 576 BeginWriteAttribute("src", " src=\"", 125280, "\"", 125294, 1); 577 WriteAttributeValue("", 125286, logoUrl, 125286, 8, false); 578 EndWriteAttribute(); 579 WriteLiteral(" alt=\"RealMæglerne\" />\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"top-form mx-auto\">\r\n <form id=\"main-search-top\" class=\"js-top-search\" action=\"/Default.aspx\" method=\"GET\">\r\n"); 580 581 582 var settings_BoligListErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : ""; 583 WriteLiteral(" <input type=\"hidden\" name=\"ID\""); 584 BeginWriteAttribute("value", " value=\'", 125861, "\'", 125895, 1); 585 WriteAttributeValue("", 125869, settings_BoligListErhverv, 125869, 26, false); 586 EndWriteAttribute(); 587 WriteLiteral(" id=\"searchPageId-top\" disabled=\"disabled\" />\r\n\r\n"); 588 if (Context.Current.Request["type"] == "egetforbrug") 589 { 590 WriteLiteral(" <input name=\"type\" type=\"hidden\" value=\"egetforbrug\" />\r\n <input name=\"investeringsejendom\" type=\"hidden\" value=\"0\" />\r\n"); 591 } 592 WriteLiteral(@" <div class=""row form-wrapper no-gutters""> 593 <div class=""col-xs-12 col-md-4 col-lg-5 col-searchbar""> 594 <div class=""searchbar float-label-container text-left""> 595 <label class=""float-label"">"); 596 Write(Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer")); 597 WriteLiteral("</label>\r\n <input type=\"text\""); 598 BeginWriteAttribute("name", " name=\"", 126689, "\"", 126716, 1); 599 WriteAttributeValue("", 126696, querySearchNameAttr, 126696, 20, false); 600 EndWriteAttribute(); 601 WriteLiteral(" id=\"searchfield-top\" class=\"search-input js-float-label js-getdata\" tabindex=\"1\""); 602 BeginWriteAttribute("value", " value=\"", 126798, "\"", 126876, 1); 603 WriteAttributeValue("", 126806, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 126806, 70, false); 604 EndWriteAttribute(); 605 WriteLiteral(@" /> 606 </div> 607 </div> 608 <div class=""col-xs-12 col-md-5""> 609 <div class=""row no-gutters""> 610 <div class=""col-xs-12 col-md-6 input-col""> 611 <div class=""dropdown w-overlay float-label-container""> 612 <label class=""float-label"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">"); 613 Write(Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype")); 614 WriteLiteral(@"</label> 615 <button class=""btn btn-dropdown dropdown-toggle reverse position-absolute-md"" type=""button"" id=""Boligtype-frontpage"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""></button> 616 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 617 <ul class=""bolig-dropdown list-unstyled""> 618 "); 619 620 RenderBoligTypeErhverv(); 621 WriteLiteral(@" </ul> 622 <span class=""border-fat""></span> 623 <div class=""d-none d-md-block""> 624 <button class=""btn btn-primary js-close-dropdown"">"); 625 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 626 WriteLiteral(@"</button> 627 </div> 628 <div class=""d-flex row d-md-none""> 629 <div class=""col-6""> 630 <button class=""btn btn-danger js-remove-filter"">"); 631 Write(Translate("Smartpage:Search.Annuller", "Annuller")); 632 WriteLiteral("</button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 633 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 634 WriteLiteral(@"</button> 635 </div> 636 </div> 637 </div> 638 639 </div> 640 </div> 641 <div class=""col-xs-12 col-md-6 input-col""> 642 <div class=""btn-dropdown p-3 border-top-bottom-right""> 643 <ul class=""two-column list-unstyled""> 644 <li> 645 <label class=""checkbox-container""> 646 "); 647 Write(Translate("Smartpage:Search.Erhverv.Leje", "Leje")); 648 WriteLiteral(@" 649 <input type=""checkbox"" name=""propertytype"" value=""leje"" class=""js-input-check"" /> 650 <span class=""checkmark""></span> 651 </label> 652 </li> 653 <li> 654 <label class=""checkbox-container""> 655 "); 656 Write(Translate("Smartpage:Search.Erhverv.Køb", "Køb")); 657 WriteLiteral(@" 658 <input type=""checkbox"" name=""propertytype"" value=""kob"" class=""js-input-check"" /> 659 <span class=""checkmark""></span> 660 </label> 661 </li> 662 </ul> 663 </div> 664 665 </div> 666 </div> 667 </div> 668 <div class=""col-xs-12 col-md-3 col-lg-2 d-none d-md-block""> 669 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 670 Write(Translate("Smartpage:Search.Søg", "Søg")); 671 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n"); 672 } 673 WriteLiteral("\r\n"); 674 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"])) 675 { 676 WriteLiteral(" <div class=\"header shortcuts\">\r\n <div class=\"header-shortcuts float-right\">\r\n"); 677 if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID) 678 { 679 WriteLiteral(" <a"); 680 BeginWriteAttribute("href", " href=\'", 131579, "\'", 131586, 0); 681 EndWriteAttribute(); 682 BeginWriteAttribute("class", " class=\"", 131587, "\"", 131703, 9); 683 WriteAttributeValue("", 131595, "search-menu", 131595, 11, true); 684 WriteAttributeValue(" ", 131606, "d-none", 131607, 7, true); 685 WriteAttributeValue(" ", 131613, "d-xl-flex", 131614, 10, true); 686 WriteAttributeValue(" ", 131623, "align-items-center", 131624, 19, true); 687 WriteAttributeValue(" ", 131642, "float-left", 131643, 11, true); 688 WriteAttributeValue(" ", 131653, "border-right", 131654, 13, true); 689 WriteAttributeValue(" ", 131666, "js-mainsearch", 131667, 14, true); 690 WriteAttributeValue(" ", 131680, "topsearch", 131681, 10, true); 691 WriteAttributeValue(" ", 131690, searchClass, 131691, 12, false); 692 EndWriteAttribute(); 693 WriteLiteral(">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i><span class=\"search-menu-text hidden d-md-block\"> "); 694 Write(Translate("Smartpage:Search.Søg", "Søg")); 695 WriteLiteral("</span>\r\n </a>\r\n"); 696 } 697 WriteLiteral(" <div class=\"menu-slide d-flex align-items-center\">\r\n <b></b>\r\n <span class=\"menu-text hidden d-md-block\">Menu</span>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n"); 698 } 699 else 700 { 701 WriteLiteral(" <div class=\"header__container container\">\r\n <div class=\"header__logo\">\r\n <a href=\"/\""); 702 BeginWriteAttribute("title", " title=\"", 132303, "\"", 132311, 0); 703 EndWriteAttribute(); 704 WriteLiteral(">\r\n <img"); 705 BeginWriteAttribute("src", " src=\"", 132339, "\"", 132355, 1); 706 WriteAttributeValue("", 132345, logoUrl, 132345, 10, false); 707 EndWriteAttribute(); 708 BeginWriteAttribute("alt", " alt=\"", 132356, "\"", 132362, 0); 709 EndWriteAttribute(); 710 WriteLiteral(" />\r\n </a>\r\n </div>\r\n <div class=\"header__title\">\r\n <span>"); 711 Write(Translate("Custom:Header.Title", "RealMæglerne")); 712 WriteLiteral("</span> \r\n </div>\r\n"); 713 if (userID > 0) 714 { 715 WriteLiteral(@" <div class=""header__navigation d-none d-md-flex""> 716 <div class=""header__navigation""> 717 <div class=""header__Link""> 718 <ul> 719 <li class=""d-flex align-items-center""> 720 <svg xmlns=""http://www.w3.org/2000/svg"" width=""20"" height=""20"" viewBox=""0 0 20 20"" fill=""none""> 721 <path d=""M16.6663 17.5C16.6663 16.337 16.6663 15.7555 16.5228 15.2824C16.1996 14.217 15.366 13.3834 14.3006 13.0602C13.8275 12.9167 13.246 12.9167 12.083 12.9167H7.91634C6.75337 12.9167 6.17189 12.9167 5.69872 13.0602C4.63339 13.3834 3.79971 14.217 3.47654 15.2824C3.33301 15.7555 3.33301 16.337 3.33301 17.5M13.7497 6.25C13.7497 8.32107 12.0707 10 9.99967 10C7.92861 10 6.24967 8.32107 6.24967 6.25C6.24967 4.17893 7.92861 2.5 9.99967 2.5C12.0707 2.5 13.7497 4.17893 13.7497 6.25Z"" stroke=""black"" stroke-width=""2"" stroke-linecap=""round"" stroke-linejoin=""round"" /> 722 "); 723 WriteLiteral(" </svg>\r\n <a class=\"ml-2\""); 724 BeginWriteAttribute("href", "\r\n href=\"", 133720, "\"", 133802, 2); 725 WriteAttributeValue("", 133768, "/Default.aspx?ID=", 133768, 17, true); 726 WriteAttributeValue("", 133785, settings_MinSide, 133785, 17, false); 727 EndWriteAttribute(); 728 WriteLiteral("\r\n target=\"_blank\""); 729 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 133860, "\"", 134010, 1); 730 WriteAttributeValue("", 133914, Translate("Custom:Accessibility.MyAccountLink", "Gå til Mit RealMæglerne - åbner i nyt vindue"), 133914, 96, false); 731 EndWriteAttribute(); 732 WriteLiteral(">\r\n "); 733 Write(Translate("Mit RealMæglerne")); 734 WriteLiteral("\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n"); 735 736 } 737 else 738 { 739 WriteLiteral(@" <div class=""header__navigation d-none d-md-flex""> 740 <div class=""header__navigation""> 741 <div class=""header__Link""> 742 <ul> 743 <li class=""d-flex align-items-center""> 744 <svg xmlns=""http://www.w3.org/2000/svg"" width=""20"" height=""20"" viewBox=""0 0 20 20"" fill=""none""> 745 <path d=""M16.6663 17.5C16.6663 16.337 16.6663 15.7555 16.5228 15.2824C16.1996 14.217 15.366 13.3834 14.3006 13.0602C13.8275 12.9167 13.246 12.9167 12.083 12.9167H7.91634C6.75337 12.9167 6.17189 12.9167 5.69872 13.0602C4.63339 13.3834 3.79971 14.217 3.47654 15.2824C3.33301 15.7555 3.33301 16.337 3.33301 17.5M13.7497 6.25C13.7497 8.32107 12.0707 10 9.99967 10C7.92861 10 6.24967 8.32107 6.24967 6.25C6.24967 4.17893 7.92861 2.5 9.99967 2.5C12.0707 2.5 13.7497 4.17893 13.7497 6.25Z"" stroke=""black"" stroke-width=""2"" stroke-linecap=""round"" stroke-linejoin=""round"" /> 746 "); 747 WriteLiteral(" </svg>\r\n <a class=\"ml-2\"\r\n href=\"javascript:panelLogin()\""); 748 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 135521, "\"", 135644, 1); 749 WriteAttributeValue("", 135575, Translate("Custom:Accessibility.Login", "Login - åbner i sidepanel"), 135575, 69, false); 750 EndWriteAttribute(); 751 WriteLiteral(">\r\n "); 752 Write(Translate("Login")); 753 WriteLiteral("\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n"); 754 } 755 WriteLiteral(" <div class=\"header__search flex-column flex-md-row js-mainsearch\">\r\n "); 756 Write(Translate("Søg bolig")); 757 WriteLiteral("\r\n </div>\r\n <div class=\"header__navigation\">\r\n <div class=\"header__navigation-icon menu-slide\">\r\n <div class=\"d-none d-md-block\">\r\n "); 758 Write(Translate("Menu")); 759 WriteLiteral("\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n"); 760 } 761 WriteLiteral("\r\n <div class=\"search-modal\">\r\n\r\n"); 762 if (Converter.ToString(Pageview.Area.Item["Type"]) == "real") 763 { 764 WriteLiteral(@" <div class=""main-search-form""> 765 <i class=""fal fa-times float-right fa-2x js-close-search close-search""></i> 766 <div class=""row mb-3 align-items-center""> 767 <div class=""col-xs-12 col-md-3 border-right""> 768 <h3>"); 769 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 770 WriteLiteral("</h3>\r\n </div>\r\n <div class=\"col-xs-12 col-md-9 home-count d-none d-md-block\">\r\n <span class=\"search-count\" id=\"searchCounterMain\">0</span> <span class=\"position-relative\">"); 771 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 772 WriteLiteral(@"<span class=""loader js-loader""></span></span> 773 774 </div> 775 </div> 776 777 <form id=""main-search"" class=""searchbar-wrapper"" action=""/Default.aspx"" method=""GET""> 778 <input type=""hidden"" name=""ID"""); 779 BeginWriteAttribute("value", " value=\'", 137386, "\'", 137407, 1); 780 WriteAttributeValue("", 137394, searchPageId, 137394, 13, false); 781 EndWriteAttribute(); 782 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" /> 783 <div class=""row form-wrapper no-gutters""> 784 785 <div class=""col-xs-12 col-md-5 col-searchbar""> 786 <div class=""searchbar""> 787 <input type=""text"""); 788 BeginWriteAttribute("name", " name=\"", 137691, "\"", 137718, 1); 789 WriteAttributeValue("", 137698, querySearchNameAttr, 137698, 20, false); 790 EndWriteAttribute(); 791 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 792 BeginWriteAttribute("value", " value=\"", 137821, "\"", 137899, 1); 793 WriteAttributeValue("", 137829, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 137829, 70, false); 794 EndWriteAttribute(); 795 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\""); 796 BeginWriteAttribute("value", " value=\"", 137993, "\"", 138076, 1); 797 WriteAttributeValue("", 138001, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 138001, 75, false); 798 EndWriteAttribute(); 799 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\""); 800 BeginWriteAttribute("value", " value=\"", 138166, "\"", 138247, 1); 801 WriteAttributeValue("", 138174, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 138174, 73, false); 802 EndWriteAttribute(); 803 WriteLiteral(@" /> 804 </div> 805 </div> 806 <div class=""col-xs-12 col-md-5""> 807 <div class=""row no-gutters""> 808 <div class=""col-xs-12 col-md-6 input-col""> 809 <div class=""dropdown""> 810 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 811 "); 812 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 813 WriteLiteral(@" 814 </button> 815 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 816 <ul class=""bolig-dropdown list-unstyled""> 817 "); 818 819 RenderBoligtypeCheckboxesDropdown(); 820 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 821 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 822 WriteLiteral(@"</button> 823 </div> 824 825 </div> 826 827 </div> 828 <div class=""col-xs-12 col-md-6 input-col""> 829 <div class=""dropdown""> 830 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 831 "); 832 Write(Translate("Smartpage:Search.Pris", "Pris")); 833 WriteLiteral(@" 834 </button> 835 <div class=""dropdown-menu box-shadow dropdown-price js-dropdown-price"" aria-labelledby=""Pris""> 836 <input name=""pricemin"" type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 837 BeginWriteAttribute("placeholder", " placeholder=\'", 140498, "\'", 140575, 1); 838 WriteAttributeValue("", 140512, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 140512, 63, false); 839 EndWriteAttribute(); 840 BeginWriteAttribute("value", " value=\'", 140576, "\'", 140712, 1); 841 WriteAttributeValue("", 140584, !string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemin"]) ? Context.Current.Request.QueryString["pricemin"] : "", 140584, 128, false); 842 EndWriteAttribute(); 843 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 844 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 845 WriteLiteral("</option>\r\n"); 846 for (var i = 0; i <= 10000000; i += 100000) 847 { 848 if (i == 10000000) 849 { 850 WriteLiteral(" <option"); 851 BeginWriteAttribute("value", " value=\"", 141349, "\"", 141359, 1); 852 WriteAttributeValue("", 141357, i, 141357, 2, false); 853 EndWriteAttribute(); 854 WriteLiteral(" data-value=\'"); 855 Write(Converter.ToInt32(i).ToString("N0")); 856 WriteLiteral("+\'>"); 857 Write(Convert.ToInt32(i).ToString("N0")); 858 WriteLiteral("+</option>\r\n"); 859 } 860 else 861 { 862 WriteLiteral(" <option"); 863 BeginWriteAttribute("value", " value=\"", 141689, "\"", 141699, 1); 864 WriteAttributeValue("", 141697, i, 141697, 2, false); 865 EndWriteAttribute(); 866 WriteLiteral(" data-value=\'"); 867 Write(Converter.ToInt32(i).ToString("N0")); 868 WriteLiteral("\'>"); 869 Write(Convert.ToInt32(i).ToString("N0")); 870 WriteLiteral("</option>\r\n"); 871 } 872 } 873 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\""); 874 BeginWriteAttribute("placeholder", " placeholder=\'", 142103, "\'", 142180, 1); 875 WriteAttributeValue("", 142117, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 142117, 63, false); 876 EndWriteAttribute(); 877 BeginWriteAttribute("value", " value=\'", 142181, "\'", 142317, 1); 878 WriteAttributeValue("", 142189, !string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemax"]) ? Context.Current.Request.QueryString["pricemax"] : "", 142189, 128, false); 879 EndWriteAttribute(); 880 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 881 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 882 WriteLiteral("</option>\r\n"); 883 for (var i = 0; i <= 10000000; i += 100000) 884 { 885 if (i == 10000000) 886 { 887 WriteLiteral(" <option"); 888 BeginWriteAttribute("value", " value=\"", 142948, "\"", 142958, 1); 889 WriteAttributeValue("", 142956, i, 142956, 2, false); 890 EndWriteAttribute(); 891 WriteLiteral(" data-value=\'"); 892 Write(Converter.ToInt32(i).ToString("N0")); 893 WriteLiteral("+\'>"); 894 Write(Convert.ToInt32(i).ToString("N0")); 895 WriteLiteral("+</option>\r\n"); 896 } 897 else 898 { 899 WriteLiteral(" <option"); 900 BeginWriteAttribute("value", " value=\"", 143288, "\"", 143298, 1); 901 WriteAttributeValue("", 143296, i, 143296, 2, false); 902 EndWriteAttribute(); 903 WriteLiteral(" data-value=\'"); 904 Write(Converter.ToInt32(i).ToString("N0")); 905 WriteLiteral("\'>"); 906 Write(Convert.ToInt32(i).ToString("N0")); 907 WriteLiteral("</option>\r\n"); 908 } 909 } 910 WriteLiteral(@" </select> 911 </div> 912 </div> 913 </div> 914 </div> 915 </div> 916 <div class=""col-xs-12 col-md-2 d-none d-md-block""> 917 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 918 Write(Translate("Smartpage:Search.Søg", "Søg")); 919 WriteLiteral(@"</button> 920 </div> 921 </div> 922 923 <div class=""row moresearch-btn no-gutters""> 924 <div class=""col-sm-12""> 925 <div class=""row align-items-center no-gutters""> 926 <div class=""col-12 col-md-4""> 927 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch""> 928 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open white"">"); 929 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 930 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> "); 931 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 932 WriteLiteral(" </span></span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-md-2 mb-xs-4\">\r\n <a class=\"js-reset reset-btn white\">"); 933 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 934 WriteLiteral("</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"collapse\" id=\"moreSearch-master\">\r\n\r\n <h4 class=\"mt-20\"><b>"); 935 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 936 WriteLiteral(@"</b></h4> 937 <div class=""row align-items-end mb-30""> 938 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 939 <div class=""filter-container row""> 940 <label class=""d-block col-12"">"); 941 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 942 WriteLiteral(@"</label> 943 <div class=""col-6 pr-sm-0 pr-2""> 944 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 945 BeginWriteAttribute("placeholder", " placeholder=\'", 146060, "\'", 146133, 1); 946 WriteAttributeValue("", 146074, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 146074, 59, false); 947 EndWriteAttribute(); 948 BeginWriteAttribute("value", " value=\'", 146134, "\'", 146280, 1); 949 WriteAttributeValue("", 146142, !string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmin"]) ? Context.Current.Request.QueryString["boligarealmin"] : "", 146142, 138, false); 950 EndWriteAttribute(); 951 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 952 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 953 WriteLiteral("</option>\r\n"); 954 for (var i = 0; i <= 300; i += 10) 955 { 956 if (i == 300) 957 { 958 WriteLiteral(" <option>"); 959 Write(i); 960 WriteLiteral("+</option>\r\n"); 961 } 962 else 963 { 964 WriteLiteral(" <option>"); 965 Write(i); 966 WriteLiteral("</option>\r\n"); 967 } 968 } 969 WriteLiteral(@" </select> 970 971 </div> 972 <div class=""col-6 pl-sm-0 pl-2""> 973 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 974 BeginWriteAttribute("placeholder", " placeholder=\'", 147665, "\'", 147738, 1); 975 WriteAttributeValue("", 147679, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 147679, 59, false); 976 EndWriteAttribute(); 977 BeginWriteAttribute("value", " value=\'", 147739, "\'", 147885, 1); 978 WriteAttributeValue("", 147747, !string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmax"]) ? Context.Current.Request.QueryString["boligarealmax"] : "", 147747, 138, false); 979 EndWriteAttribute(); 980 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 981 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 982 WriteLiteral("</option>\r\n"); 983 for (var i = 0; i <= 300; i += 10) 984 { 985 if (i == 300) 986 { 987 WriteLiteral(" <option>"); 988 Write(i); 989 WriteLiteral("+</option>\r\n"); 990 } 991 else 992 { 993 WriteLiteral(" <option>"); 994 Write(i); 995 WriteLiteral("</option>\r\n"); 996 } 997 } 998 WriteLiteral(@" </select> 999 1000 </div> 1001 </div> 1002 </div> 1003 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 1004 <div class=""filter-container row""> 1005 <label class=""d-block col-12"">"); 1006 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 1007 WriteLiteral(@"</label> 1008 <div class=""col-6 pr-sm-0 pr-2""> 1009 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 1010 BeginWriteAttribute("placeholder", " placeholder=\'", 149666, "\'", 149739, 1); 1011 WriteAttributeValue("", 149680, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 149680, 59, false); 1012 EndWriteAttribute(); 1013 BeginWriteAttribute("value", " value=\'", 149740, "\'", 149887, 1); 1014 WriteAttributeValue("", 149748, !string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmin"]) ? Context.Current.Request.QueryString["grundarealmin"] : "", 149748, 139, false); 1015 EndWriteAttribute(); 1016 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1017 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 1018 WriteLiteral("</option>\r\n"); 1019 for (var i = 0; i <= 10000; i += 100) 1020 { 1021 if (i == 10000) 1022 { 1023 WriteLiteral(" <option>"); 1024 Write(i); 1025 WriteLiteral("+</option>\r\n"); 1026 } 1027 else 1028 { 1029 WriteLiteral(" <option>"); 1030 Write(i); 1031 WriteLiteral("</option>\r\n"); 1032 } 1033 } 1034 WriteLiteral(@" </select> 1035 </div> 1036 <div class=""col-6 pl-sm-0 pl-2""> 1037 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 1038 BeginWriteAttribute("placeholder", " placeholder=\'", 151275, "\'", 151348, 1); 1039 WriteAttributeValue("", 151289, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 151289, 59, false); 1040 EndWriteAttribute(); 1041 BeginWriteAttribute("value", " value=\'", 151349, "\'", 151496, 1); 1042 WriteAttributeValue("", 151357, !string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmax"]) ? Context.Current.Request.QueryString["grundarealmax"] : "", 151357, 139, false); 1043 EndWriteAttribute(); 1044 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">"); 1045 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 1046 WriteLiteral("</option>\r\n"); 1047 for (var i = 0; i <= 10000; i += 100) 1048 { 1049 if (i == 10000) 1050 { 1051 WriteLiteral(" <option>"); 1052 Write(i); 1053 WriteLiteral("+</option>\r\n"); 1054 } 1055 else 1056 { 1057 WriteLiteral(" <option>"); 1058 Write(i); 1059 WriteLiteral("</option>\r\n"); 1060 } 1061 } 1062 WriteLiteral(@" </select> 1063 </div> 1064 </div> 1065 </div> 1066 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 1067 <div class=""filter-container row""> 1068 <label class=""d-block col-12"">Antal rum</label> 1069 <div class=""col-6 pr-sm-0 pr-2""> 1070 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count""> 1071 <option selected=""selected"" disabled=""disabled"">"); 1072 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 1073 WriteLiteral("</option>\r\n"); 1074 1075 RenderSelectValue("1", "1", "roomsmin"); 1076 RenderSelectValue("2", "2", "roomsmin"); 1077 RenderSelectValue("3", "3", "roomsmin"); 1078 RenderSelectValue("4", "4", "roomsmin"); 1079 RenderSelectValue("5+", "5", "roomsmin"); 1080 WriteLiteral(@" </select> 1081 </div> 1082 <div class=""col-6 pl-sm-0 pl-2""> 1083 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count""> 1084 <option selected=""selected"" disabled=""disabled"">"); 1085 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 1086 WriteLiteral("</option>\r\n"); 1087 1088 RenderSelectValue("1", "1", "roomsmax"); 1089 RenderSelectValue("2", "2", "roomsmax"); 1090 RenderSelectValue("3", "3", "roomsmax"); 1091 RenderSelectValue("4", "4", "roomsmax"); 1092 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax"); 1093 WriteLiteral(@" </select> 1094 </div> 1095 </div> 1096 </div> 1097 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 1098 <div class=""row""> 1099 <div class=""col-12 pr-2""> 1100 <div class=""filter-container""> 1101 <label class=""d-block"">Energimærke</label> 1102 <select name=""energylabel"" id=""energylabel"" class=""form-control reverse js-energylabel-select js-count""> 1103 <option selected=""selected"" disabled=""disabled"">"); 1104 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 1105 WriteLiteral(@"</option> 1106 <option value=""01"">G</option> 1107 <option value=""02"">F</option> 1108 <option value=""03"">E</option> 1109 <option value=""04"">D</option> 1110 <option value=""05"">C</option> 1111 <option value=""06"">B</option> 1112 <option value=""07"">A</option> 1113 <option value=""08"">A2010</option> 1114 <option value=""09"">A2015</option> 1115 <option value=""10"">A2020+</option> 1116 </select> 1117 </div> 1118 "); 1119 WriteLiteral(@" </div> 1120 </div> 1121 </div> 1122 <div class=""col-12 col-sm-6 col-lg-3 mt-3""> 1123 <h4"); 1124 BeginWriteAttribute("class", " class=\"", 157295, "\"", 157303, 0); 1125 EndWriteAttribute(); 1126 WriteLiteral("><b>"); 1127 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 1128 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 1129 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 1130 WriteLiteral("</label>\r\n <div class=\"col-6 pr-sm-0 pr-2\">\r\n <input type=\"text\" name=\"subsidymin\" id=\"subsidymin\" class=\"form-control js-subsidymin-frontpage-input js-count\""); 1131 BeginWriteAttribute("placeholder", " placeholder=\'", 157865, "\'", 157940, 1); 1132 WriteAttributeValue("", 157879, Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"), 157879, 61, false); 1133 EndWriteAttribute(); 1134 BeginWriteAttribute("value", " value=\'", 157941, "\'", 158082, 1); 1135 WriteAttributeValue("", 157949, !string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymin"]) ? Context.Current.Request.QueryString["subsidymin"] : "", 157949, 133, false); 1136 EndWriteAttribute(); 1137 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">"); 1138 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 1139 WriteLiteral("</option>\r\n"); 1140 for (var i = 0; i <= 25000; i += 1250) 1141 { 1142 if (i == 25000) 1143 { 1144 WriteLiteral(" <option"); 1145 BeginWriteAttribute("value", " value=\"", 158726, "\"", 158755, 1); 1146 WriteAttributeValue("", 158734, Converter.ToInt32(i), 158734, 21, false); 1147 EndWriteAttribute(); 1148 WriteLiteral(">"); 1149 Write(Converter.ToInt32(i).ToString("N0")); 1150 WriteLiteral("+</option>\r\n"); 1151 } 1152 else 1153 { 1154 WriteLiteral(" <option"); 1155 BeginWriteAttribute("value", " value=\"", 159052, "\"", 159081, 1); 1156 WriteAttributeValue("", 159060, Converter.ToInt32(i), 159060, 21, false); 1157 EndWriteAttribute(); 1158 WriteLiteral(">"); 1159 Write(Converter.ToInt32(i).ToString("N0")); 1160 WriteLiteral("</option>\r\n"); 1161 } 1162 } 1163 WriteLiteral(@" </select> 1164 </div> 1165 <div class=""col-6 pl-sm-0 pl-2""> 1166 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count"""); 1167 BeginWriteAttribute("placeholder", " placeholder=\'", 159593, "\'", 159668, 1); 1168 WriteAttributeValue("", 159607, Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"), 159607, 61, false); 1169 EndWriteAttribute(); 1170 BeginWriteAttribute("value", " value=\'", 159669, "\'", 159810, 1); 1171 WriteAttributeValue("", 159677, !string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymax"]) ? Context.Current.Request.QueryString["subsidymax"] : "", 159677, 133, false); 1172 EndWriteAttribute(); 1173 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1174 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 1175 WriteLiteral("</option>\r\n"); 1176 for (var i = 0; i <= 25000; i += 1250) 1177 { 1178 if (i == 25000) 1179 { 1180 WriteLiteral(" <option"); 1181 BeginWriteAttribute("value", " value=\"", 160450, "\"", 160479, 1); 1182 WriteAttributeValue("", 160458, Converter.ToInt32(i), 160458, 21, false); 1183 EndWriteAttribute(); 1184 WriteLiteral(">"); 1185 Write(Convert.ToInt32(i).ToString("N0")); 1186 WriteLiteral("+</option>\r\n"); 1187 } 1188 else 1189 { 1190 WriteLiteral(" <option"); 1191 BeginWriteAttribute("value", " value=\"", 160774, "\"", 160803, 1); 1192 WriteAttributeValue("", 160782, Converter.ToInt32(i), 160782, 21, false); 1193 EndWriteAttribute(); 1194 WriteLiteral(">"); 1195 Write(Convert.ToInt32(i).ToString("N0")); 1196 WriteLiteral("</option>\r\n"); 1197 } 1198 } 1199 WriteLiteral(@" </select> 1200 </div> 1201 </div> 1202 </div> 1203 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0""> 1204 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1205 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 1206 WriteLiteral(@"</button> 1207 </div> 1208 </div> 1209 </div> 1210 </div> 1211 </div> 1212 <div class=""row d-block d-md-none form-wrapper no-gutters""> 1213 <div class=""col-xs-12 col-md-2""> 1214 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1215 Write(Translate("Smartpage:Search.Søg", "Søg")); 1216 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n"); 1217 } 1218 else 1219 { 1220 WriteLiteral(@" <div class=""main-search-form center""> 1221 <i class=""fal fa-times float-right fa-2x js-close-search""></i> 1222 <div class=""row mb-3 align-items-center""> 1223 <div class=""col-xs-12 col-md-5 border-right""> 1224 <h3>"); 1225 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 1226 WriteLiteral("</h3>\r\n </div>\r\n <div class=\"col-xs-12 col-md-7 home-count d-none d-md-block\">\r\n <span class=\"search-count\" id=\"searchCounterMain\">0</span> <span>"); 1227 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 1228 WriteLiteral("</span>\r\n </div>\r\n </div>\r\n\r\n <form id=\"main-search\" class=\"searchbar-wrapper\" action=\"/Default.aspx\" method=\"GET\">\r\n <input type=\"hidden\" name=\"ID\""); 1229 BeginWriteAttribute("value", " value=\'", 162917, "\'", 162938, 1); 1230 WriteAttributeValue("", 162925, searchPageId, 162925, 13, false); 1231 EndWriteAttribute(); 1232 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" /> 1233 <div class=""row form-wrapper no-gutters""> 1234 1235 <div class=""col-12 mb-10""> 1236 <div class=""searchbar""> 1237 <input type=""text"""); 1238 BeginWriteAttribute("name", " name=\"", 163202, "\"", 163229, 1); 1239 WriteAttributeValue("", 163209, querySearchNameAttr, 163209, 20, false); 1240 EndWriteAttribute(); 1241 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 1242 BeginWriteAttribute("value", " value=\'", 163332, "\'", 163352, 1); 1243 WriteAttributeValue("", 163340, querySearch, 163340, 12, false); 1244 EndWriteAttribute(); 1245 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\""); 1246 BeginWriteAttribute("value", " value=\'", 163446, "\'", 163471, 1); 1247 WriteAttributeValue("", 163454, queryZipCodeFrom, 163454, 17, false); 1248 EndWriteAttribute(); 1249 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\""); 1250 BeginWriteAttribute("value", " value=\'", 163561, "\'", 163584, 1); 1251 WriteAttributeValue("", 163569, queryZipCodeTo, 163569, 15, false); 1252 EndWriteAttribute(); 1253 WriteLiteral(@" /> 1254 </div> 1255 </div> 1256 <div class=""col-xs-12 col-md-8""> 1257 <div class=""row no-gutters""> 1258 <div class=""col-xs-12 col-md-6 input-col""> 1259 <div class=""dropdown""> 1260 <button class=""btn btn-dropdown dropdown-toggle reverse js-count"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 1261 "); 1262 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 1263 WriteLiteral(@" 1264 </button> 1265 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 1266 <ul class=""bolig-dropdown list-unstyled""> 1267 "); 1268 1269 RenderBoligtypeCheckboxesDropdown(); 1270 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 1271 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 1272 WriteLiteral(@"</button> 1273 </div> 1274 1275 </div> 1276 1277 </div> 1278 <div class=""col-xs-12 col-md-6 input-col""> 1279 <div class=""dropdown""> 1280 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 1281 "); 1282 Write(Translate("Smartpage:Search.Pris", "Pris")); 1283 WriteLiteral(@" 1284 </button> 1285 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris""> 1286 <input type=""text"" name=""pricemin"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 1287 BeginWriteAttribute("placeholder", " placeholder=\'", 165826, "\'", 165903, 1); 1288 WriteAttributeValue("", 165840, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 165840, 63, false); 1289 EndWriteAttribute(); 1290 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1291 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 1292 WriteLiteral("</option>\r\n"); 1293 for (var i = 0; i <= 10000000; i += 100000) 1294 { 1295 if (i == 10000000) 1296 { 1297 WriteLiteral(" <option"); 1298 BeginWriteAttribute("value", " value=\"", 166540, "\"", 166550, 1); 1299 WriteAttributeValue("", 166548, i, 166548, 2, false); 1300 EndWriteAttribute(); 1301 WriteLiteral(" data-value=\'"); 1302 Write(Converter.ToInt32(i).ToString("N0")); 1303 WriteLiteral("+\'>"); 1304 Write(Converter.ToInt32(i).ToString("N0")); 1305 WriteLiteral("+</option>\r\n"); 1306 } 1307 else 1308 { 1309 WriteLiteral(" <option"); 1310 BeginWriteAttribute("value", " value=\"", 166882, "\"", 166892, 1); 1311 WriteAttributeValue("", 166890, i, 166890, 2, false); 1312 EndWriteAttribute(); 1313 WriteLiteral(" data-value=\'"); 1314 Write(Converter.ToInt32(i).ToString("N0")); 1315 WriteLiteral("\'>"); 1316 Write(Converter.ToInt32(i).ToString("N0")); 1317 WriteLiteral("</option>\r\n"); 1318 } 1319 } 1320 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\""); 1321 BeginWriteAttribute("placeholder", " placeholder=\'", 167298, "\'", 167375, 1); 1322 WriteAttributeValue("", 167312, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 167312, 63, false); 1323 EndWriteAttribute(); 1324 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1325 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 1326 WriteLiteral("</option>\r\n"); 1327 for (var i = 0; i <= 10000000; i += 100000) 1328 { 1329 if (i == 10000000) 1330 { 1331 WriteLiteral(" <option"); 1332 BeginWriteAttribute("value", " value=\"", 168006, "\"", 168016, 1); 1333 WriteAttributeValue("", 168014, i, 168014, 2, false); 1334 EndWriteAttribute(); 1335 WriteLiteral(" data-value=\'"); 1336 Write(Converter.ToInt32(i).ToString("N0")); 1337 WriteLiteral("+\'>"); 1338 Write(Converter.ToInt32(i).ToString("N0")); 1339 WriteLiteral("+</option>\r\n"); 1340 } 1341 else 1342 { 1343 WriteLiteral(" <option"); 1344 BeginWriteAttribute("value", " value=\"", 168348, "\"", 168358, 1); 1345 WriteAttributeValue("", 168356, i, 168356, 2, false); 1346 EndWriteAttribute(); 1347 WriteLiteral(" data-value=\'"); 1348 Write(Converter.ToInt32(i).ToString("N0")); 1349 WriteLiteral("\'>"); 1350 Write(Converter.ToInt32(i).ToString("N0")); 1351 WriteLiteral("</option>\r\n"); 1352 } 1353 } 1354 WriteLiteral(@" </select> 1355 </div> 1356 </div> 1357 </div> 1358 </div> 1359 </div> 1360 <div class=""col-xs-12 col-md-4 d-none d-md-block""> 1361 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1362 Write(Translate("Smartpage:Search.Søg", "Søg")); 1363 WriteLiteral(@"</button> 1364 </div> 1365 </div> 1366 1367 <div class=""row moresearch-btn no-gutters""> 1368 <div class=""col-sm-12""> 1369 <div class=""row align-items-center no-gutters""> 1370 <div class=""col-12 col-md-5""> 1371 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch-master""> 1372 <span class=""moreSearch-text""><i class=""fas fa-plus open-close white""></i> <span class=""not-open white"">"); 1373 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 1374 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> "); 1375 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 1376 WriteLiteral(" </span></span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-md-3 mb-xs-4\">\r\n <a class=\"js-reset reset-btn white\">"); 1377 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 1378 WriteLiteral(@"</a> 1379 </div> 1380 <div class=""col-6 col-md-4 mb-xs-4""> 1381 <div class=""parent-purchases""> 1382 <label class=""checkbox-container white""> 1383 "); 1384 Write(Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet")); 1385 WriteLiteral(@" 1386 <input type=""checkbox"" name=""foraeldrekoebegnet"" value=""true"" class=""js-input-check""> 1387 <span class=""checkmark grey""></span> 1388 </label> 1389 </div> 1390 </div> 1391 </div> 1392 1393 <div class=""collapse"" id=""moreSearch-master""> 1394 1395 <h4 class=""mt-20""><b>"); 1396 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 1397 WriteLiteral(@"</b></h4> 1398 <div class=""row align-items-end mb-30""> 1399 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1400 <div class=""filter-container row""> 1401 <label class=""d-block col-12"">"); 1402 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 1403 WriteLiteral(@"</label> 1404 <div class=""col-6 pr-sm-0 pr-2""> 1405 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 1406 BeginWriteAttribute("placeholder", " placeholder=\'", 171815, "\'", 171888, 1); 1407 WriteAttributeValue("", 171829, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 171829, 59, false); 1408 EndWriteAttribute(); 1409 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1410 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 1411 WriteLiteral("</option>\r\n"); 1412 for (var i = 0; i <= 300; i += 10) 1413 { 1414 if (i == 300) 1415 { 1416 WriteLiteral(" <option>"); 1417 Write(i); 1418 WriteLiteral("+</option>\r\n"); 1419 } 1420 else 1421 { 1422 WriteLiteral(" <option>"); 1423 Write(i); 1424 WriteLiteral("</option>\r\n"); 1425 } 1426 } 1427 WriteLiteral(@" </select> 1428 </div> 1429 <div class=""col-6 pl-sm-0 pl-2""> 1430 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 1431 BeginWriteAttribute("placeholder", " placeholder=\'", 173271, "\'", 173344, 1); 1432 WriteAttributeValue("", 173285, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 173285, 59, false); 1433 EndWriteAttribute(); 1434 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1435 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 1436 WriteLiteral("</option>\r\n"); 1437 for (var i = 0; i <= 300; i += 10) 1438 { 1439 if (i == 300) 1440 { 1441 WriteLiteral(" <option>"); 1442 Write(i); 1443 WriteLiteral("+</option>\r\n"); 1444 } 1445 else 1446 { 1447 WriteLiteral(" <option>"); 1448 Write(i); 1449 WriteLiteral("</option>\r\n"); 1450 } 1451 } 1452 WriteLiteral(@" </select> 1453 </div> 1454 </div> 1455 </div> 1456 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1457 <div class=""filter-container row""> 1458 <label class=""d-block col-12"">"); 1459 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 1460 WriteLiteral(@"</label> 1461 <div class=""col-6 pr-sm-0 pr-2""> 1462 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 1463 BeginWriteAttribute("placeholder", " placeholder=\'", 175123, "\'", 175196, 1); 1464 WriteAttributeValue("", 175137, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 175137, 59, false); 1465 EndWriteAttribute(); 1466 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1467 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 1468 WriteLiteral("</option>\r\n"); 1469 for (var i = 0; i <= 10000; i += 100) 1470 { 1471 if (i == 10000) 1472 { 1473 WriteLiteral(" <option"); 1474 BeginWriteAttribute("value", " value=\"", 175836, "\"", 175865, 1); 1475 WriteAttributeValue("", 175844, Converter.ToInt32(i), 175844, 21, false); 1476 EndWriteAttribute(); 1477 WriteLiteral(">"); 1478 Write(Converter.ToInt32(i).ToString("N0")); 1479 WriteLiteral("+</option>\r\n"); 1480 } 1481 else 1482 { 1483 WriteLiteral(" <option"); 1484 BeginWriteAttribute("value", " value=\"", 176162, "\"", 176191, 1); 1485 WriteAttributeValue("", 176170, Converter.ToInt32(i), 176170, 21, false); 1486 EndWriteAttribute(); 1487 WriteLiteral(">"); 1488 Write(Converter.ToInt32(i).ToString("N0")); 1489 WriteLiteral("</option>\r\n"); 1490 } 1491 } 1492 WriteLiteral(@" </select> 1493 </div> 1494 <div class=""col-6 pl-sm-0 pl-2""> 1495 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 1496 BeginWriteAttribute("placeholder", " placeholder=\'", 176712, "\'", 176785, 1); 1497 WriteAttributeValue("", 176726, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 176726, 59, false); 1498 EndWriteAttribute(); 1499 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1500 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 1501 WriteLiteral("</option>\r\n"); 1502 for (var i = 0; i <= 10000; i += 100) 1503 { 1504 if (i == 10000) 1505 { 1506 WriteLiteral(" <option"); 1507 BeginWriteAttribute("value", " value=\"", 177416, "\"", 177445, 1); 1508 WriteAttributeValue("", 177424, Converter.ToInt32(i), 177424, 21, false); 1509 EndWriteAttribute(); 1510 WriteLiteral(">"); 1511 Write(Converter.ToInt32(i).ToString("N0")); 1512 WriteLiteral("+</option>\r\n"); 1513 } 1514 else 1515 { 1516 WriteLiteral(" <option"); 1517 BeginWriteAttribute("value", " value=\"", 177742, "\"", 177771, 1); 1518 WriteAttributeValue("", 177750, Converter.ToInt32(i), 177750, 21, false); 1519 EndWriteAttribute(); 1520 WriteLiteral(">"); 1521 Write(Converter.ToInt32(i).ToString("N0")); 1522 WriteLiteral("</option>\r\n"); 1523 } 1524 } 1525 WriteLiteral(@" </select> 1526 </div> 1527 </div> 1528 </div> 1529 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1530 <div class=""filter-container row""> 1531 <label class=""d-block col-12"">Antal rum</label> 1532 1533 <div class=""col-6 pr-sm-0 pr-2""> 1534 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count""> 1535 <option selected=""selected"" disabled=""disabled"">"); 1536 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 1537 WriteLiteral(@"</option> 1538 <option value=""1"">1</option> 1539 <option value=""2"">2</option> 1540 <option value=""3"">3</option> 1541 <option value=""4"">4</option> 1542 <option value=""5"">5+</option> 1543 </select> 1544 </div> 1545 <div class=""col-6 pl-sm-0 pl-2""> 1546 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count""> 1547 <option selected=""selected"" disabled=""disabled"">"); 1548 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 1549 WriteLiteral(@"</option> 1550 <option value=""1"">1</option> 1551 <option value=""2"">2</option> 1552 <option value=""3"">3</option> 1553 <option value=""4"">4</option> 1554 <option value=""5"">5+</option> 1555 </select> 1556 </div> 1557 </div> 1558 </div> 1559 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1560 <div class=""row""> 1561 <div class=""col-12 pr-2""> 1562 <div class=""filter-container""> 1563 <label class=""d-block"">Energimærke</label> 1564 "); 1565 WriteLiteral(" <select name=\"energylabel\" id=\"energylabel\" class=\"form-control reverse js-energylabel-select js-count\">\r\n <option disabled selected=\"selected\">"); 1566 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 1567 WriteLiteral(@"</option> 1568 <option value=""01"">G</option> 1569 <option value=""02"">F</option> 1570 <option value=""03"">E</option> 1571 <option value=""04"">D</option> 1572 <option value=""05"">C</option> 1573 <option value=""06"">B</option> 1574 <option value=""07"">A</option> 1575 <option value=""08"">A2010</option> 1576 <option value=""09"">A2015</option> 1577 <option value=""10"">A2020+</option> 1578 </select> 1579 </div> 1580 "); 1581 WriteLiteral(@" </div> 1582 </div> 1583 </div> 1584 <div class=""col-12 col-sm-6 col-lg-6 mt-3""> 1585 <h4"); 1586 BeginWriteAttribute("class", " class=\"", 182277, "\"", 182285, 0); 1587 EndWriteAttribute(); 1588 WriteLiteral("><b>"); 1589 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 1590 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 1591 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 1592 WriteLiteral("</label>\r\n <div class=\"col-6 pr-sm-0 pr-2\">\r\n <input type=\"text\" name=\"subsidymin\" id=\"subsidymin\" class=\"form-control js-subsidymin-frontpage-input js-count\""); 1593 BeginWriteAttribute("placeholder", " placeholder=\'", 182847, "\'", 182914, 1); 1594 WriteAttributeValue("", 182861, Translate("Smartpage:Search.Placeholder.Min", "Min"), 182861, 53, false); 1595 EndWriteAttribute(); 1596 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">"); 1597 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 1598 WriteLiteral("</option>\r\n"); 1599 for (var i = 0; i <= 25000; i += 1250) 1600 { 1601 if (i == 25000) 1602 { 1603 WriteLiteral(" <option"); 1604 BeginWriteAttribute("value", " value=\"", 183558, "\"", 183587, 1); 1605 WriteAttributeValue("", 183566, Converter.ToInt32(i), 183566, 21, false); 1606 EndWriteAttribute(); 1607 WriteLiteral(">"); 1608 Write(Converter.ToInt32(i).ToString("N0")); 1609 WriteLiteral("+</option>\r\n"); 1610 } 1611 else 1612 { 1613 WriteLiteral(" <option"); 1614 BeginWriteAttribute("value", " value=\"", 183884, "\"", 183913, 1); 1615 WriteAttributeValue("", 183892, Converter.ToInt32(i), 183892, 21, false); 1616 EndWriteAttribute(); 1617 WriteLiteral(">"); 1618 Write(Converter.ToInt32(i).ToString("N0")); 1619 WriteLiteral("</option>\r\n"); 1620 } 1621 } 1622 WriteLiteral(@" </select> 1623 </div> 1624 <div class=""col-6 pl-sm-0 pl-2""> 1625 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count"""); 1626 BeginWriteAttribute("placeholder", " placeholder=\'", 184425, "\'", 184492, 1); 1627 WriteAttributeValue("", 184439, Translate("Smartpage:Search.Placeholder.Max", "Max"), 184439, 53, false); 1628 EndWriteAttribute(); 1629 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1630 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 1631 WriteLiteral("</option>\r\n"); 1632 for (var i = 0; i <= 25000; i += 1250) 1633 { 1634 if (i == 25000) 1635 { 1636 WriteLiteral(" <option"); 1637 BeginWriteAttribute("value", " value=\"", 185132, "\"", 185161, 1); 1638 WriteAttributeValue("", 185140, Converter.ToInt32(i), 185140, 21, false); 1639 EndWriteAttribute(); 1640 WriteLiteral(">"); 1641 Write(Converter.ToInt32(i).ToString("N0")); 1642 WriteLiteral("+</option>\r\n"); 1643 } 1644 else 1645 { 1646 WriteLiteral(" <option"); 1647 BeginWriteAttribute("value", " value=\"", 185458, "\"", 185487, 1); 1648 WriteAttributeValue("", 185466, Converter.ToInt32(i), 185466, 21, false); 1649 EndWriteAttribute(); 1650 WriteLiteral(">"); 1651 Write(Converter.ToInt32(i).ToString("N0")); 1652 WriteLiteral("</option>\r\n"); 1653 } 1654 } 1655 WriteLiteral(@" </select> 1656 </div> 1657 </div> 1658 </div> 1659 <div class=""col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0""> 1660 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1661 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 1662 WriteLiteral(@"</button> 1663 </div> 1664 </div> 1665 </div> 1666 </div> 1667 </div> 1668 <div class=""row d-block d-md-none form-wrapper no-gutters""> 1669 <div class=""col-xs-12 col-md-2""> 1670 <button type=""submit"" class=""btn btn-block btn-search dark-red""><i class=""fa fa-search""></i> "); 1671 Write(Translate("Smartpage:Search.Søg", "Søg")); 1672 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n"); 1673 } 1674 WriteLiteral(" </div>\r\n\r\n"); 1675 1676 RenderSlideMenu(false, Convert.ToString(settings_Maeglersogning)); 1677 WriteLiteral("\r\n"); 1678 if (isBrokerPage) 1679 { 1680 WriteLiteral(" <section class=\"maegler-navbar\">\r\n "); 1681 Write(RenderNavigation(new 1682 { 1683 id = "navbar-main", 1684 cssclass = "dwnavigation", 1685 template = "ul_li.xslt", 1686 StartLevel = 1, 1687 EndLevel = 1 1688 })); 1689 WriteLiteral("\r\n </section>\r\n"); 1690 } 1691 WriteLiteral("\r\n <div class=\"visual-editor\">\r\n"); 1692 WriteLiteral("\r\n\r\n"); 1693 WriteLiteral("\r\n\r\n"); 1694 WriteLiteral("\r\n"); 1695 1696 int pageId = Model.ID; 1697 bool enableArticlesInFocus = Model.Item.GetBoolean("EnableArticlesInFocus"); 1698 bool enablePopular = Model.Item.GetBoolean("EnablePopularArticles"); 1699 bool showTitle = Model.Item.GetBoolean("ShowTitle"); 1700 bool showFilters = Model.Item.GetBoolean("ShowFilters"); 1701 bool showCategoryFilter = Model.Item.GetBoolean("ShowCategoryFilter"); 1702 bool showSearch = Model.Item.GetBoolean("ShowSearch"); 1703 string dynamicListWidth = enablePopular ? "8" : "12"; 1704 string itemType = Pageview.Item["ItemTypeName"] != null ? Pageview.Item["ItemTypeName"].ToString() : "DynamicArticle"; 1705 1706 Dictionary<string, string> categoriesList = new Dictionary<string, string>(); 1707 categoriesList.Add(Translate("All"), ""); 1708 1709 foreach (Dynamicweb.Content.Page page in Dynamicweb.Services.Pages.GetPagesByParentID(pageId)) 1710 { 1711 if (Dynamicweb.Services.Pages.GetPagesByParentID(page.ID).Any()) 1712 { 1713 categoriesList.Add(page.GetDisplayName(), page.ID.ToString()); 1714 } 1715 } 1716 1717 var articleItemTypeFields = ItemManager.Metadata.GetItemType("DynamicArticle").Fields; 1718 string filterOneLabel = articleItemTypeFields.Find("FilterOne") != null ? articleItemTypeFields.Find("FilterOne").Name : ""; 1719 string filterTwoLabel = articleItemTypeFields.Find("FilterTwo") != null ? articleItemTypeFields.Find("FilterTwo").Name : ""; 1720 string filterThreeLabel = articleItemTypeFields.Find("FilterThree") != null ? articleItemTypeFields.Find("FilterThree").Name : ""; 1721 1722 var filterOneOptions = articleItemTypeFields.Find("FilterOne") != null ? articleItemTypeFields.Find("FilterOne").Options.Values : null; 1723 var filterTwoOptions = articleItemTypeFields.Find("FilterTwo") != null ? articleItemTypeFields.Find("FilterTwo").Options.Values : null; 1724 var filterThreeOptions = articleItemTypeFields.Find("FilterThree") != null ? articleItemTypeFields.Find("FilterThree").Options.Values : null; 1725 1726 Block listPageContainer = new Block 1727 { 1728 Id = "ArticleListPageContainer", 1729 SortId = 10, 1730 Design = new Design 1731 { 1732 RenderType = RenderType.Row 1733 }, 1734 BlocksList = new List<Block> { 1735 new Block { 1736 Id = "ArticleListPageHeader", 1737 SortId = 20, 1738 Design = new Design 1739 { 1740 RenderType = RenderType.Column, 1741 Size = "12" 1742 }, 1743 BlocksList = new List<Block> { 1744 new Block { 1745 Id = "ArticleListPageHeaderRow", 1746 SortId = 10, 1747 Design = new Design 1748 { 1749 RenderType = RenderType.Row 1750 }, 1751 BlocksList = new List<Block> { 1752 new Block { 1753 Id = "ArticleListFilters", 1754 SortId = 30, 1755 Design = new Design { 1756 RenderType = RenderType.Column, 1757 Size = "10", 1758 CssClass = "grid__cell" 1759 } 1760 } 1761 } 1762 } 1763 } 1764 } 1765 } 1766 }; 1767 articleListPage.Add(listPageContainer); 1768 1769 if (Pageview.Device.ToString() == "Mobile" || Pageview.Device.ToString() == "Tablet") { 1770 Block listFilters = articleListPage.GetBlockById("ArticleListFilters"); 1771 listFilters.Template = RenderMobileFilters(listFilters.BlocksList); 1772 listFilters.SkipRenderBlocksList = true; 1773 } 1774 1775 if (showTitle) { 1776 Block titleBlock = new Block 1777 { 1778 Id = "ArticleListTitle", 1779 SortId = 10, 1780 Component = new Heading { Title = Pageview.Item["Title"].ToString(), Level = 2 }, 1781 Design = new Design 1782 { 1783 RenderType = RenderType.Column, 1784 Size = "2" 1785 } 1786 }; 1787 articleListPage.Add("ArticleListPageHeaderRow", titleBlock); 1788 } 1789 1790 if (showSearch) 1791 { 1792 Block searchFilter = new Block 1793 { 1794 Id = "ArticleListSearch", 1795 SortId = 10, 1796 Component = new ArticleListSearch { } 1797 }; 1798 articleListPage.Add("ArticleListFilters", searchFilter); 1799 } 1800 1801 if (showCategoryFilter) 1802 { 1803 Block categoryFilter = new Block 1804 { 1805 Id = "ArticleListCategoryFilter", 1806 SortId = 20, 1807 Component = new ArticleListCategoryFilter { Categories = categoriesList } 1808 }; 1809 articleListPage.Add("ArticleListFilters", categoryFilter); 1810 } 1811 1812 Block listBody = new Block 1813 { 1814 Id = "ArticleListPageBody", 1815 SortId = 30, 1816 Design = new Design 1817 { 1818 RenderType = RenderType.Column, 1819 Size = dynamicListWidth 1820 } 1821 }; 1822 articleListPage.Add("ArticleListPageContainer", listBody); 1823 1824 Block listBodyRow = new Block 1825 { 1826 Id = "ArticleListPageBodyRow", 1827 SortId = 10, 1828 Design = new Design 1829 { 1830 RenderType = RenderType.Row 1831 } 1832 }; 1833 articleListPage.Add("ArticleListPageBody", listBodyRow); 1834 1835 if (enableArticlesInFocus) { 1836 Block listInFocus = new Block 1837 { 1838 Id = "ArticleListInFocus", 1839 SortId = 10, 1840 Component = new ArticleList { Filter = "InFocus=True", Template = "ItemPublisher/List/FocusList.cshtml", PageSize = Convert.ToInt32(Pageview.Item["ArticlesInFocusListSize"].ToString()), ItemType = itemType }, 1841 Design = new Design 1842 { 1843 RenderType = RenderType.Column, 1844 Size = "12", 1845 HidePadding = true 1846 } 1847 }; 1848 articleListPage.Add("ArticleListPageBodyRow", listInFocus); 1849 } 1850 1851 Block listMain = new Block 1852 { 1853 Id = "ArticleListMain", 1854 SortId = 20, 1855 Component = new ArticleList { Template = "ItemPublisher/List/DynamicList.cshtml", PageSize = Convert.ToInt32(Pageview.Item["ArticlesListSize"].ToString()), ItemType = itemType }, 1856 Design = new Design 1857 { 1858 RenderType = RenderType.Column, 1859 Size = "12", 1860 HidePadding = true 1861 } 1862 }; 1863 articleListPage.Add("ArticleListPageBodyRow", listMain); 1864 1865 if (enablePopular) 1866 { 1867 Block listPopular = new Block 1868 { 1869 Id = "ArticleListPopular", 1870 SortId = 30, 1871 Component = new ArticleList { Template = "ItemPublisher/List/SimpleList.cshtml", PageSize = Convert.ToInt32(Pageview.Item["PopularArticlesListSize"].ToString()), ItemType = itemType }, 1872 Design = new Design 1873 { 1874 RenderType = RenderType.Column, 1875 Size = "4", 1876 CssClass = "u-padding--lg" 1877 } 1878 }; 1879 articleListPage.Add("ArticleListPageContainer", listPopular); 1880 } 1881 1882 if (showFilters) { 1883 if (filterOneOptions != null) 1884 { 1885 Block filterOne = new Block 1886 { 1887 Id = "ArticleListFilterOne", 1888 SortId = 30, 1889 Component = new ArticleListFilter { Options = filterOneOptions, Label = filterOneLabel, SystemName = "FilterOne" } 1890 }; 1891 articleListPage.Add("ArticleListFilters", filterOne); 1892 } 1893 1894 if (filterTwoOptions != null) 1895 { 1896 Block filterTwo = new Block 1897 { 1898 Id = "ArticleListFilterTwo", 1899 SortId = 40, 1900 Component = new ArticleListFilter { Options = filterTwoOptions, Label = filterTwoLabel, SystemName = "FilterTwo" } 1901 }; 1902 articleListPage.Add("ArticleListFilters", filterTwo); 1903 } 1904 1905 if (filterThreeOptions != null) 1906 { 1907 Block filterThree = new Block 1908 { 1909 Id = "ArticleListFilterThree", 1910 SortId = 50, 1911 Component = new ArticleListFilter { Options = filterThreeOptions, Label = filterThreeLabel, SystemName = "FilterThree" } 1912 }; 1913 articleListPage.Add("ArticleListFilters", filterThree); 1914 } 1915 } 1916 WriteLiteral("\r\n\r\n"); 1917 WriteLiteral("\r\n"); 1918 Write(RenderBlockList(articleListPage.BlocksRoot.BlocksList)); 1919 WriteLiteral("\r\n\r\n\r\n<script>\r\n document.getElementById(\"Page\").classList.add(\"u-color-light-gray--bg\");\r\n</script>\r\n </div>\r\n\r\n"); 1920 if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true) 1921 { 1922 string bName = MyBroker.Broker.Name; 1923 string bClass = "na"; 1924 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 1925 1926 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName)) 1927 { 1928 bName = MyBroker.Broker.CompanyName; 1929 } 1930 try 1931 { 1932 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl"); 1933 if (!string.IsNullOrEmpty(imgUrl)) 1934 { 1935 bImage = imgUrl; 1936 bClass = ""; 1937 } 1938 } 1939 catch 1940 { 1941 // Ignore 1942 } 1943 1944 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId"); 1945 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 1946 1947 WriteLiteral(" <section class=\"din-maegler\">\r\n <div"); 1948 BeginWriteAttribute("class", " class=\"", 197367, "\"", 197394, 2); 1949 WriteAttributeValue("", 197375, "img-wrapper", 197375, 11, true); 1950 WriteAttributeValue(" ", 197386, bClass, 197387, 7, false); 1951 EndWriteAttribute(); 1952 BeginWriteAttribute("style", " style=\"", 197395, "\"", 197434, 3); 1953 WriteAttributeValue("", 197403, "background-image:url(\'", 197403, 22, true); 1954 WriteAttributeValue("", 197425, bImage, 197425, 7, false); 1955 WriteAttributeValue("", 197432, "\')", 197432, 2, true); 1956 EndWriteAttribute(); 1957 WriteLiteral(@"></div> 1958 <div class=""container""> 1959 <div class=""col-12 col-sm-12 col-md-6 offset-md-6""> 1960 <h2>Din personlige mægler</h2> 1961 <div class=""row""> 1962 <div class=""col-12 col-sm-6""> 1963 <p> 1964 <b class=""my-broker-name"">"); 1965 Write(MyBroker.Employee.Name); 1966 WriteLiteral("</b><br>\r\n"); 1967 if (!string.IsNullOrEmpty(MyBroker.Employee.Email)) 1968 { 1969 WriteLiteral("Mail: <a"); 1970 BeginWriteAttribute("href", " href=\"", 197991, "\"", 198051, 2); 1971 WriteAttributeValue("", 197998, "mailto:", 197998, 7, true); 1972 WriteAttributeValue("", 198005, ExtractMaskedEmail(MyBroker.Employee.Email), 198005, 46, false); 1973 EndWriteAttribute(); 1974 WriteLiteral(" class=\"my-broker-email\">"); 1975 Write(ExtractMaskedEmail(MyBroker.Employee.Email)); 1976 WriteLiteral("</a><br>"); 1977 1978 } 1979 if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile)) 1980 { 1981 WriteLiteral("Tlf.: <a"); 1982 BeginWriteAttribute("href", " href=\"", 198350, "\"", 198393, 2); 1983 WriteAttributeValue("", 198357, "tel:", 198357, 4, true); 1984 WriteAttributeValue("", 198361, MyBroker.Employee.PhoneMobile, 198361, 32, false); 1985 EndWriteAttribute(); 1986 WriteLiteral(" class=\"my-broker-phone\">"); 1987 Write(FormatPhoneNumber(MyBroker.Employee.PhoneMobile)); 1988 WriteLiteral("</a>"); 1989 1990 } 1991 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 1992 { 1993 WriteLiteral("Tlf.: <a"); 1994 BeginWriteAttribute("href", " href=\"", 198693, "\"", 198732, 2); 1995 WriteAttributeValue("", 198700, "tel:", 198700, 4, true); 1996 WriteAttributeValue("", 198704, MyBroker.Broker.Telephone, 198704, 28, false); 1997 EndWriteAttribute(); 1998 WriteLiteral(" class=\"my-broker-phone\">"); 1999 Write(FormatPhoneNumber(MyBroker.Broker.Telephone)); 2000 WriteLiteral("</a>"); 2001 2002 } 2003 WriteLiteral(" </p>\r\n </div>\r\n <div class=\"col-12 col-sm-6\">\r\n <p>\r\n <b class=\"my-broker-company-name\">"); 2004 Write(bName); 2005 WriteLiteral("</b><br>\r\n <span class=\"my-broker-company-address\">"); 2006 Write(MyBroker.Broker.Address); 2007 WriteLiteral("</span><br>\r\n <span class=\"my-broker-company-zip\">"); 2008 Write(MyBroker.Broker.ZipCode); 2009 WriteLiteral("</span> <span class=\"my-broker-company-city\">"); 2010 Write(MyBroker.Broker.City); 2011 WriteLiteral("</span><br>\r\n"); 2012 if (!string.IsNullOrEmpty(bEmail)) 2013 { 2014 WriteLiteral("Mail: <a"); 2015 BeginWriteAttribute("href", " href=\"", 199521, "\"", 199544, 2); 2016 WriteAttributeValue("", 199528, "mailto:", 199528, 7, true); 2017 WriteAttributeValue("", 199535, bEmail, 199535, 9, false); 2018 EndWriteAttribute(); 2019 WriteLiteral(" class=\"my-broker-broker-email\">"); 2020 Write(bEmail); 2021 WriteLiteral("</a><br>"); 2022 2023 } 2024 if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2025 { 2026 WriteLiteral("Tlf.: <a"); 2027 BeginWriteAttribute("href", " href=\"", 199809, "\"", 199848, 2); 2028 WriteAttributeValue("", 199816, "tel:", 199816, 4, true); 2029 WriteAttributeValue("", 199820, MyBroker.Broker.Telephone, 199820, 28, false); 2030 EndWriteAttribute(); 2031 WriteLiteral(" class=\"my-broker-broker-phone\">"); 2032 Write(FormatPhoneNumber(MyBroker.Broker.Telephone)); 2033 WriteLiteral("</a>"); 2034 2035 } 2036 WriteLiteral(" </p>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <br />\r\n <div class=\"col-12 col-sm-6\">\r\n <a"); 2037 BeginWriteAttribute("href", " href=\"", 200224, "\"", 200259, 2); 2038 WriteAttributeValue("", 200231, "/", 200231, 1, true); 2039 WriteAttributeValue("", 200232, medlemsnummer.Substring(1), 200232, 27, false); 2040 EndWriteAttribute(); 2041 WriteLiteral(" class=\"btn btn-primary btn-block my-broker-company-url\">Til mæglerens side</a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n"); 2042 } 2043 WriteLiteral(" <footer>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n"); 2044 2045 var navigationSettings = new NavigationSettings(); 2046 navigationSettings.StartLevel = 1; 2047 navigationSettings.StopLevel = 3; 2048 navigationSettings.ExpandMode = ExpandMode.All; 2049 navigationSettings.RootAreaId = 1; 2050 navigationSettings.RootNavigationTag = "footer-nav"; 2051 2052 WriteLiteral(" "); 2053 Write(Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings)); 2054 WriteLiteral("\r\n </div>\r\n </div>\r\n </footer>\r\n\r\n"); 2055 if (Model.CurrentUser?.ID <= 0) 2056 { 2057 WriteLiteral(" <div id=\"panel-login\" class=\"panel panel-form\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"panel-form\" aria-label=\"Close\">\r\n <b></b>\r\n </button>\r\n <div class=\"loginform login\">\r\n"); 2058 if (loginParagraphId > 0) 2059 { 2060 WriteLiteral("\r\n "); 2061 Write(RenderParagraphContent(loginParagraphId)); 2062 WriteLiteral("\r\n "); 2063 2064 } 2065 WriteLiteral(" </div>\r\n <div class=\"loginform register js-register-form-wrapper\" style=\"display: none;\">\r\n"); 2066 if (createUserParagraphId > 0) 2067 { 2068 WriteLiteral("\r\n "); 2069 Write(RenderParagraphContent(createUserParagraphId)); 2070 WriteLiteral("\r\n "); 2071 2072 } 2073 WriteLiteral(" </div>\r\n <div class=\"loginform forgotpw\" style=\"display: none;\">\r\n <h2 class=\"forgotpw-reg\">"); 2074 Write(Translate("forgot-pw-reg-title", "Glemt adgangskode")); 2075 WriteLiteral("</h2>\r\n <h2 class=\"forgotpw-broker\">"); 2076 Write(Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")); 2077 WriteLiteral("</h2>\r\n <form id=\"forgotPwForm\" class=\"form-body\" method=\"post\""); 2078 BeginWriteAttribute("action", " action=\"", 202322, "\"", 202331, 0); 2079 EndWriteAttribute(); 2080 WriteLiteral(">\r\n <input type=\"hidden\" id=\"AccessUserShopID\" name=\"AccessUserShopID\" value=\"SHOP6\" />\r\n <p class=\"forgotpw-reg\">"); 2081 Write(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.")); 2082 WriteLiteral("</p>\r\n <p class=\"forgotpw-broker\">"); 2083 Write(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.")); 2084 WriteLiteral(@"</p> 2085 <div class=""form-group""> 2086 <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 /> 2087 </div> 2088 <button class=""btn btn-primary btn-block"" type=""submit"">"); 2089 Write(Translate("forgot-pw-cta", "Nulstil adgangskode")); 2090 WriteLiteral("</button>\r\n <br />\r\n <div id=\"submitMessage\"></div>\r\n </form>\r\n </div>\r\n </div>\r\n"); 2091 } 2092 WriteLiteral("\r\n"); 2093 WriteLiteral("\r\n"); 2094 2095 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"); 2096 WriteLiteral("\r\n<div id=\"panel-kontakt-koeberraadgivning\" class=\"panel panel-form\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"panel-form\" aria-label=\"Close\">\r\n <b></b>\r\n </button>\r\n <h2>"); 2097 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")); 2098 WriteLiteral("</h2>\r\n <form id=\"form-koeberraadgivning\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>"); 2099 Write(Translate("form-navn", "Navn")); 2100 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\" tabindex=\"1\""); 2101 BeginWriteAttribute("placeholder", " placeholder=\'", 204571, "\'", 204653, 1); 2102 WriteAttributeValue("", 204585, Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn"), 204585, 68, false); 2103 EndWriteAttribute(); 2104 BeginWriteAttribute("value", " value=\'", 204654, "\'", 204693, 1); 2105 WriteAttributeValue("", 204662, UserContext.Current.User?.Name, 204662, 31, false); 2106 EndWriteAttribute(); 2107 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2108 Write(Translate("form-email", "E-mail")); 2109 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" tabindex=\"2\" pattern=\"[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\""); 2110 BeginWriteAttribute("placeholder", " placeholder=\'", 204970, "\'", 205055, 1); 2111 WriteAttributeValue("", 204984, Translate("Smartpage:Kontakt.Placeholder.Email", "Indtast din e-mail"), 204984, 71, false); 2112 EndWriteAttribute(); 2113 BeginWriteAttribute("value", " value=\'", 205056, "\'", 205096, 1); 2114 WriteAttributeValue("", 205064, UserContext.Current.User?.Email, 205064, 32, false); 2115 EndWriteAttribute(); 2116 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2117 Write(Translate("form-mobile", "Mobil nr.")); 2118 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"3\" maxlength=\"20\" name=\"mobile\""); 2119 BeginWriteAttribute("placeholder", " placeholder=\'", 205407, "\'", 205492, 1); 2120 WriteAttributeValue("", 205421, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 205421, 71, false); 2121 EndWriteAttribute(); 2122 BeginWriteAttribute("value", " value=\'", 205493, "\'", 205533, 1); 2123 WriteAttributeValue("", 205501, UserContext.Current.User?.Phone, 205501, 32, false); 2124 EndWriteAttribute(); 2125 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2126 Write(Translate("form-telephone", "Telefon nr.")); 2127 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"4\" maxlength=\"20\" name=\"telefonnummer\""); 2128 BeginWriteAttribute("placeholder", " placeholder=\'", 205816, "\'", 205900, 1); 2129 WriteAttributeValue("", 205830, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 205830, 70, false); 2130 EndWriteAttribute(); 2131 BeginWriteAttribute("value", " value=\'", 205901, "\'", 205942, 1); 2132 WriteAttributeValue("", 205909, UserContext.Current?.User?.Phone, 205909, 33, false); 2133 EndWriteAttribute(); 2134 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <h3>"); 2135 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2136 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2137 Write(Translate("form-zip", "Post nr")); 2138 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\" tabindex=\"5\""); 2139 BeginWriteAttribute("placeholder", " placeholder=\'", 206350, "\'", 206428, 1); 2140 WriteAttributeValue("", 206364, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 206364, 64, false); 2141 EndWriteAttribute(); 2142 BeginWriteAttribute("value", " value=\"", 206429, "\"", 206445, 1); 2143 WriteAttributeValue("", 206437, userZip, 206437, 8, false); 2144 EndWriteAttribute(); 2145 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2146 Write(Translate("form-city", "By")); 2147 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-city\" type=\"text\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"form-group overflow-unset\">\r\n <label><strong>"); 2148 Write(Translate("form-adresse", "Adresse")); 2149 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\" tabindex=\"6\""); 2150 BeginWriteAttribute("placeholder", " placeholder=\'", 207012, "\'", 207102, 1); 2151 WriteAttributeValue("", 207026, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 207026, 76, false); 2152 EndWriteAttribute(); 2153 WriteLiteral(" required />\r\n\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2154 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2155 WriteLiteral(@"</label> 2156 </div> 2157 <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""> 2158 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2159 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2160 WriteLiteral("</strong>\r\n </button>\r\n <div class=\"collapse\" id=\"kontaktkoeberrradgiver-collapse\">\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\""); 2161 BeginWriteAttribute("placeholder", " placeholder=\'", 207896, "\'", 207974, 1); 2162 WriteAttributeValue("", 207910, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 207910, 64, false); 2163 EndWriteAttribute(); 2164 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button type=\"submit\" class=\"btn btn-green btn-block\">"); 2165 Write(Translate("KontaktMægler", "Kontakt Mægler")); 2166 WriteLiteral(@"</button> 2167 </div> 2168 </div> 2169 </div> 2170 <div class=""form-group mt-3""> 2171 <div class=""checkbox""> 2172 <label> 2173 <input type=""checkbox"" name=""kontaktmigok"" required /> 2174 2175 <span>"); 2176 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2177 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2178 Write(privacyPolicyText); 2179 WriteLiteral(" <a"); 2180 BeginWriteAttribute("href", " href=\"", 208787, "\"", 208811, 2); 2181 WriteAttributeValue("", 208794, "mailto:", 208794, 7, true); 2182 WriteAttributeValue("", 208801, termsMail, 208801, 10, false); 2183 EndWriteAttribute(); 2184 WriteLiteral(">"); 2185 Write(termsMail); 2186 WriteLiteral("</a>.\r\n Læs mere på <a"); 2187 BeginWriteAttribute("href", " href=\"", 208856, "\"", 208890, 1); 2188 WriteAttributeValue("", 208863, settings_Persondatapolitik, 208863, 27, false); 2189 EndWriteAttribute(); 2190 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n\r\n <input type=\"hidden\" name=\"fn\" value=\"krk\" />\r\n <input type=\"hidden\" name=\"origin\""); 2191 BeginWriteAttribute("value", " value=\"", 209036, "\"", 209044, 0); 2192 EndWriteAttribute(); 2193 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2194 BeginWriteAttribute("value", " value=\"", 209094, "\"", 209102, 0); 2195 EndWriteAttribute(); 2196 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2197 BeginWriteAttribute("value", " value=\"", 209150, "\"", 209174, 1); 2198 WriteAttributeValue("", 209158, Pageview.AreaID, 209158, 16, false); 2199 EndWriteAttribute(); 2200 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2201 BeginWriteAttribute("value", " value=\"", 209223, "\"", 209239, 1); 2202 WriteAttributeValue("", 209231, butikId, 209231, 8, false); 2203 EndWriteAttribute(); 2204 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2205 BeginWriteAttribute("value", " value=\"", 209293, "\"", 209301, 0); 2206 EndWriteAttribute(); 2207 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2208 BeginWriteAttribute("value", " value=\"", 209352, "\"", 209360, 0); 2209 EndWriteAttribute(); 2210 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2211 BeginWriteAttribute("value", " value=\"", 209410, "\"", 209418, 0); 2212 EndWriteAttribute(); 2213 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-advisor\" style=\"display:none;\">\r\n <h2>"); 2214 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2215 WriteLiteral("</h2>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2216 BeginWriteAttribute("src", " src=\"", 209651, "\"", 209657, 0); 2217 EndWriteAttribute(); 2218 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2219 </div> 2220 <div class=""col-6""> 2221 <p class=""js-maegler-name""></p> 2222 <p class=""js-maegler-address""></p> 2223 <p class=""js-maegler-phone""></p> 2224 <p class=""js-maegler-mail""></p> 2225 </div> 2226 </div> 2227 <p>"); 2228 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2229 WriteLiteral(@"</p> 2230 </div> 2231 </div> 2232 2233 <!--ÅBENT HUS--> 2234 <div id=""panel-aabenthus"" class=""panel panel-form""> 2235 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2236 <b></b> 2237 </button> 2238 2239 2240 <form id=""form-aabenthus"" method=""POST"" action=""/InboxHandler""> 2241 <h2>"); 2242 Write(Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")); 2243 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>"); 2244 Write(Translate("Smarptage:Adresse", "Adresse:")); 2245 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>"); 2246 Write(Translate("Smarptage:Date", "Dato:")); 2247 WriteLiteral("</strong> <label class=\"js-aabenthus-date mb-0\"></label>\r\n </div>\r\n <div class=\"d-block mb-4\">\r\n <strong>"); 2248 Write(Translate("Smarptage:Time", "Tidspunkt:")); 2249 WriteLiteral("</strong> <label class=\"js-aabenthus-time mb-0\"></label>\r\n </div>\r\n <h3>"); 2250 Write(Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")); 2251 WriteLiteral("</h3>\r\n <div class=\"form-group\">\r\n <label for=\"aabenthus-name\"><strong>"); 2252 Write(Translate("form-navn", "Navn")); 2253 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2254 BeginWriteAttribute("placeholder", " placeholder=\'", 211275, "\'", 211359, 1); 2255 WriteAttributeValue("", 211289, Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn"), 211289, 70, false); 2256 EndWriteAttribute(); 2257 BeginWriteAttribute("value", " value=\'", 211360, "\'", 211400, 1); 2258 WriteAttributeValue("", 211368, UserContext.Current?.User?.Name, 211368, 32, false); 2259 EndWriteAttribute(); 2260 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2261 Write(Translate("form-email", "E-mail")); 2262 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\""); 2263 BeginWriteAttribute("placeholder", " placeholder=\'", 211664, "\'", 211751, 1); 2264 WriteAttributeValue("", 211678, Translate("Smartpage:Aabenthus.Placeholder.Email", "Indtast din e-mail"), 211678, 73, false); 2265 EndWriteAttribute(); 2266 BeginWriteAttribute("value", " value=\'", 211752, "\'", 211792, 1); 2267 WriteAttributeValue("", 211760, UserContext.Current.User?.Email, 211760, 32, false); 2268 EndWriteAttribute(); 2269 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2270 Write(Translate("form-mobile", "Mobil nr.")); 2271 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2272 BeginWriteAttribute("placeholder", " placeholder=\'", 212085, "\'", 212172, 1); 2273 WriteAttributeValue("", 212099, Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr."), 212099, 73, false); 2274 EndWriteAttribute(); 2275 BeginWriteAttribute("value", " value=\'", 212173, "\'", 212213, 1); 2276 WriteAttributeValue("", 212181, UserContext.Current.User?.Phone, 212181, 32, false); 2277 EndWriteAttribute(); 2278 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2279 Write(Translate("form-telephone", "Telefon nr.")); 2280 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2281 BeginWriteAttribute("placeholder", " placeholder=\'", 212483, "\'", 212569, 1); 2282 WriteAttributeValue("", 212497, Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr."), 212497, 72, false); 2283 EndWriteAttribute(); 2284 BeginWriteAttribute("value", " value=\'", 212570, "\'", 212610, 1); 2285 WriteAttributeValue("", 212578, UserContext.Current.User?.Phone, 212578, 32, false); 2286 EndWriteAttribute(); 2287 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button type=\"submit\" class=\"btn btn-block btn-green\">"); 2288 Write(Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")); 2289 WriteLiteral(@"</button> 2290 </div> 2291 </div> 2292 </div> 2293 <div class=""form-group""> 2294 <div class=""checkbox""> 2295 <label> 2296 <input type=""checkbox"" name=""kontaktmigok"" required /> 2297 2298 <span class=""base-color"">"); 2299 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2300 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n "); 2301 Write(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>")); 2302 WriteLiteral("\r\n\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"ah\" />\r\n <input type=\"hidden\" name=\"origin\""); 2303 BeginWriteAttribute("value", " value=\"", 213773, "\"", 213781, 0); 2304 EndWriteAttribute(); 2305 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2306 BeginWriteAttribute("value", " value=\"", 213831, "\"", 213846, 1); 2307 WriteAttributeValue("", 213839, userID, 213839, 7, false); 2308 EndWriteAttribute(); 2309 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2310 BeginWriteAttribute("value", " value=\"", 213894, "\"", 213918, 1); 2311 WriteAttributeValue("", 213902, Pageview.AreaID, 213902, 16, false); 2312 EndWriteAttribute(); 2313 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2314 BeginWriteAttribute("value", " value=\"", 213967, "\"", 213983, 1); 2315 WriteAttributeValue("", 213975, butikId, 213975, 8, false); 2316 EndWriteAttribute(); 2317 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsaddresse\""); 2318 BeginWriteAttribute("value", " value=\"", 214037, "\"", 214045, 0); 2319 EndWriteAttribute(); 2320 WriteLiteral(" class=\"js-aabenthus-address-input\" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2321 BeginWriteAttribute("value", " value=\"", 214134, "\"", 214142, 0); 2322 EndWriteAttribute(); 2323 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2324 BeginWriteAttribute("value", " value=\"", 214193, "\"", 214201, 0); 2325 EndWriteAttribute(); 2326 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2327 BeginWriteAttribute("value", " value=\"", 214251, "\"", 214259, 0); 2328 EndWriteAttribute(); 2329 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2330 BeginWriteAttribute("value", " value=\"", 214309, "\"", 214317, 0); 2331 EndWriteAttribute(); 2332 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsnr\""); 2333 BeginWriteAttribute("value", " value=\"", 214365, "\"", 214373, 0); 2334 EndWriteAttribute(); 2335 WriteLiteral(" class=\"js-sagsnr\" />\r\n <input type=\"hidden\" name=\"productId\""); 2336 BeginWriteAttribute("value", " value=\"", 214442, "\"", 214498, 1); 2337 WriteAttributeValue("", 214450, Dynamicweb.Context.Current.Request["ProductId"], 214450, 48, false); 2338 EndWriteAttribute(); 2339 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"aftaleid\""); 2340 BeginWriteAttribute("value", " value=\"", 214548, "\"", 214556, 0); 2341 EndWriteAttribute(); 2342 WriteLiteral(@" class=""js-aftaleid"" /> 2343 2344 <input type=""hidden"" name=""dateMail"" class=""js-aabenthus-date-input"" /> 2345 <input type=""hidden"" name=""timeMail"" class=""js-aabenthus-time-input"" /> 2346 <input type=""hidden"" name=""brokerImageMail"" class=""property-broker-image-input"" /> 2347 <input type=""hidden"" name=""employeeNameMail"" class=""js-maegler-employee-name-input"" /> 2348 <input type=""hidden"" name=""employeeTitleMail"" class=""js-maegler-employee-title-input"" /> 2349 <input type=""hidden"" name=""employeeMailMail"" class=""js-maegler-mail-input"" /> 2350 <input type=""hidden"" name=""employeeMobileMail"" class=""js-maegler-mobile-input"" /> 2351 <input type=""hidden"" name=""employeePhoneMail"" class=""js-maegler-phone-input"" /> 2352 2353 <input type=""hidden"" name=""brokerNameMail"" class=""js-broker-name-input"" /> 2354 <input type=""hidden"" name=""brokerAddressMail"" class=""js-broker-address-input"" /> 2355 <input type=""hidden"" name=""brokerPhoneMail"" class=""js-broker-phone-input"" /> 2356 </form> 2357 <di"); 2358 WriteLiteral("v id=\"tak-aabenthus\" style=\"display:none;\">\r\n <h2>"); 2359 Write(Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")); 2360 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>"); 2361 Write(Translate("Smarptage:Adresse", "Adresse:")); 2362 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>"); 2363 Write(Translate("Smarptage:Date", "Dato:")); 2364 WriteLiteral("</strong> <label class=\"js-aabenthus-date mb-0\"></label>\r\n\r\n </div>\r\n <div class=\"d-block mb-4\">\r\n <strong>"); 2365 Write(Translate("Smarptage:Time", "Tidspunkt:")); 2366 WriteLiteral("</strong> <label class=\"js-aabenthus-time mb-0\"></label>\r\n\r\n </div>\r\n\r\n <div class=\"js-employee\">\r\n <p>"); 2367 Write(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>")); 2368 WriteLiteral("</p>\r\n </div>\r\n <div class=\"js-not-employee\">\r\n <p>"); 2369 Write(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")); 2370 WriteLiteral("</p>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"js-employee\">\r\n <div class=\"col-12 js-maegler-img aabenthus-image\">\r\n <div class=\"property-broker-image\""); 2371 BeginWriteAttribute("style", " style=\"", 216948, "\"", 216956, 0); 2372 EndWriteAttribute(); 2373 WriteLiteral(@"></div> 2374 2375 </div> 2376 </div> 2377 <div class=""col-12""> 2378 <div class=""bg-base""> 2379 2380 <div class=""js-employee""> 2381 <h4 class=""js-maegler-employee-name""></h4> 2382 <div class=""icon-container""> 2383 <i class=""fas fa-envelope""></i> <span class=""js-maegler-mail""></span> 2384 </div> 2385 <div class=""icon-container""> 2386 <i class=""fas fa-phone""></i> <span class=""js-maegler-mobile""></span> 2387 </div> 2388 </div> 2389 2390 2391 <h4 class=""js-maegler-name""></h4> 2392 <div class=""icon-container""> 2393 <i class=""fas fa-map-marker-alt""></i> <span class=""js-maegler-address""></span> 2394 </div> 2395 <div class=""icon-container""> 2396 <i class=""fas fa-phone""></i> <span class=""js-maegler-phone""></span>"); 2397 WriteLiteral(@" 2398 2399 </div> 2400 <a class=""btn btn-border"" onclick=""panelKontaktmaeglerGuldkoeber()"">KONTAKT MÆGLER</a> 2401 </div> 2402 </div> 2403 </div> 2404 </div> 2405 </div> 2406 2407 <!-- KONTAKT GULDKØBER --> 2408 <div id=""panel-kontakt-guldkoeber"" class=""panel panel-form""> 2409 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2410 <b></b> 2411 </button> 2412 <h2>"); 2413 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")); 2414 WriteLiteral("</h2>\r\n <form id=\"form-kontaktmaegler\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>"); 2415 Write(Translate("form-navn", "Navn")); 2416 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2417 BeginWriteAttribute("placeholder", " placeholder=\'", 218741, "\'", 218786, 1); 2418 WriteAttributeValue("", 218755, Translate("form-navn", "Navn"), 218755, 31, false); 2419 EndWriteAttribute(); 2420 BeginWriteAttribute("value", " value=\'", 218787, "\'", 218826, 1); 2421 WriteAttributeValue("", 218795, UserContext.Current.User?.Name, 218795, 31, false); 2422 EndWriteAttribute(); 2423 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2424 Write(Translate("form-email", "E-mail")); 2425 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\""); 2426 BeginWriteAttribute("placeholder", " placeholder=\'", 219090, "\'", 219138, 1); 2427 WriteAttributeValue("", 219104, Translate("form-email", "E-mail"), 219104, 34, false); 2428 EndWriteAttribute(); 2429 BeginWriteAttribute("value", " value=\'", 219139, "\'", 219179, 1); 2430 WriteAttributeValue("", 219147, UserContext.Current.User?.Email, 219147, 32, false); 2431 EndWriteAttribute(); 2432 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2433 Write(Translate("form-mobile", "Mobil nr.")); 2434 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2435 BeginWriteAttribute("placeholder", " placeholder=\'", 219477, "\'", 219562, 1); 2436 WriteAttributeValue("", 219491, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 219491, 71, false); 2437 EndWriteAttribute(); 2438 BeginWriteAttribute("value", " value=\'", 219563, "\'", 219603, 1); 2439 WriteAttributeValue("", 219571, UserContext.Current.User?.Phone, 219571, 32, false); 2440 EndWriteAttribute(); 2441 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2442 Write(Translate("form-telephone", "Telefon nr.")); 2443 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2444 BeginWriteAttribute("placeholder", " placeholder=\'", 219873, "\'", 219957, 1); 2445 WriteAttributeValue("", 219887, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 219887, 70, false); 2446 EndWriteAttribute(); 2447 BeginWriteAttribute("value", " value=\'", 219958, "\'", 219998, 1); 2448 WriteAttributeValue("", 219966, UserContext.Current.User?.Phone, 219966, 32, false); 2449 EndWriteAttribute(); 2450 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2451 Write(Translate("form-zip", "Post nr")); 2452 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2453 BeginWriteAttribute("placeholder", " placeholder=\'", 220314, "\'", 220392, 1); 2454 WriteAttributeValue("", 220328, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 220328, 64, false); 2455 EndWriteAttribute(); 2456 BeginWriteAttribute("value", " value=\"", 220393, "\"", 220409, 1); 2457 WriteAttributeValue("", 220401, userZip, 220401, 8, false); 2458 EndWriteAttribute(); 2459 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2460 Write(Translate("form-city", "By")); 2461 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-city\" type=\"text\" readonly />\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group overflow-unset\">\r\n <label><strong>"); 2462 Write(Translate("form-adresse", "Adresse")); 2463 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2464 BeginWriteAttribute("placeholder", " placeholder=\'", 220965, "\'", 221055, 1); 2465 WriteAttributeValue("", 220979, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 220979, 76, false); 2466 EndWriteAttribute(); 2467 BeginWriteAttribute("value", " value=\"", 221056, "\"", 221076, 1); 2468 WriteAttributeValue("", 221064, userAddress, 221064, 12, false); 2469 EndWriteAttribute(); 2470 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2471 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2472 WriteLiteral("</label>\r\n </div>\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\""); 2473 BeginWriteAttribute("placeholder", " placeholder=\'", 221402, "\'", 221480, 1); 2474 WriteAttributeValue("", 221416, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 221416, 64, false); 2475 EndWriteAttribute(); 2476 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"checkbox\">\r\n <label>\r\n <input type=\"checkbox\" name=\"kontaktmigok\" required />\r\n\r\n <span>"); 2477 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2478 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button type=\"submit\" class=\"btn btn-green btn-block\">"); 2479 Write(Translate("KontaktMægler", "Kontakt Mægler")); 2480 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2481 Write(privacyPolicyText); 2482 WriteLiteral(" <a"); 2483 BeginWriteAttribute("href", " href=\"", 222266, "\"", 222290, 2); 2484 WriteAttributeValue("", 222273, "mailto:", 222273, 7, true); 2485 WriteAttributeValue("", 222280, termsMail, 222280, 10, false); 2486 EndWriteAttribute(); 2487 WriteLiteral(">"); 2488 Write(termsMail); 2489 WriteLiteral("</a>.\r\n Læs mere på <a"); 2490 BeginWriteAttribute("href", " href=\"", 222335, "\"", 222369, 1); 2491 WriteAttributeValue("", 222342, settings_Persondatapolitik, 222342, 27, false); 2492 EndWriteAttribute(); 2493 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"gk\" />\r\n <input type=\"hidden\" name=\"origin\""); 2494 BeginWriteAttribute("value", " value=\"", 222512, "\"", 222520, 0); 2495 EndWriteAttribute(); 2496 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2497 BeginWriteAttribute("value", " value=\"", 222570, "\"", 222585, 1); 2498 WriteAttributeValue("", 222578, userID, 222578, 7, false); 2499 EndWriteAttribute(); 2500 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2501 BeginWriteAttribute("value", " value=\"", 222633, "\"", 222657, 1); 2502 WriteAttributeValue("", 222641, Pageview.AreaID, 222641, 16, false); 2503 EndWriteAttribute(); 2504 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2505 BeginWriteAttribute("value", " value=\"", 222706, "\"", 222722, 1); 2506 WriteAttributeValue("", 222714, butikId, 222714, 8, false); 2507 EndWriteAttribute(); 2508 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2509 BeginWriteAttribute("value", " value=\"", 222776, "\"", 222784, 0); 2510 EndWriteAttribute(); 2511 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2512 BeginWriteAttribute("value", " value=\"", 222835, "\"", 222843, 0); 2513 EndWriteAttribute(); 2514 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2515 BeginWriteAttribute("value", " value=\"", 222893, "\"", 222901, 0); 2516 EndWriteAttribute(); 2517 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2518 BeginWriteAttribute("value", " value=\"", 222951, "\"", 222959, 0); 2519 EndWriteAttribute(); 2520 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-maegler-guldkoeber\" style=\"display:none;\">\r\n <h2>"); 2521 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2522 WriteLiteral("</h2>\r\n <p>"); 2523 Write(Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")); 2524 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2525 BeginWriteAttribute("src", " src=\"", 223321, "\"", 223327, 0); 2526 EndWriteAttribute(); 2527 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2528 </div> 2529 <div class=""col-6""> 2530 <p class=""js-maegler-name""></p> 2531 <p class=""js-maegler-address""></p> 2532 <p class=""js-maegler-phone""></p> 2533 <p class=""js-maegler-mail""></p> 2534 </div> 2535 </div> 2536 <p>"); 2537 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2538 WriteLiteral(@"</p> 2539 </div> 2540 </div> 2541 2542 <!-- BESTIL SALGSVURDERING --> 2543 <div id=""panel-salgsvurdering"" class=""panel panel-form""> 2544 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2545 <b></b> 2546 </button> 2547 2548 <form id=""bestil-salgsvurdering"" class=""buyer-advisor-form js-buyer-advisor-form"" method=""POST"" action=""/InboxHandler""> 2549 <h2 class=""js-buyer-advisor-header"">"); 2550 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")); 2551 WriteLiteral("</h2>\r\n <p>"); 2552 Write(Translate("form-salgsvurdering-beskrivelse", "")); 2553 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2554 Write(Translate("form-navn", "Navn")); 2555 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2556 BeginWriteAttribute("placeholder", " placeholder=\'", 224484, "\'", 224573, 1); 2557 WriteAttributeValue("", 224498, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 224498, 75, false); 2558 EndWriteAttribute(); 2559 BeginWriteAttribute("value", " value=\'", 224574, "\'", 224613, 1); 2560 WriteAttributeValue("", 224582, UserContext.Current.User?.Name, 224582, 31, false); 2561 EndWriteAttribute(); 2562 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2563 Write(Translate("form-email", "E-mail")); 2564 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\""); 2565 BeginWriteAttribute("placeholder", " placeholder=\'", 224877, "\'", 224969, 1); 2566 WriteAttributeValue("", 224891, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 224891, 78, false); 2567 EndWriteAttribute(); 2568 BeginWriteAttribute("value", " value=\'", 224970, "\'", 225010, 1); 2569 WriteAttributeValue("", 224978, UserContext.Current.User?.Email, 224978, 32, false); 2570 EndWriteAttribute(); 2571 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2572 Write(Translate("form-mobile", "Mobil nr.")); 2573 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2574 BeginWriteAttribute("placeholder", " placeholder=\'", 225308, "\'", 225400, 1); 2575 WriteAttributeValue("", 225322, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 225322, 78, false); 2576 EndWriteAttribute(); 2577 BeginWriteAttribute("value", " value=\'", 225401, "\'", 225441, 1); 2578 WriteAttributeValue("", 225409, UserContext.Current.User?.Phone, 225409, 32, false); 2579 EndWriteAttribute(); 2580 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2581 Write(Translate("form-telephone", "Telefon nr.")); 2582 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2583 BeginWriteAttribute("placeholder", " placeholder=\'", 225711, "\'", 225802, 1); 2584 WriteAttributeValue("", 225725, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 225725, 77, false); 2585 EndWriteAttribute(); 2586 BeginWriteAttribute("value", " value=\'", 225803, "\'", 225843, 1); 2587 WriteAttributeValue("", 225811, UserContext.Current.User?.Phone, 225811, 32, false); 2588 EndWriteAttribute(); 2589 WriteLiteral(" />\r\n </div>\r\n\r\n </div>\r\n\r\n <h3>"); 2590 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2591 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2592 Write(Translate("form-zip", "Post nr")); 2593 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2594 BeginWriteAttribute("placeholder", " placeholder=\'", 226263, "\'", 226341, 1); 2595 WriteAttributeValue("", 226277, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 226277, 64, false); 2596 EndWriteAttribute(); 2597 BeginWriteAttribute("value", " value=\"", 226342, "\"", 226358, 1); 2598 WriteAttributeValue("", 226350, userZip, 226350, 8, false); 2599 EndWriteAttribute(); 2600 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2601 Write(Translate("form-city", "By")); 2602 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-city\" type=\"text\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"form-group overflow-unset\">\r\n <label><strong>"); 2603 Write(Translate("form-adresse", "Adresse")); 2604 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2605 BeginWriteAttribute("placeholder", " placeholder=\'", 226912, "\'", 227002, 1); 2606 WriteAttributeValue("", 226926, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 226926, 76, false); 2607 EndWriteAttribute(); 2608 BeginWriteAttribute("value", " value=\"", 227003, "\"", 227023, 1); 2609 WriteAttributeValue("", 227011, userAddress, 227011, 12, false); 2610 EndWriteAttribute(); 2611 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2612 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2613 WriteLiteral(@"</label> 2614 </div> 2615 2616 <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""> 2617 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2618 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2619 WriteLiteral("</strong>\r\n </button>\r\n <div class=\"collapse\" id=\"salgsvurdering-collapse\">\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\""); 2620 BeginWriteAttribute("placeholder", " placeholder=\'", 227793, "\'", 227871, 1); 2621 WriteAttributeValue("", 227807, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 227807, 64, false); 2622 EndWriteAttribute(); 2623 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>"); 2624 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")); 2625 WriteLiteral("</h3>\r\n <div class=\"col-12\">\r\n <div class=\"choose-broker row align-items-center active\">\r\n <div class=\"col-2\">\r\n <input class=\"js-broker-radio\" type=\"radio\""); 2626 BeginWriteAttribute("id", " id=\"", 228317, "\"", 228322, 0); 2627 EndWriteAttribute(); 2628 WriteLiteral(" name=\"choose-broker\""); 2629 BeginWriteAttribute("value", " value=\"", 228344, "\"", 228352, 0); 2630 EndWriteAttribute(); 2631 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\""); 2632 BeginWriteAttribute("for", " for=\"", 228418, "\"", 228424, 0); 2633 EndWriteAttribute(); 2634 WriteLiteral("></label><div class=\"check\">\r\n <div class=\"inside\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <img"); 2635 BeginWriteAttribute("src", " src=\"", 228670, "\"", 228676, 0); 2636 EndWriteAttribute(); 2637 WriteLiteral(@" class=""img-fluid js-broker-image""> 2638 </div> 2639 <div class=""col-6""> 2640 <span class=""d-block""> 2641 <strong class=""js-choose-broker-name""></strong> 2642 </span> 2643 <span class=""js-choose-broker-address""></span> 2644 <input type=""hidden"" class=""js-choose-broker-phone"""); 2645 BeginWriteAttribute("value", " value=\"", 229088, "\"", 229096, 0); 2646 EndWriteAttribute(); 2647 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\""); 2648 BeginWriteAttribute("value", " value=\"", 229177, "\"", 229185, 0); 2649 EndWriteAttribute(); 2650 WriteLiteral(" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"salgsvurdering-broker\">\r\n <h3 class=\"js-brokerh3\">"); 2651 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")); 2652 WriteLiteral(@"</h3> 2653 <div class=""js-choose-broker col-12""> 2654 </div> 2655 2656 </div> 2657 2658 <div class=""form-group mt-4""> 2659 <div class=""checkbox""> 2660 <label> 2661 <input type=""checkbox"" name=""kontaktmigok"" required /> 2662 2663 <span class=""consent-checkbox"">"); 2664 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2665 WriteLiteral(@"</span> 2666 2667 </label> 2668 </div> 2669 </div> 2670 <div class=""form-group""> 2671 <div class=""row""> 2672 <div class=""col-12""> 2673 <button type=""submit"" class=""btn btn-green btn-block js-buyer-advisor-button"">"); 2674 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")); 2675 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2676 Write(privacyPolicyText); 2677 WriteLiteral(" <a"); 2678 BeginWriteAttribute("href", " href=\"", 230345, "\"", 230369, 2); 2679 WriteAttributeValue("", 230352, "mailto:", 230352, 7, true); 2680 WriteAttributeValue("", 230359, termsMail, 230359, 10, false); 2681 EndWriteAttribute(); 2682 WriteLiteral(">"); 2683 Write(termsMail); 2684 WriteLiteral("</a>.\r\n Læs mere på <a"); 2685 BeginWriteAttribute("href", " href=\"", 230414, "\"", 230448, 1); 2686 WriteAttributeValue("", 230421, settings_Persondatapolitik, 230421, 27, false); 2687 EndWriteAttribute(); 2688 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"bsv\" />\r\n <input type=\"hidden\" name=\"origin\" class=\"js-salgsvurdering-origin\""); 2689 BeginWriteAttribute("value", " value=\"", 230625, "\"", 230633, 0); 2690 EndWriteAttribute(); 2691 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2692 BeginWriteAttribute("value", " value=\"", 230683, "\"", 230698, 1); 2693 WriteAttributeValue("", 230691, userID, 230691, 7, false); 2694 EndWriteAttribute(); 2695 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2696 BeginWriteAttribute("value", " value=\"", 230746, "\"", 230770, 1); 2697 WriteAttributeValue("", 230754, Pageview.AreaID, 230754, 16, false); 2698 EndWriteAttribute(); 2699 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning\" name=\"boligvisning\""); 2700 BeginWriteAttribute("value", " value=\"", 230842, "\"", 230850, 0); 2701 EndWriteAttribute(); 2702 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-butikid\" name=\"butikId\""); 2703 BeginWriteAttribute("value", " value=\"", 230933, "\"", 230941, 0); 2704 EndWriteAttribute(); 2705 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-sagsnr\" name=\"sagsnr\""); 2706 BeginWriteAttribute("value", " value=\"", 231022, "\"", 231030, 0); 2707 EndWriteAttribute(); 2708 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\""); 2709 BeginWriteAttribute("value", " value=\"", 231081, "\"", 231137, 1); 2710 WriteAttributeValue("", 231089, Dynamicweb.Context.Current.Request["ProductId"], 231089, 48, false); 2711 EndWriteAttribute(); 2712 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2713 BeginWriteAttribute("value", " value=\"", 231191, "\"", 231199, 0); 2714 EndWriteAttribute(); 2715 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2716 BeginWriteAttribute("value", " value=\"", 231250, "\"", 231258, 0); 2717 EndWriteAttribute(); 2718 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2719 BeginWriteAttribute("value", " value=\"", 231308, "\"", 231316, 0); 2720 EndWriteAttribute(); 2721 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2722 BeginWriteAttribute("value", " value=\"", 231366, "\"", 231374, 0); 2723 EndWriteAttribute(); 2724 WriteLiteral(" />\r\n <input class=\"js-value-check\" type=\"hidden\" name=\"valueCheck\""); 2725 BeginWriteAttribute("value", " value=\"", 231449, "\"", 231457, 0); 2726 EndWriteAttribute(); 2727 WriteLiteral(" />\r\n <input class=\"js-green-appraisal\" type=\"hidden\" name=\"greenAppraisal\""); 2728 BeginWriteAttribute("value", " value=\"", 231540, "\"", 231548, 0); 2729 EndWriteAttribute(); 2730 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>"); 2731 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2732 WriteLiteral("</h2>\r\n <p>"); 2733 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")); 2734 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2735 BeginWriteAttribute("src", " src=\"", 231910, "\"", 231916, 0); 2736 EndWriteAttribute(); 2737 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2738 </div> 2739 <div class=""col-6""> 2740 <p class=""js-maegler-name""></p> 2741 <p class=""js-maegler-address""></p> 2742 <p class=""js-maegler-phone""></p> 2743 <p class=""js-maegler-mail""></p> 2744 </div> 2745 </div> 2746 <p>"); 2747 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2748 WriteLiteral(@"</p> 2749 </div> 2750 </div> 2751 2752 <!-- BESTIL SALGSVURDERING GULDKØBER --> 2753 <div id=""panel-salgsvurdering-guldkoeber"" class=""panel panel-form""> 2754 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2755 <b></b> 2756 </button> 2757 2758 <form id=""bestil-salgsvurdering-guldkoeber"" method=""POST"" action=""/InboxHandler""> 2759 <h2>"); 2760 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")); 2761 WriteLiteral("</h2>\r\n <p>"); 2762 Write(Translate("form-salgsvurdering-beskrivelse", "")); 2763 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2764 Write(Translate("form-navn", "Navn")); 2765 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2766 BeginWriteAttribute("placeholder", " placeholder=\'", 233024, "\'", 233113, 1); 2767 WriteAttributeValue("", 233038, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 233038, 75, false); 2768 EndWriteAttribute(); 2769 BeginWriteAttribute("value", " value=\'", 233114, "\'", 233153, 1); 2770 WriteAttributeValue("", 233122, UserContext.Current.User?.Name, 233122, 31, false); 2771 EndWriteAttribute(); 2772 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2773 Write(Translate("form-email", "E-mail")); 2774 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\""); 2775 BeginWriteAttribute("placeholder", " placeholder=\'", 233417, "\'", 233509, 1); 2776 WriteAttributeValue("", 233431, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 233431, 78, false); 2777 EndWriteAttribute(); 2778 BeginWriteAttribute("value", " value=\'", 233510, "\'", 233550, 1); 2779 WriteAttributeValue("", 233518, UserContext.Current.User?.Email, 233518, 32, false); 2780 EndWriteAttribute(); 2781 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2782 Write(Translate("form-telephone", "Telefon nr.")); 2783 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2784 BeginWriteAttribute("placeholder", " placeholder=\'", 233859, "\'", 233950, 1); 2785 WriteAttributeValue("", 233873, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 233873, 77, false); 2786 EndWriteAttribute(); 2787 BeginWriteAttribute("value", " value=\'", 233951, "\'", 233991, 1); 2788 WriteAttributeValue("", 233959, UserContext.Current.User?.Phone, 233959, 32, false); 2789 EndWriteAttribute(); 2790 WriteLiteral(" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2791 Write(Translate("form-mobile", "Mobil nr.")); 2792 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2793 BeginWriteAttribute("placeholder", " placeholder=\'", 234241, "\'", 234333, 1); 2794 WriteAttributeValue("", 234255, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 234255, 78, false); 2795 EndWriteAttribute(); 2796 BeginWriteAttribute("value", " value=\'", 234334, "\'", 234374, 1); 2797 WriteAttributeValue("", 234342, UserContext.Current.User?.Phone, 234342, 32, false); 2798 EndWriteAttribute(); 2799 WriteLiteral(" required />\r\n </div>\r\n </div>\r\n\r\n <h3>"); 2800 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2801 WriteLiteral("</h3>\r\n\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2802 Write(Translate("form-zip", "Post nr")); 2803 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2804 BeginWriteAttribute("placeholder", " placeholder=\'", 234803, "\'", 234881, 1); 2805 WriteAttributeValue("", 234817, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 234817, 64, false); 2806 EndWriteAttribute(); 2807 BeginWriteAttribute("value", " value=\"", 234882, "\"", 234898, 1); 2808 WriteAttributeValue("", 234890, userZip, 234890, 8, false); 2809 EndWriteAttribute(); 2810 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2811 Write(Translate("form-city", "By")); 2812 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-city\" type=\"text\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"form-group overflow-unset\">\r\n <label><strong>"); 2813 Write(Translate("form-adresse", "Adresse")); 2814 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2815 BeginWriteAttribute("placeholder", " placeholder=\'", 235452, "\'", 235542, 1); 2816 WriteAttributeValue("", 235466, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 235466, 76, false); 2817 EndWriteAttribute(); 2818 BeginWriteAttribute("value", " value=\"", 235543, "\"", 235563, 1); 2819 WriteAttributeValue("", 235551, userAddress, 235551, 12, false); 2820 EndWriteAttribute(); 2821 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2822 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2823 WriteLiteral(@"</label> 2824 </div> 2825 2826 <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""> 2827 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2828 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2829 WriteLiteral("</strong>\r\n </button>\r\n <div class=\"collapse\" id=\"salgsvurdering-collapse\">\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\""); 2830 BeginWriteAttribute("placeholder", " placeholder=\'", 236333, "\'", 236411, 1); 2831 WriteAttributeValue("", 236347, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 236347, 64, false); 2832 EndWriteAttribute(); 2833 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>"); 2834 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")); 2835 WriteLiteral("</h3>\r\n <div class=\"col-12\">\r\n <div class=\"choose-broker row align-items-center active\">\r\n <div class=\"col-2\">\r\n <input class=\"js-broker-radio\" type=\"radio\""); 2836 BeginWriteAttribute("id", " id=\"", 236855, "\"", 236860, 0); 2837 EndWriteAttribute(); 2838 WriteLiteral(" name=\"choose-broker-gk\""); 2839 BeginWriteAttribute("value", " value=\"", 236885, "\"", 236893, 0); 2840 EndWriteAttribute(); 2841 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\""); 2842 BeginWriteAttribute("for", " for=\"", 236959, "\"", 236965, 0); 2843 EndWriteAttribute(); 2844 WriteLiteral("></label><div class=\"check\">\r\n <div class=\"inside\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <img"); 2845 BeginWriteAttribute("src", " src=\"", 237211, "\"", 237217, 0); 2846 EndWriteAttribute(); 2847 WriteLiteral(@" class=""img-fluid js-broker-image""> 2848 </div> 2849 <div class=""col-6""> 2850 <span class=""d-block""> 2851 <strong class=""js-choose-broker-name""></strong> 2852 </span> 2853 <span class=""js-choose-broker-address""></span> 2854 <input type=""hidden"" class=""js-choose-broker-phone"""); 2855 BeginWriteAttribute("value", " value=\"", 237629, "\"", 237637, 0); 2856 EndWriteAttribute(); 2857 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\""); 2858 BeginWriteAttribute("value", " value=\"", 237718, "\"", 237726, 0); 2859 EndWriteAttribute(); 2860 WriteLiteral(" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"salgsvurdering-broker\">\r\n <h3 class=\"js-brokerh3\">"); 2861 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")); 2862 WriteLiteral(@"</h3> 2863 <div class=""js-choose-broker col-12""> 2864 </div> 2865 2866 </div> 2867 2868 2869 <div class=""form-group""> 2870 <div class=""row""> 2871 <div class=""col-12""> 2872 <button type=""submit"" class=""btn btn-green btn-block"">"); 2873 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")); 2874 WriteLiteral(@"</button> 2875 </div> 2876 </div> 2877 </div> 2878 <div class=""form-group""> 2879 <div class=""checkbox""> 2880 <label> 2881 <input type=""checkbox"" name=""kontaktmigok"" required /> 2882 2883 <span>"); 2884 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2885 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2886 Write(privacyPolicyText); 2887 WriteLiteral(" <a"); 2888 BeginWriteAttribute("href", " href=\"", 238834, "\"", 238858, 2); 2889 WriteAttributeValue("", 238841, "mailto:", 238841, 7, true); 2890 WriteAttributeValue("", 238848, termsMail, 238848, 10, false); 2891 EndWriteAttribute(); 2892 WriteLiteral(">"); 2893 Write(termsMail); 2894 WriteLiteral("</a>.\r\n Læs mere på <a"); 2895 BeginWriteAttribute("href", " href=\"", 238903, "\"", 238937, 1); 2896 WriteAttributeValue("", 238910, settings_Persondatapolitik, 238910, 27, false); 2897 EndWriteAttribute(); 2898 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"bsg\" />\r\n <input type=\"hidden\" name=\"origin\" class=\"js-salgsvurdering-origin\""); 2899 BeginWriteAttribute("value", " value=\"", 239114, "\"", 239122, 0); 2900 EndWriteAttribute(); 2901 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2902 BeginWriteAttribute("value", " value=\"", 239172, "\"", 239187, 1); 2903 WriteAttributeValue("", 239180, userID, 239180, 7, false); 2904 EndWriteAttribute(); 2905 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2906 BeginWriteAttribute("value", " value=\"", 239235, "\"", 239259, 1); 2907 WriteAttributeValue("", 239243, Pageview.AreaID, 239243, 16, false); 2908 EndWriteAttribute(); 2909 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning-gk\" name=\"boligvisning\""); 2910 BeginWriteAttribute("value", " value=\"", 239334, "\"", 239342, 0); 2911 EndWriteAttribute(); 2912 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-butikid\" name=\"butikId\""); 2913 BeginWriteAttribute("value", " value=\"", 239428, "\"", 239436, 0); 2914 EndWriteAttribute(); 2915 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-sagsnr\" name=\"sagsnr\""); 2916 BeginWriteAttribute("value", " value=\"", 239520, "\"", 239528, 0); 2917 EndWriteAttribute(); 2918 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\""); 2919 BeginWriteAttribute("value", " value=\"", 239579, "\"", 239635, 1); 2920 WriteAttributeValue("", 239587, Dynamicweb.Context.Current.Request["ProductId"], 239587, 48, false); 2921 EndWriteAttribute(); 2922 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2923 BeginWriteAttribute("value", " value=\"", 239689, "\"", 239697, 0); 2924 EndWriteAttribute(); 2925 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2926 BeginWriteAttribute("value", " value=\"", 239748, "\"", 239756, 0); 2927 EndWriteAttribute(); 2928 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2929 BeginWriteAttribute("value", " value=\"", 239806, "\"", 239814, 0); 2930 EndWriteAttribute(); 2931 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2932 BeginWriteAttribute("value", " value=\"", 239864, "\"", 239872, 0); 2933 EndWriteAttribute(); 2934 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>"); 2935 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2936 WriteLiteral("</h2>\r\n <p>"); 2937 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")); 2938 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2939 BeginWriteAttribute("src", " src=\"", 240234, "\"", 240240, 0); 2940 EndWriteAttribute(); 2941 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2942 </div> 2943 <div class=""col-6""> 2944 <p class=""js-maegler-name""></p> 2945 <p class=""js-maegler-address""></p> 2946 <p class=""js-maegler-phone""></p> 2947 <p class=""js-maegler-mail""></p> 2948 </div> 2949 </div> 2950 <p>"); 2951 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2952 WriteLiteral("</p>\r\n </div>\r\n</div>\r\n\r\n\r\n <div class=\"overlay-wrapper\"></div>\r\n <div class=\"dropdown-overlay\"></div>\r\n <div class=\"loader-inner ball-pulse\"></div>\r\n\r\n"); 2953 2954 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js")); 2955 WriteLiteral(" <script type=\"text/javascript\""); 2956 BeginWriteAttribute("src", " src=\'", 241041, "\'", 241145, 3); 2957 WriteAttributeValue("", 241047, TemplateUrl, 241047, 14, false); 2958 WriteAttributeValue("", 241061, "assets/webpack/js/3rdparty/viamapstrap.js?", 241061, 42, true); 2959 WriteAttributeValue("", 241103, viamapstrapFileInfo.LastWriteTime.Ticks, 241103, 42, false); 2960 EndWriteAttribute(); 2961 WriteLiteral(" async></script>\r\n"); 2962 2963 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js")); 2964 WriteLiteral(" <script type=\"text/javascript\""); 2965 BeginWriteAttribute("src", " src=\'", 241348, "\'", 241435, 3); 2966 WriteAttributeValue("", 241354, TemplateUrl, 241354, 14, false); 2967 WriteAttributeValue("", 241368, "assets/dist/bundle.app.min.js?", 241368, 30, true); 2968 WriteAttributeValue("", 241398, bundleFileInfo.LastWriteTime.Ticks, 241398, 37, false); 2969 EndWriteAttribute(); 2970 WriteLiteral(" async></script>\r\n"); 2971 WriteLiteral("\r\n "); 2972 Write(RenderSnippet("JavaScriptBottom")); 2973 WriteLiteral("\r\n\r\n"); 2974 if (Context.Current.Request.QueryString["ShowLogin"] == "true") 2975 { 2976 WriteLiteral(" <input class=\"js-showLogin\" value=\"true\" />\r\n"); 2977 } 2978 WriteLiteral("\r\n"); 2979 if (!string.IsNullOrEmpty(settings_ConduzeId)) 2980 { 2981 WriteLiteral(" <script type=\"text/javascript\" id=\"conduze-sdk\""); 2982 BeginWriteAttribute("src", " src=\"", 241759, "\"", 241820, 3); 2983 WriteAttributeValue("", 241765, "https://cdn.conduze.com/", 241765, 24, true); 2984 WriteAttributeValue("", 241789, settings_ConduzeId, 241789, 19, false); 2985 WriteAttributeValue("", 241808, "/tracking.js", 241808, 12, true); 2986 EndWriteAttribute(); 2987 WriteLiteral(" async></script>\r\n"); 2988 } 2989 WriteLiteral("\r\n"); 2990 if (!string.IsNullOrEmpty(settings_Weply)) 2991 { 2992 WriteLiteral(" <script"); 2993 BeginWriteAttribute("src", " src=\"", 241919, "\"", 241970, 2); 2994 WriteAttributeValue("", 241925, "https://app.weply.chat/widget/", 241925, 30, true); 2995 WriteAttributeValue("", 241955, settings_Weply, 241955, 15, false); 2996 EndWriteAttribute(); 2997 WriteLiteral(" async></script>\r\n"); 2998 } 2999 WriteLiteral("\r\n</body>\r\n</html>\r\n\r\n"); 3000 } 3001 #pragma warning restore 1998 3002 3003 void RenderErhvervsTypeCheckboxes(string productGroupFilter) 3004 { 3005 WriteLiteral(@" <div class=""col-xs-6 col-md-4""> 3006 <div class=""checkbox""> 3007 <label> 3008 <input type=""checkbox"" name=""propertytype"" value=""bolig/erhverv, kombineret erhverv og bolig, byejendom (kontor, butik, beboelse)"" /> 3009 <span>Bolig/erhverv</span> 3010 </label> 3011 </div> 3012 <div class=""checkbox""> 3013 <label> 3014 <input type=""checkbox"" name=""propertytype"" value=""erhvervsgrund"" /> 3015 <span>Erhvervsgrund</span> 3016 </label> 3017 </div> 3018 <div class=""checkbox""> 3019 <label> 3020 <input type=""checkbox"" name=""propertytype"" value=""boligudlejning"" /> 3021 <span>Boligudlejningsejendom</span> 3022 </label> 3023 </div> 3024 <div class=""checkbox""> 3025 <label> 3026 <input type=""checkbox"" name=""propertytype"" value=""kontor, klinik, kontorhotel, showroom, under"); 3027 WriteLiteral(@"visningslokaler"" /> 3028 <span>Kontor</span> 3029 </label> 3030 </div> 3031 </div> 3032 <div class=""col-xs-6 col-md-4""> 3033 <div class=""checkbox""> 3034 <label> 3035 <input type=""checkbox"" name=""propertytype"" value=""butik / detail, butik / detailhandel"" /> 3036 <span>Butik/detailhandel</span> 3037 </label> 3038 </div> 3039 <div class=""checkbox""> 3040 <label> 3041 <input type=""checkbox"" name=""propertytype"" value=""industri / logistik, håndværk, industri, kontor / lager, logistik"" /> 3042 <span>Produktion/lager</span> 3043 </label> 3044 </div> 3045 <div class=""checkbox""> 3046 <label> 3047 <input type=""checkbox"" name=""propertytype"" value=""hotel - kursusejendom, restaurant"" /> 3048 <span>Hotel og restaurant</span> 3049 </label> 3050 </div> 3051 <div c"); 3052 WriteLiteral(@"lass=""checkbox""> 3053 <label> 3054 <input type=""checkbox"" name=""propertytype"" value=""projekt ejendom"" /> 3055 <span>Projektejendom</span> 3056 </label> 3057 </div> 3058 </div> 3059 <div class=""col-xs-6 col-md-4""> 3060 <div class=""checkbox""> 3061 <label> 3062 <input type=""checkbox"" name=""propertytype"" value=""andet"" /> 3063 <span>Andet</span> 3064 </label> 3065 </div> 3066 </div> 3067 "); 3068 WriteLiteral(" <input type=\"hidden\" name=\"propertycategory\" value=\"erhverv, udlejning\" />\r\n <input type=\"hidden\" name=\"filtrering\""); 3069 BeginWriteAttribute("value", " value=\"", 3445, "\"", 3472, 1); 3070 WriteAttributeValue("", 3453, productGroupFilter, 3453, 19, false); 3071 EndWriteAttribute(); 3072 WriteLiteral(" />\r\n"); 3073 } 3074 void RenderBoligtypeCheckboxes() 3075 { 3076 WriteLiteral(@" <div class=""col-6 col-md-4""> 3077 <div class=""checkbox""> 3078 <label> 3079 <input type=""checkbox"" name=""propertytype"" value=""villa"" /> 3080 <span>Villa</span> 3081 </label> 3082 </div> 3083 <div class=""checkbox""> 3084 <label> 3085 <input type=""checkbox"" name=""propertytype"" value=""rækkehus"" /> 3086 <span>Rækkehus</span> 3087 </label> 3088 </div> 3089 <div class=""checkbox""> 3090 <label> 3091 <input type=""checkbox"" name=""propertytype"" value=""villalejlighed"" /> 3092 <span>Villalejlighed</span> 3093 </label> 3094 </div> 3095 <div class=""checkbox""> 3096 <label> 3097 <input type=""checkbox"" name=""propertytype"" value=""andelsbolig"" /> 3098 <span>Andelsbolig</span> 3099 </label> 3100 </div> 3101 </div> 3102 <div class=""co"); 3103 WriteLiteral(@"l-6 col-md-4""> 3104 <div class=""checkbox""> 3105 <label> 3106 <input type=""checkbox"" name=""propertytype"" value=""fritidshus, fritidsbolig"" /> 3107 <span>Fritidsbolig</span> 3108 </label> 3109 </div> 3110 <div class=""checkbox""> 3111 <label> 3112 <input type=""checkbox"" name=""propertytype"" value=""ejerlejlighed"" class=""specialOption"" data-disable-slider=""#grundareal"" data-disable-slider-ranges=""#grundarealmin,#grundarealmax"" /> 3113 <span>Ejerlejlighed</span> 3114 </label> 3115 </div> 3116 <div class=""checkbox""> 3117 <label> 3118 <input type=""checkbox"" name=""propertytype"" value=""helårsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" /> 3119 <span>Helårsgrund</span> 3120 </label> 3121 </div> 3122 <div "); 3123 WriteLiteral(@"class=""checkbox""> 3124 <label> 3125 <input type=""checkbox"" name=""propertytype"" value=""fritidsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" /> 3126 <span>Fritidsgrund</span> 3127 </label> 3128 </div> 3129 </div> 3130 <div class=""col-6 col-md-4""> 3131 <div class=""checkbox""> 3132 <label> 3133 <input type=""checkbox"" name=""propertytype"" value=""landejendom, lystejendom"" class=""specialOption"" data-disable-checkbox=""true"" /> 3134 <span>Landejendom</span> 3135 </label> 3136 </div> 3137 <div class=""checkbox""> 3138 <label> 3139 <input type=""checkbox"" name=""propertytype"" value=""erhverv"" class=""specialOption"" data-disable-checkbox=""true"" data-disable-slider=""#roomsslider"" data-disable-slider-ranges=""#roomsmin"" /> 3140 <span>Erhverv<"); 3141 WriteLiteral("/span>\r\n </label>\r\n </div>\r\n </div>\r\n"); 3142 } 3143 3144 void RenderChecked(string queryString) 3145 { 3146 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString) 3147 { 3148 Write("checked"); 3149 3150 } 3151 } 3152 3153 void RenderBoligtypeCheckboxesDropdown() 3154 { 3155 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){ 3156 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" }, 3157 { "Andelsbolig", "andelsbolig" } 3158 }; 3159 foreach (KeyValuePair<string, string> type in propertyTypes) 3160 { 3161 bool ischecked = false; 3162 string[] propertytypeSplit = new string[0]; 3163 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"])) 3164 { 3165 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(','); 3166 } 3167 foreach (var propertytypeParams in propertytypeSplit) 3168 { 3169 if (propertytypeParams == type.Value) 3170 { 3171 ischecked = true; 3172 } 3173 } 3174 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3175 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3176 WriteLiteral("\r\n <input type=\"checkbox\" name=\"propertytype\""); 3177 BeginWriteAttribute("value", " value=\"", 8068, "\"", 8087, 1); 3178 WriteAttributeValue("", 8076, type.Value, 8076, 11, false); 3179 EndWriteAttribute(); 3180 WriteLiteral(" class=\"js-input-check datavalue js-datavalue js-count\" data-val=\""); 3181 Write(type.Key); 3182 WriteLiteral("\" onchange=\"submitFilter()\""); 3183 BeginWriteAttribute("checked", " checked=\"", 8190, "\"", 8210, 1); 3184 WriteAttributeValue("", 8200, ischecked, 8200, 10, false); 3185 EndWriteAttribute(); 3186 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3187 } 3188 3189 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){ 3190 { "Fritidsbolig", "fritidshus, fritidsbolig" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" }, 3191 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" } 3192 }; 3193 foreach (KeyValuePair<string, string> type in propertyTypes2) 3194 { 3195 bool ischecked = false; 3196 string[] propertytypeSplit2 = new string[0]; 3197 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"])) 3198 { 3199 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(','); 3200 } 3201 foreach (var propertytypeParams in propertytypeSplit2) 3202 { 3203 if (propertytypeParams == type.Value) 3204 { 3205 ischecked = true; 3206 } 3207 } 3208 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3209 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3210 WriteLiteral("\r\n"); 3211 if (type.Value == "ejerlejlighed") 3212 { 3213 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3214 BeginWriteAttribute("value", " value=\"", 9634, "\"", 9653, 1); 3215 WriteAttributeValue("", 9642, type.Value, 9642, 11, false); 3216 EndWriteAttribute(); 3217 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#grundareal\" data-disable-slider-ranges=\"#grundarealmin,#grundarealmax\" data-val=\""); 3218 Write(type.Key); 3219 WriteLiteral("\" onchange=\"submitFilter()\""); 3220 BeginWriteAttribute("checked", " checked=\"", 9827, "\"", 9847, 1); 3221 WriteAttributeValue("", 9837, ischecked, 9837, 10, false); 3222 EndWriteAttribute(); 3223 WriteLiteral(" />\r\n"); 3224 } 3225 else if (type.Value == "helårsgrund") 3226 { 3227 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3228 BeginWriteAttribute("value", " value=\"", 10024, "\"", 10043, 1); 3229 WriteAttributeValue("", 10032, type.Value, 10032, 11, false); 3230 EndWriteAttribute(); 3231 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\""); 3232 Write(type.Key); 3233 WriteLiteral("\" onchange=\"submitFilter()\""); 3234 BeginWriteAttribute("checked", " checked=\"", 10240, "\"", 10260, 1); 3235 WriteAttributeValue("", 10250, ischecked, 10250, 10, false); 3236 EndWriteAttribute(); 3237 WriteLiteral(" />\r\n"); 3238 } 3239 else if (type.Value == "fritidsgrund") 3240 { 3241 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3242 BeginWriteAttribute("value", " value=\"", 10438, "\"", 10457, 1); 3243 WriteAttributeValue("", 10446, type.Value, 10446, 11, false); 3244 EndWriteAttribute(); 3245 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\""); 3246 Write(type.Key); 3247 WriteLiteral("\" onchange=\"submitFilter()\""); 3248 BeginWriteAttribute("checked", " checked=\"", 10654, "\"", 10674, 1); 3249 WriteAttributeValue("", 10664, ischecked, 10664, 10, false); 3250 EndWriteAttribute(); 3251 WriteLiteral(" />\r\n"); 3252 } 3253 else 3254 { 3255 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3256 BeginWriteAttribute("value", " value=\"", 10818, "\"", 10837, 1); 3257 WriteAttributeValue("", 10826, type.Value, 10826, 11, false); 3258 EndWriteAttribute(); 3259 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3260 Write(type.Key); 3261 WriteLiteral("\" onchange=\"submitFilter()\""); 3262 BeginWriteAttribute("checked", " checked=\"", 10918, "\"", 10938, 1); 3263 WriteAttributeValue("", 10928, ischecked, 10928, 10, false); 3264 EndWriteAttribute(); 3265 WriteLiteral(" />\r\n"); 3266 } 3267 WriteLiteral(" <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3268 } 3269 } 3270 3271 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false) 3272 { 3273 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3274 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" }, 3275 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" } 3276 }; 3277 var submitonchange = ""; 3278 if (submitOnChange) 3279 { 3280 submitonchange = "onchange='submitFilter()'"; 3281 } 3282 3283 foreach (KeyValuePair<string, string> type in erhverType) 3284 { 3285 string ischecked = ""; 3286 string[] olineParamsSplit = new string[0]; 3287 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"])) 3288 { 3289 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(','); 3290 } 3291 foreach (var olineParams in olineParamsSplit) 3292 { 3293 if (olineParams == type.Value) 3294 { 3295 ischecked = "checked"; 3296 } 3297 } 3298 3299 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3300 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3301 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\""); 3302 BeginWriteAttribute("value", " value=\"", 12582, "\"", 12601, 1); 3303 WriteAttributeValue("", 12590, type.Value, 12590, 11, false); 3304 EndWriteAttribute(); 3305 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3306 Write(type.Key); 3307 WriteLiteral("\" "); 3308 Write(submitonchange); 3309 WriteLiteral(" "); 3310 Write(ischecked); 3311 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3312 } 3313 } 3314 3315 void RenderBoligTypeErhvervInvest(bool submitOnChange = false) 3316 { 3317 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3318 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" }, 3319 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" } 3320 }; 3321 3322 foreach (KeyValuePair<string, string> type in erhverType) 3323 { 3324 bool ischecked = false; 3325 string[] olineParamsSplit = new string[0]; 3326 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"])) 3327 { 3328 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(','); 3329 } 3330 foreach (var olineParams in olineParamsSplit) 3331 { 3332 if (olineParams == type.Value) 3333 { 3334 ischecked = true; 3335 } 3336 } 3337 3338 WriteLiteral(" <li>\r\n <label class=\"checkbox-container\">\r\n "); 3339 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3340 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\""); 3341 BeginWriteAttribute("value", " value=\"", 14192, "\"", 14211, 1); 3342 WriteAttributeValue("", 14200, type.Value, 14200, 11, false); 3343 EndWriteAttribute(); 3344 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3345 Write(type.Key); 3346 WriteLiteral("\" onchange=\"submitFilter()\""); 3347 BeginWriteAttribute("checked", " checked=\"", 14292, "\"", 14312, 1); 3348 WriteAttributeValue("", 14302, ischecked, 14302, 10, false); 3349 EndWriteAttribute(); 3350 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3351 } 3352 } 3353 int GetWebsiteSettingsPageId(string pageSysName) 3354 { 3355 int sideId = 0; 3356 3357 var pw = Dynamicweb.Frontend.PageView.Current(); 3358 3359 string settingsItemId = "1"; 3360 3361 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true") 3362 { 3363 settingsItemId = "2"; 3364 } 3365 3366 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId); 3367 3368 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName)) 3369 { 3370 return sideId; 3371 } 3372 3373 string boligsideLink = settingsItem[pageSysName] as String; 3374 string linkPrefix = "Default.aspx?ID="; 3375 3376 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower())) 3377 { 3378 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId); 3379 } 3380 3381 return sideId; 3382 } 3383 3384 int GetPageSettingsPageId(string pageSysName) 3385 { 3386 int sideId = 0; 3387 3388 var pw = Dynamicweb.Frontend.PageView.Current(); 3389 3390 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName)) 3391 { 3392 return sideId; 3393 } 3394 3395 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String; 3396 string linkPrefix = "Default.aspx?ID="; 3397 3398 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower())) 3399 { 3400 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId); 3401 } 3402 3403 return sideId; 3404 } 3405 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname) 3406 { 3407 WriteLiteral(" <select"); 3408 BeginWriteAttribute("class", " class=\"", 16255, "\"", 16310, 5); 3409 WriteAttributeValue("", 16263, "form-control", 16263, 12, true); 3410 WriteAttributeValue(" ", 16275, "d-block", 16276, 8, true); 3411 WriteAttributeValue(" ", 16283, "d-lg-none", 16284, 10, true); 3412 WriteAttributeValue(" ", 16293, "mb-10", 16294, 6, true); 3413 WriteAttributeValue(" ", 16299, className, 16300, 10, false); 3414 EndWriteAttribute(); 3415 WriteLiteral(" onchange=\"submitFilter()\""); 3416 BeginWriteAttribute("name", " name=\"", 16337, "\"", 16354, 1); 3417 WriteAttributeValue("", 16344, inputname, 16344, 10, false); 3418 EndWriteAttribute(); 3419 WriteLiteral(">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3420 Write(Translate("Smartpage:Search.Placeholder." + name + "", "" + name + "")); 3421 WriteLiteral("</option>\r\n\r\n"); 3422 for (var i = 0; i <= max; i += step) 3423 { 3424 var selected = string.Empty; 3425 var current = string.Empty; 3426 if (i == max) 3427 { 3428 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i)) 3429 { 3430 WriteLiteral(" <option"); 3431 BeginWriteAttribute("value", " value=\"", 16950, "\"", 16960, 1); 3432 WriteAttributeValue("", 16958, i, 16958, 2, false); 3433 EndWriteAttribute(); 3434 WriteLiteral(" data-value=\'"); 3435 Write(Convert.ToInt32(i).ToString("N0")); 3436 WriteLiteral("\' selected=\"selected\">"); 3437 Write(Convert.ToInt32(i).ToString("N0")); 3438 WriteLiteral("+</option>\r\n"); 3439 } 3440 else 3441 { 3442 WriteLiteral(" <option"); 3443 BeginWriteAttribute("value", " value=\"", 17179, "\"", 17189, 1); 3444 WriteAttributeValue("", 17187, i, 17187, 2, false); 3445 EndWriteAttribute(); 3446 WriteLiteral(" data-value=\'"); 3447 Write(Convert.ToInt32(i).ToString("N0")); 3448 WriteLiteral("\'>"); 3449 Write(Convert.ToInt32(i).ToString("N0")); 3450 WriteLiteral("+</option>\r\n"); 3451 } 3452 } 3453 else 3454 { 3455 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i)) 3456 { 3457 WriteLiteral(" <option"); 3458 BeginWriteAttribute("value", " value=\"", 17613, "\"", 17623, 1); 3459 WriteAttributeValue("", 17621, i, 17621, 2, false); 3460 EndWriteAttribute(); 3461 WriteLiteral(" data-value=\'"); 3462 Write(Convert.ToInt32(i).ToString("N0")); 3463 WriteLiteral("\' selected=\"selected\">"); 3464 Write(Convert.ToInt32(i).ToString("N0")); 3465 WriteLiteral("</option>\r\n"); 3466 } 3467 else 3468 { 3469 WriteLiteral(" <option"); 3470 BeginWriteAttribute("value", " value=\"", 17841, "\"", 17851, 1); 3471 WriteAttributeValue("", 17849, i, 17849, 2, false); 3472 EndWriteAttribute(); 3473 WriteLiteral(" data-value=\'"); 3474 Write(Convert.ToInt32(i).ToString("N0")); 3475 WriteLiteral("\'>"); 3476 Write(Convert.ToInt32(i).ToString("N0")); 3477 WriteLiteral("</option>\r\n"); 3478 } 3479 } 3480 } 3481 WriteLiteral(" </select>\r\n"); 3482 } 3483 3484 void RenderTopFilter(string parameter) 3485 { 3486 if (parameter == "pricemin" || parameter == "pricemax") 3487 { 3488 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"])) 3489 { 3490 if (parameter == "pricemin") 3491 { 3492 Write("<div class='search-terms' id='priceFilter'>"); 3493 Write("Pris "); 3494 Write(Dynamicweb.Context.Current.Request[parameter]); 3495 3496 } 3497 3498 else 3499 { 3500 Write(" - "); 3501 Write(Dynamicweb.Context.Current.Request[parameter]); 3502 Write(" kr."); 3503 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"pricemin,pricemax\"></i>\r\n"); 3504 Write("</div>"); 3505 3506 } 3507 } 3508 } 3509 3510 else if (parameter == "subsidymin" || parameter == "subsidymax") 3511 { 3512 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"])) 3513 { 3514 if (parameter == "subsidymin") 3515 { 3516 Write("<div class='search-terms' id='subsidyFilter'>"); 3517 Write("Årlig leje "); 3518 Write(Dynamicweb.Context.Current.Request[parameter]); 3519 3520 } 3521 3522 else 3523 { 3524 Write(" - "); 3525 Write(Dynamicweb.Context.Current.Request[parameter]); 3526 Write(" kr."); 3527 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidymin,subsidymax\"></i>\r\n"); 3528 Write("</div>"); 3529 3530 } 3531 } 3532 } 3533 else if (parameter == "etagearealmin" || parameter == "etagearealmax") 3534 { 3535 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"])) 3536 { 3537 if (parameter == "etagearealmin") 3538 { 3539 Write("<div class='search-terms' id='etagearealFilter'>"); 3540 Write("Etageareal "); 3541 Write(Dynamicweb.Context.Current.Request[parameter]); 3542 3543 } 3544 3545 else 3546 { 3547 Write(" - "); 3548 Write(Dynamicweb.Context.Current.Request[parameter]); 3549 Write(" kvm."); 3550 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"etagearealmin,etagearealmax\"></i>\r\n"); 3551 Write("</div>"); 3552 3553 } 3554 } 3555 } 3556 3557 else if (parameter == "grundarealmin" || parameter == "grundarealmax") 3558 { 3559 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"])) 3560 { 3561 if (parameter == "grundarealmin") 3562 { 3563 Write("<div class='search-terms' id='grundarealFilter'>"); 3564 Write("Grundareal "); 3565 Write(Dynamicweb.Context.Current.Request[parameter]); 3566 3567 } 3568 3569 else 3570 { 3571 Write(" - "); 3572 Write(Dynamicweb.Context.Current.Request[parameter]); 3573 Write(" kvm."); 3574 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"grundarealmin,grundarealmax\"></i>\r\n"); 3575 Write("</div>"); 3576 3577 } 3578 } 3579 } 3580 3581 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax") 3582 { 3583 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"])) 3584 { 3585 if (parameter == "subsidykvmmin") 3586 { 3587 Write("<div class='search-terms' id='subsidykvmFilter'>"); 3588 Write("Årlig leje kvm "); 3589 Write(Dynamicweb.Context.Current.Request[parameter]); 3590 3591 } 3592 3593 else 3594 { 3595 Write(" - "); 3596 Write(Dynamicweb.Context.Current.Request[parameter]); 3597 Write(" kr."); 3598 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidykvmmin,subsidykvmmax\"></i>\r\n"); 3599 Write("</div>"); 3600 3601 } 3602 } 3603 } 3604 3605 else if (parameter == "olinecategory") 3606 { 3607 3608 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"])) 3609 { 3610 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3611 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" }, 3612 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"}, 3613 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" }, 3614 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" } 3615 }; 3616 3617 3618 foreach (var er in erhverType) 3619 { 3620 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key)) 3621 { 3622 WriteLiteral(" <div class=\"search-terms\""); 3623 BeginWriteAttribute("id", " id=\"", 23021, "\"", 23036, 1); 3624 WriteAttributeValue("", 23026, parameter, 23026, 10, false); 3625 EndWriteAttribute(); 3626 WriteLiteral(">\r\n "); 3627 Write(er.Value); 3628 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3629 Write(parameter); 3630 WriteLiteral("\" data-val=\""); 3631 Write(er.Key); 3632 WriteLiteral("\"></i>\r\n </div>\r\n"); 3633 } 3634 } 3635 } 3636 } 3637 else if (parameter == "search") 3638 { 3639 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"])) 3640 { 3641 WriteLiteral(" <div class=\"search-terms\""); 3642 BeginWriteAttribute("id", " id=\"", 23484, "\"", 23499, 1); 3643 WriteAttributeValue("", 23489, parameter, 23489, 10, false); 3644 EndWriteAttribute(); 3645 WriteLiteral(">\r\n "); 3646 Write(Dynamicweb.Context.Current.Request[parameter]); 3647 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3648 Write(parameter); 3649 WriteLiteral("\"></i>\r\n </div>\r\n"); 3650 } 3651 } 3652 else 3653 { 3654 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter])) 3655 { 3656 Dictionary<string, string> 3657 ubudsform = new Dictionary<string, string> 3658 (){ 3659 {"salg", "Salg" }, { "leje","Leje" } 3660 }; 3661 3662 foreach (var er in ubudsform) 3663 { 3664 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key)) 3665 { 3666 WriteLiteral(" <div class=\"search-terms\""); 3667 BeginWriteAttribute("id", " id=\"", 24648, "\"", 24663, 1); 3668 WriteAttributeValue("", 24653, parameter, 24653, 10, false); 3669 EndWriteAttribute(); 3670 WriteLiteral(">\r\n "); 3671 Write(er.Value); 3672 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3673 Write(parameter); 3674 WriteLiteral("\" data-val=\""); 3675 Write(er.Key); 3676 WriteLiteral("\"></i>\r\n </div>\r\n"); 3677 } 3678 } 3679 3680 3681 } 3682 } 3683 } 3684 3685 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString) 3686 { 3687 var selected = ""; 3688 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue) 3689 { 3690 selected = "selected"; 3691 } 3692 3693 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected); 3694 3695 Write(current); 3696 3697 } 3698 3699 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "") 3700 { 3701 WriteLiteral(" <div"); 3702 BeginWriteAttribute("class", " class=\"", 25667, "\"", 25713, 3); 3703 WriteAttributeValue("", 25675, "main-search-form", 25675, 16, true); 3704 WriteAttributeValue(" ", 25691, "frontpage", 25692, 10, true); 3705 WriteAttributeValue(" ", 25701, cssClasses, 25702, 11, false); 3706 EndWriteAttribute(); 3707 WriteLiteral(">\r\n <div class=\"dropdown-overlay\"></div>\r\n <div class=\"row mb-3 align-items-center\">\r\n <div class=\"col-xs-12 col-md-3 border-right\">\r\n <h3>"); 3708 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 3709 WriteLiteral("</h3>\r\n </div>\r\n <div class=\"col-xs-12 col-md-9 home-count d-none d-md-block\">\r\n <span class=\"search-count\" id=\"searchCounter\">0</span> <span>"); 3710 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 3711 WriteLiteral("</span>\r\n </div>\r\n </div>\r\n\r\n <form id=\"main-search-frontpage\" class=\"searchbar-wrapper\" action=\"/Default.aspx\" method=\"GET\">\r\n <input type=\"hidden\" name=\"ID\""); 3712 BeginWriteAttribute("value", " value=\'", 26428, "\'", 26449, 1); 3713 WriteAttributeValue("", 26436, searchPageId, 26436, 13, false); 3714 EndWriteAttribute(); 3715 WriteLiteral(@" id=""searchPageId-frontpage"" disabled=""disabled"" /> 3716 <div class=""row form-wrapper no-gutters""> 3717 3718 <div class=""col-xs-12 col-md-5 col-searchbar""> 3719 <div class=""searchbar""> 3720 <input type=""text"""); 3721 BeginWriteAttribute("name", " name=\"", 26727, "\"", 26754, 1); 3722 WriteAttributeValue("", 26734, querySearchNameAttr, 26734, 20, false); 3723 EndWriteAttribute(); 3724 WriteLiteral(" id=\"searchfield-frontpage\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 3725 BeginWriteAttribute("value", " value=\"", 26867, "\"", 26945, 1); 3726 WriteAttributeValue("", 26875, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 26875, 70, false); 3727 EndWriteAttribute(); 3728 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom-frontpage\" name=\"zipcodefrom\""); 3729 BeginWriteAttribute("value", " value=\"", 27045, "\"", 27128, 1); 3730 WriteAttributeValue("", 27053, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 27053, 75, false); 3731 EndWriteAttribute(); 3732 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto-frontpage\" name=\"zipcodeto\""); 3733 BeginWriteAttribute("value", " value=\"", 27224, "\"", 27305, 1); 3734 WriteAttributeValue("", 27232, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 27232, 73, false); 3735 EndWriteAttribute(); 3736 WriteLiteral(@" /> 3737 </div> 3738 </div> 3739 <div class=""col-xs-12 col-md-5""> 3740 <div class=""row no-gutters""> 3741 <div class=""col-xs-12 col-md-6 input-col""> 3742 <div class=""dropdown w-overlay""> 3743 <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""> 3744 "); 3745 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 3746 WriteLiteral(@" 3747 </button> 3748 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 3749 <ul class=""bolig-dropdown list-unstyled""> 3750 "); 3751 3752 RenderBoligtypeCheckboxesDropdown(); 3753 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 3754 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 3755 WriteLiteral(@"</button> 3756 </div> 3757 3758 </div> 3759 3760 </div> 3761 <div class=""col-xs-12 col-md-6 input-col""> 3762 <div class=""dropdown w-overlay""> 3763 <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""> 3764 "); 3765 Write(Translate("Smartpage:Search.Pris", "Pris")); 3766 WriteLiteral(@" 3767 </button> 3768 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris""> 3769 <input type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 3770 BeginWriteAttribute("placeholder", " placeholder=\'", 29484, "\'", 29560, 1); 3771 WriteAttributeValue("", 29498, Translate("Smartpage:Search.Placeholder.MinPris","Min. pris"), 29498, 62, false); 3772 EndWriteAttribute(); 3773 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3774 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 3775 WriteLiteral("</option>\r\n"); 3776 for (var i = 0; i <= 10000000; i += 100000) 3777 { 3778 if (i == 10000000) 3779 { 3780 WriteLiteral(" <option"); 3781 BeginWriteAttribute("value", " value=\"", 30169, "\"", 30179, 1); 3782 WriteAttributeValue("", 30177, i, 30177, 2, false); 3783 EndWriteAttribute(); 3784 WriteLiteral(" data-value=\'"); 3785 Write(Convert.ToInt32(i).ToString("N0")); 3786 WriteLiteral("+\'>"); 3787 Write(Convert.ToInt32(i).ToString("N0")); 3788 WriteLiteral("+</option>\r\n"); 3789 } 3790 else 3791 { 3792 WriteLiteral(" <option"); 3793 BeginWriteAttribute("value", " value=\"", 30491, "\"", 30501, 1); 3794 WriteAttributeValue("", 30499, i, 30499, 2, false); 3795 EndWriteAttribute(); 3796 WriteLiteral(" data-value=\'"); 3797 Write(Convert.ToInt32(i).ToString("N0")); 3798 WriteLiteral("\'>"); 3799 Write(Convert.ToInt32(i).ToString("N0")); 3800 WriteLiteral("</option>\r\n"); 3801 } 3802 } 3803 WriteLiteral(@" </select> 3804 <input type=""hidden"" id=""pricemin-frontpage"" name=""pricemin"" /> 3805 3806 <input type=""text"" class=""form-control js-auto-thousand js-pricemax-frontpage-input"""); 3807 BeginWriteAttribute("placeholder", " placeholder=\'", 30976, "\'", 31052, 1); 3808 WriteAttributeValue("", 30990, Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris"), 30990, 62, false); 3809 EndWriteAttribute(); 3810 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3811 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 3812 WriteLiteral("</option>\r\n"); 3813 for (var i = 0; i <= 10000000; i += 100000) 3814 { 3815 if (i == 10000000) 3816 { 3817 WriteLiteral(" <option"); 3818 BeginWriteAttribute("value", " value=\"", 31655, "\"", 31665, 1); 3819 WriteAttributeValue("", 31663, i, 31663, 2, false); 3820 EndWriteAttribute(); 3821 WriteLiteral(" data-value=\'"); 3822 Write(Convert.ToInt32(i).ToString("N0")); 3823 WriteLiteral("+\'>"); 3824 Write(Convert.ToInt32(i).ToString("N0")); 3825 WriteLiteral("+</option>\r\n"); 3826 } 3827 else 3828 { 3829 WriteLiteral(" <option"); 3830 BeginWriteAttribute("value", " value=\"", 31977, "\"", 31987, 1); 3831 WriteAttributeValue("", 31985, i, 31985, 2, false); 3832 EndWriteAttribute(); 3833 WriteLiteral(" data-value=\'"); 3834 Write(Convert.ToInt32(i).ToString("N0")); 3835 WriteLiteral("\'>"); 3836 Write(Convert.ToInt32(i).ToString("N0")); 3837 WriteLiteral("</option>\r\n"); 3838 } 3839 } 3840 WriteLiteral(" </select>\r\n <input type=\"hidden\" id=\"pricemax-frontpage\" name=\"pricemax\" />\r\n <button class=\"btn btn-primary js-close-dropdown mt-3\">"); 3841 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 3842 WriteLiteral(@"</button> 3843 </div> 3844 </div> 3845 </div> 3846 </div> 3847 </div> 3848 <div class=""col-xs-12 col-md-2 d-none d-md-block""> 3849 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 3850 Write(Translate("Smartpage:Search.Søg", "Søg")); 3851 WriteLiteral(@"</button> 3852 </div> 3853 </div> 3854 3855 <div class=""row moresearch-btn no-gutters""> 3856 <div class=""col-sm-12""> 3857 <div class=""row align-items-center no-gutters""> 3858 <div class=""col-12 col-md-4""> 3859 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch"" aria-expanded=""false"" aria-controls=""moreSearch""> 3860 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open"">"); 3861 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 3862 WriteLiteral("</span> <span class=\"open\"><span class=\"js-filter-count\">0</span> "); 3863 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 3864 WriteLiteral(" </span></span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-md-2 mb-xs-4\">\r\n <a class=\"js-reset reset-btn\">"); 3865 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 3866 WriteLiteral("</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"collapse\" id=\"moreSearch\">\r\n <h4 class=\"mt-20\"><b>"); 3867 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 3868 WriteLiteral(@"</b></h4> 3869 <div class=""row align-items-end mb-30""> 3870 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 3871 <div class=""filter-container row""> 3872 <label class=""d-block col-12"">"); 3873 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 3874 WriteLiteral(@"</label> 3875 <div class=""col-6 pr-sm-0 pr-2""> 3876 <input type=""text"" name=""boligarealmin"" id=""boligarealmin-frontpage"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 3877 BeginWriteAttribute("placeholder", " placeholder=\'", 34853, "\'", 34925, 1); 3878 WriteAttributeValue("", 34867, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 34867, 58, false); 3879 EndWriteAttribute(); 3880 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3881 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 3882 WriteLiteral("</option>\r\n"); 3883 for (var i = 0; i <= 300; i += 10) 3884 { 3885 if (i == 300) 3886 { 3887 WriteLiteral(" <option"); 3888 BeginWriteAttribute("value", " value=\"", 35532, "\"", 35542, 1); 3889 WriteAttributeValue("", 35540, i, 35540, 2, false); 3890 EndWriteAttribute(); 3891 WriteLiteral(">"); 3892 Write(i); 3893 WriteLiteral("+</option>\r\n"); 3894 } 3895 else 3896 { 3897 WriteLiteral(" <option"); 3898 BeginWriteAttribute("value", " value=\"", 35789, "\"", 35799, 1); 3899 WriteAttributeValue("", 35797, i, 35797, 2, false); 3900 EndWriteAttribute(); 3901 WriteLiteral(">"); 3902 Write(i); 3903 WriteLiteral("</option>\r\n"); 3904 } 3905 } 3906 WriteLiteral(@" </select> 3907 </div> 3908 <div class=""col-6 pl-sm-0 pl-2""> 3909 <input type=""text"" name=""boligarealmax"" id=""boligarealmax-frontpage"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 3910 BeginWriteAttribute("placeholder", " placeholder=\'", 36272, "\'", 36344, 1); 3911 WriteAttributeValue("", 36286, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 36286, 58, false); 3912 EndWriteAttribute(); 3913 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3914 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 3915 WriteLiteral("</option>\r\n"); 3916 for (var i = 0; i <= 300; i += 10) 3917 { 3918 if (i == 300) 3919 { 3920 WriteLiteral(" <option"); 3921 BeginWriteAttribute("value", " value=\"", 36951, "\"", 36961, 1); 3922 WriteAttributeValue("", 36959, i, 36959, 2, false); 3923 EndWriteAttribute(); 3924 WriteLiteral(">"); 3925 Write(i); 3926 WriteLiteral("+</option>\r\n"); 3927 } 3928 else 3929 { 3930 WriteLiteral(" <option"); 3931 BeginWriteAttribute("value", " value=\"", 37208, "\"", 37218, 1); 3932 WriteAttributeValue("", 37216, i, 37216, 2, false); 3933 EndWriteAttribute(); 3934 WriteLiteral(">"); 3935 Write(i); 3936 WriteLiteral("</option>\r\n"); 3937 } 3938 } 3939 WriteLiteral(@" </select> 3940 </div> 3941 </div> 3942 </div> 3943 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 3944 <div class=""filter-container row""> 3945 <label class=""d-block col-12"">"); 3946 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 3947 WriteLiteral(@"</label> 3948 <div class=""col-6 pr-sm-0 pr-2""> 3949 <input type=""text"" name=""grundarealmin"" id=""grundarealmin-frontpage"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 3950 BeginWriteAttribute("placeholder", " placeholder=\'", 38067, "\'", 38139, 1); 3951 WriteAttributeValue("", 38081, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 38081, 58, false); 3952 EndWriteAttribute(); 3953 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3954 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 3955 WriteLiteral("</option>\r\n"); 3956 for (var i = 0; i <= 10000; i += 100) 3957 { 3958 if (i == 10000) 3959 { 3960 WriteLiteral(" <option"); 3961 BeginWriteAttribute("value", " value=\"", 38751, "\"", 38761, 1); 3962 WriteAttributeValue("", 38759, i, 38759, 2, false); 3963 EndWriteAttribute(); 3964 WriteLiteral(">"); 3965 Write(i); 3966 WriteLiteral("+</option>\r\n"); 3967 } 3968 else 3969 { 3970 WriteLiteral(" <option"); 3971 BeginWriteAttribute("value", " value=\"", 39008, "\"", 39018, 1); 3972 WriteAttributeValue("", 39016, i, 39016, 2, false); 3973 EndWriteAttribute(); 3974 WriteLiteral(">"); 3975 Write(i); 3976 WriteLiteral("</option>\r\n"); 3977 } 3978 } 3979 WriteLiteral(@" </select> 3980 </div> 3981 <div class=""col-6 pl-sm-0 pl-2""> 3982 <input type=""text"" name=""grundarealmax"" id=""grundarealmax-frontpage"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 3983 BeginWriteAttribute("placeholder", " placeholder=\'", 39491, "\'", 39563, 1); 3984 WriteAttributeValue("", 39505, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 39505, 58, false); 3985 EndWriteAttribute(); 3986 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3987 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 3988 WriteLiteral("</option>\r\n"); 3989 for (var i = 0; i <= 10000; i += 100) 3990 { 3991 if (i == 10000) 3992 { 3993 WriteLiteral(" <option"); 3994 BeginWriteAttribute("value", " value=\"", 40175, "\"", 40185, 1); 3995 WriteAttributeValue("", 40183, i, 40183, 2, false); 3996 EndWriteAttribute(); 3997 WriteLiteral(">"); 3998 Write(i); 3999 WriteLiteral("+</option>\r\n"); 4000 } 4001 else 4002 { 4003 WriteLiteral(" <option"); 4004 BeginWriteAttribute("value", " value=\"", 40432, "\"", 40442, 1); 4005 WriteAttributeValue("", 40440, i, 40440, 2, false); 4006 EndWriteAttribute(); 4007 WriteLiteral(">"); 4008 Write(i); 4009 WriteLiteral("</option>\r\n"); 4010 } 4011 } 4012 WriteLiteral(@" </select> 4013 </div> 4014 </div> 4015 </div> 4016 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4017 <div class=""filter-container row""> 4018 <label class=""d-block col-12"">Antal rum</label> 4019 4020 <div class=""col-6 pr-sm-0 pr-2""> 4021 <select name=""roomsmin"" id=""roomsmin-frontpage"" class=""form-control reverse js-count""> 4022 <option selected=""true"" disabled=""disabled"">"); 4023 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 4024 WriteLiteral(@"</option> 4025 <option value=""1"">1</option> 4026 <option value=""2"">2</option> 4027 <option value=""3"">3</option> 4028 <option value=""4"">4</option> 4029 <option value=""5+"">5+</option> 4030 </select> 4031 </div> 4032 <div class=""col-6 pl-sm-0 pl-2""> 4033 <select name=""roomsmax"" id=""roomsmax-frontpage"" class=""form-control reverse js-count""> 4034 <option selected=""true"" disabled=""disabled"">"); 4035 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 4036 WriteLiteral(@"</option> 4037 <option value=""1"">1</option> 4038 <option value=""2"">2</option> 4039 <option value=""3"">3</option> 4040 <option value=""4"">4</option> 4041 <option value=""5+"">"); 4042 Write(Translate("Smartpage:Rooms.5", "5")); 4043 WriteLiteral(@"</option> 4044 </select> 4045 </div> 4046 </div> 4047 </div> 4048 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4049 <div class=""row""> 4050 <div class=""col-12""> 4051 <div class=""filter-container""> 4052 <label class=""d-block"">Energimærke</label> 4053 <select name=""energylabel"" id=""energylabel-frontpage"" class=""form-control reverse js-count""> 4054 <option disabled selected=""selected"">"); 4055 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 4056 WriteLiteral(@"</option> 4057 <option value=""01"">G</option> 4058 <option value=""02"">F</option> 4059 <option value=""03"">E</option> 4060 <option value=""04"">D</option> 4061 <option value=""05"">C</option> 4062 <option value=""06"">B</option> 4063 <option value=""07"">A</option> 4064 <option value=""08"">A2010</option> 4065 <option value=""09"">A2015</option> 4066 <option value=""10"">A2020+</option> 4067 </select> 4068 </div> 4069 </div> 4070 "); 4071 WriteLiteral(" </div>\r\n </div>\r\n <div class=\"col-12 col-sm-6 col-lg-3 mt-3\">\r\n <h4"); 4072 BeginWriteAttribute("class", " class=\"", 44687, "\"", 44695, 0); 4073 EndWriteAttribute(); 4074 WriteLiteral("><b>"); 4075 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 4076 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 4077 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 4078 WriteLiteral("</label>\r\n <div class=\"col-6 pr-sm-0 pr-2\">\r\n <input type=\"text\" name=\"subsidymin\" id=\"subsidymin-frontpage\" class=\"form-control js-subsidymin-frontpage-input js-count\""); 4079 BeginWriteAttribute("placeholder", " placeholder=\'", 45251, "\'", 45325, 1); 4080 WriteAttributeValue("", 45265, Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK"), 45265, 60, false); 4081 EndWriteAttribute(); 4082 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4083 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 4084 WriteLiteral("</option>\r\n"); 4085 for (var i = 0; i <= 25000; i += 1250) 4086 { 4087 if (i == 25000) 4088 { 4089 WriteLiteral(" <option>"); 4090 Write(Convert.ToInt32(i).ToString("N0")); 4091 WriteLiteral("+</option>\r\n"); 4092 } 4093 else 4094 { 4095 WriteLiteral(" <option>"); 4096 Write(Convert.ToInt32(i).ToString("N0")); 4097 WriteLiteral("</option>\r\n"); 4098 } 4099 } 4100 WriteLiteral(@" </select> 4101 </div> 4102 <div class=""col-6 pl-sm-0 pl-2""> 4103 <input type=""text"" name=""subsidymax"" id=""subsidymax-frontpage"" class=""form-control js-subsidymax-frontpage-input js-count"""); 4104 BeginWriteAttribute("placeholder", " placeholder=\'", 46710, "\'", 46784, 1); 4105 WriteAttributeValue("", 46724, Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK"), 46724, 60, false); 4106 EndWriteAttribute(); 4107 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4108 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 4109 WriteLiteral("</option>\r\n"); 4110 for (var i = 0; i <= 25000; i += 1250) 4111 { 4112 if (i == 25000) 4113 { 4114 WriteLiteral(" <option"); 4115 BeginWriteAttribute("value", " value=\"", 47396, "\"", 47423, 1); 4116 WriteAttributeValue("", 47404, Convert.ToInt32(i), 47404, 19, false); 4117 EndWriteAttribute(); 4118 WriteLiteral(">"); 4119 Write(Convert.ToInt32(i).ToString("N0")); 4120 WriteLiteral("+</option>\r\n"); 4121 } 4122 else 4123 { 4124 WriteLiteral(" <option"); 4125 BeginWriteAttribute("value", " value=\"", 47702, "\"", 47729, 1); 4126 WriteAttributeValue("", 47710, Convert.ToInt32(i), 47710, 19, false); 4127 EndWriteAttribute(); 4128 WriteLiteral(">"); 4129 Write(Convert.ToInt32(i).ToString("N0")); 4130 WriteLiteral("</option>\r\n"); 4131 } 4132 } 4133 WriteLiteral(@" </select> 4134 </div> 4135 </div> 4136 </div> 4137 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0""> 4138 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 4139 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 4140 WriteLiteral(@"</button> 4141 </div> 4142 </div> 4143 </div> 4144 </div> 4145 </div> 4146 4147 <div class=""row d-block d-md-none form-wrapper no-gutters""> 4148 <div class=""col-xs-12 col-md-2""> 4149 <button type=""submit"" class=""btn btn-block btn-search btn-mobile-search"">"); 4150 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig")); 4151 WriteLiteral(@"<i class=""fa fa-search cta-icon""></i></button> 4152 </div> 4153 </div> 4154 </form> 4155 <div class=""front-page-actions d-md-none""> 4156 <div> 4157 <button class=""btn btn-block btn-search btn-mobile-search js-search-mobile"">"); 4158 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig")); 4159 WriteLiteral("<i class=\"fa fa-search cta-icon\"></i></button>\r\n </div>\r\n <div>\r\n"); 4160 4161 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : ""; 4162 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER"); 4163 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\">\r\n <input name=\"id\""); 4164 BeginWriteAttribute("value", " value=\"", 49672, "\"", 49695, 1); 4165 WriteAttributeValue("", 49680, brokerSearchId, 49680, 15, false); 4166 EndWriteAttribute(); 4167 WriteLiteral(@" type=""hidden"" /> 4168 <div class=""icon-wrapper-wclick""> 4169 <i class=""fas fa-search ta-submit-on-icon-click""></i> 4170 <input class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" name=""q"" type=""text"""); 4171 BeginWriteAttribute("placeholder", " placeholder=\"", 49999, "\"", 50021, 1); 4172 WriteAttributeValue("", 50013, ctaText, 50013, 8, false); 4173 EndWriteAttribute(); 4174 WriteLiteral(" onfocus=\"this.placeholder = \'\'\""); 4175 BeginWriteAttribute("onblur", " onblur=\"", 50054, "\"", 50090, 3); 4176 WriteAttributeValue("", 50063, "this.placeholder=\'", 50063, 18, true); 4177 WriteAttributeValue("", 50081, ctaText, 50081, 8, false); 4178 WriteAttributeValue("", 50089, "\'", 50089, 1, true); 4179 EndWriteAttribute(); 4180 WriteLiteral(" />\r\n </div>\r\n </form>\r\n"); 4181 WriteLiteral(" </div>\r\n <div>\r\n <a href=\"javascript:panelSalgsvurdering(\'Hovedmenu\')\" class=\"btn btn-orange btn-block\">"); 4182 Write(Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING")); 4183 WriteLiteral("<i class=\"cta-icon fa fa-angle-right\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n"); 4184 4185 } 4186 Custom.Integration.Brokers.Models.BrokerEmployee GetBrokerFromCurrentProduct() 4187 { 4188 string productId = Dynamicweb.Context.Current.Request["ProductId"]; 4189 4190 if (string.IsNullOrWhiteSpace(productId)) 4191 { 4192 return null; 4193 } 4194 4195 var propertyProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(productId, string.Empty, true); 4196 if (propertyProduct == null) 4197 { 4198 return null; 4199 } 4200 4201 string employee = Dynamicweb.Core.Converter.ToString( 4202 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xAktoererMaeglerKontaktEmail") 4203 ); 4204 string storeId = Dynamicweb.Core.Converter.ToString( 4205 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xButikID") 4206 ); 4207 4208 if (string.IsNullOrWhiteSpace(employee) || string.IsNullOrWhiteSpace(storeId)) 4209 { 4210 return null; 4211 } 4212 4213 return Custom.Integration.Brokers.Search.GetEmployee(storeId, employee); 4214 } 4215 4216 string GetAgentTitleFromCurrentProduct() 4217 { 4218 var propBroker = GetBrokerFromCurrentProduct(); 4219 4220 if (propBroker?.Broker == null) 4221 { 4222 return string.Empty; 4223 } 4224 4225 if (!string.IsNullOrEmpty(propBroker.Broker.CompanyName)) 4226 { 4227 return propBroker.Broker.CompanyName; 4228 } 4229 4230 return propBroker.Broker.Name ?? string.Empty; 4231 } 4232 4233 string GetMasterBrokerUrlFromCurrentProduct() 4234 { 4235 var propBroker = GetBrokerFromCurrentProduct(); 4236 4237 var itemId = propBroker?.Broker?.ItemId; 4238 var itemType = propBroker?.Broker?.ItemType; 4239 4240 if (string.IsNullOrWhiteSpace(itemId) || string.IsNullOrWhiteSpace(itemType)) 4241 { 4242 return string.Empty; 4243 } 4244 var brokerItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(itemType, itemId); 4245 4246 if (brokerItem == null) 4247 { 4248 return string.Empty; 4249 } 4250 4251 var websiteId = Dynamicweb.Core.Converter.ToInt32(brokerItem["WebsiteId"]); 4252 var page = Dynamicweb.Content.Services.Pages.GetFirstPageForArea(websiteId); 4253 return Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?Id=" + page?.ID); 4254 } 4255 4256 // === Video link helpers (used by the property page) === 4257 4258 // True when the link points directly at a video file we can play in a <video> element. Everything else is iframed. 4259 bool IsDirectVideoFile(string url) 4260 { 4261 if (string.IsNullOrWhiteSpace(url)) { return false; } 4262 4263 // Strip query/fragment before checking the file extension. 4264 string path = url.Split('?', '#')[0]; 4265 string[] directExtensions = { ".mp4", ".webm", ".ogg", ".ogv", ".mov", ".m4v" }; 4266 foreach (var ext in directExtensions) 4267 { 4268 if (path.EndsWith(ext, StringComparison.InvariantCultureIgnoreCase)) { return true; } 4269 } 4270 return false; 4271 } 4272 4273 string GetYouTubeId(string url) 4274 { 4275 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 4276 4277 string[] patterns = { @"youtu\.be/([^?&/]+)", @"[?&]v=([^?&]+)", @"/embed/([^?&/]+)", @"/shorts/([^?&/]+)" }; 4278 foreach (var pattern in patterns) 4279 { 4280 var match = System.Text.RegularExpressions.Regex.Match(url, pattern); 4281 if (match.Success) { return match.Groups[1].Value; } 4282 } 4283 4284 return string.Empty; 4285 } 4286 4287 string GetVimeoId(string url) 4288 { 4289 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 4290 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?(\d+)"); 4291 return match.Success ? match.Groups[1].Value : string.Empty; 4292 } 4293 4294 string GetVimeoHash(string url) 4295 { 4296 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 4297 // Unlisted videos carry a privacy hash: vimeo.com/{id}/{hash} 4298 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?\d+/(\w+)"); 4299 return match.Success ? match.Groups[1].Value : string.Empty; 4300 } 4301 4302 // Builds the iframe src for a non-file link. YouTube/Vimeo share links are rewritten to their embeddable form 4303 // (their pages block framing); every other link (Matterport, CR3, already-embeddable pages) is used as-is. 4304 string BuildEmbedUrl(string url, bool background) 4305 { 4306 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 4307 4308 if (url.Contains("youtube", StringComparison.InvariantCultureIgnoreCase) || url.Contains("youtu.be", StringComparison.InvariantCultureIgnoreCase)) 4309 { 4310 string id = GetYouTubeId(url); 4311 if (!string.IsNullOrEmpty(id)) 4312 { 4313 string baseUrl = "https://www.youtube-nocookie.com/embed/" + id; 4314 return background 4315 ? baseUrl + "?autoplay=1&mute=1&loop=1&playlist=" + id + "&controls=0&playsinline=1&rel=0" 4316 : baseUrl + "?rel=0"; 4317 } 4318 } 4319 else if (url.Contains("vimeo", StringComparison.InvariantCultureIgnoreCase)) 4320 { 4321 string id = GetVimeoId(url); 4322 if (!string.IsNullOrEmpty(id)) 4323 { 4324 string baseUrl = "https://player.vimeo.com/video/" + id; 4325 var queryParams = new List<string>(); 4326 string hash = GetVimeoHash(url); 4327 if (!string.IsNullOrEmpty(hash)) { queryParams.Add("h=" + hash); } 4328 if (background) { queryParams.Add("background=1"); } 4329 return queryParams.Count > 0 ? baseUrl + "?" + string.Join("&", queryParams) : baseUrl; 4330 } 4331 } 4332 4333 // Matterport, CR3 and any already-embeddable link frame as-is. 4334 return url; 4335 } 4336 4337 void RenderSlideMenu(bool erhverv, string maeglersoegning) 4338 { 4339 WriteLiteral(" <div id=\"menu\" \r\n class=\"main-menu-slide \"\r\n role=\"navigation\""); 4340 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 56824, "\"", 56940, 1); 4341 WriteAttributeValue("", 56851, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.MainMenu", "Hovedmenu")), 56851, 89, false); 4342 EndWriteAttribute(); 4343 WriteLiteral(@" 4344 aria-modal=""true""> 4345 <div class=""container""> 4346 <div class=""row""> 4347 <div class=""col-12""> 4348 <span class=""menu-headline"">MENU</span> 4349 </div> 4350 <div class=""menu-slide"" 4351 role=""button"" 4352 tabindex=""0"""); 4353 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 57305, "\"", 57433, 1); 4354 WriteAttributeValue("", 57344, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.CloseMenu", "Luk menu")), 57344, 89, false); 4355 EndWriteAttribute(); 4356 WriteLiteral(">\r\n <b aria-hidden=\"true\"></b>\r\n </div>\r\n <div class=\"col-12 main-slidemenu\" role=\"region\""); 4357 BeginWriteAttribute("aria-label", " aria-label=\"", 57585, "\"", 57701, 1); 4358 WriteAttributeValue("", 57598, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.NavigationLinks", "Navigationslinks")), 57598, 103, false); 4359 EndWriteAttribute(); 4360 WriteLiteral(">\r\n"); 4361 4362 var navigationSettings = new NavigationSettings(); 4363 navigationSettings.StartLevel = 1; 4364 navigationSettings.StopLevel = 2; 4365 navigationSettings.ExpandMode = ExpandMode.All; 4366 navigationSettings.RootAreaId = Pageview.Area.ID; 4367 4368 Write(Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings)); 4369 WriteLiteral(" </div>\r\n <div class=\"col-12 bottom-btns\">\r\n\r\n"); 4370 4371 string[] maeglerid; 4372 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0"; 4373 4374 if (erhverv) 4375 { 4376 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None); 4377 } 4378 else 4379 { 4380 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None); 4381 } 4382 4383 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\" role=\"search\">\r\n <input name=\"id\""); 4384 BeginWriteAttribute("value", " value=\"", 59198, "\"", 59219, 1); 4385 WriteAttributeValue("", 59206, maeglerid[1], 59206, 13, false); 4386 EndWriteAttribute(); 4387 WriteLiteral(" type=\"hidden\" />\r\n <div class=\"icon-wrapper-wclick\">\r\n <label for=\"broker-search-menu-vm\" class=\"sr-only\">"); 4388 Write(Translate("Custom:Accessibility.FindBroker", "Find mægler")); 4389 WriteLiteral(@"</label> 4390 <i class=""fas fa-search ta-submit-on-icon-click"" 4391 aria-hidden=""true"" 4392 role=""button"" 4393 tabindex=""0"""); 4394 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 59714, "\"", 59867, 1); 4395 WriteAttributeValue("", 59767, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.SearchBroker", "Søg efter mægler")), 59767, 100, false); 4396 EndWriteAttribute(); 4397 WriteLiteral(@"></i> 4398 <input id=""broker-search-menu-vm"" 4399 class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" 4400 name=""q"" 4401 type=""text"""); 4402 BeginWriteAttribute("placeholder", " \r\n placeholder=\"", 60175, "\"", 60326, 1); 4403 WriteAttributeValue("", 60234, HtmlEncoder.HtmlAttributeEncode(Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER")), 60234, 92, false); 4404 EndWriteAttribute(); 4405 BeginWriteAttribute("aria-label", " \r\n aria-label=\"", 60327, "\"", 60523, 1); 4406 WriteAttributeValue("", 60385, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.BrokerSearchField", "Indtast postnummer eller navn for at finde mægler")), 60385, 138, false); 4407 EndWriteAttribute(); 4408 WriteLiteral("\r\n onfocus=\"this.placeholder = \'FIND MÆGLER\'\" />\r\n </div>\r\n </form>\r\n"); 4409 WriteLiteral(" <br />\r\n"); 4410 4411 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + ""; 4412 WriteLiteral(" <a"); 4413 BeginWriteAttribute("href", " href=\"", 60933, "\"", 61004, 5); 4414 WriteAttributeValue("", 60940, "javascript:panelSalgsvurdering(\'", 60940, 32, true); 4415 WriteAttributeValue("", 60972, dpmaegler, 60972, 10, false); 4416 WriteAttributeValue("", 60982, "\',\'", 60982, 3, true); 4417 WriteAttributeValue("", 60985, Pageview.AreaID, 60985, 16, false); 4418 WriteAttributeValue("", 61001, "\');", 61001, 3, true); 4419 EndWriteAttribute(); 4420 WriteLiteral(" \r\n class=\"btn btn-block btn-default-invert js-close-menu\""); 4421 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 61089, "\"", 61245, 1); 4422 WriteAttributeValue("", 61130, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.FreeSalesAssessment", "Få gratis salgsvurdering")), 61130, 115, false); 4423 EndWriteAttribute(); 4424 WriteLiteral(">Gratis salgsvurdering <i class=\"cta-icon fa fa-angle-right\" aria-hidden=\"true\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n"); 4425 } 4426 4427 void RenderBlockList(List<Block> blocks) 4428 { 4429 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false; 4430 blocks = blocks.OrderBy(item => item.SortId).ToList(); 4431 4432 foreach (Block item in blocks) 4433 { 4434 if (debug) { 4435 WriteLiteral(" <!-- Block START: "); 4436 Write(item.Id); 4437 WriteLiteral(" -->\r\n"); 4438 } 4439 4440 if (item.Design == null) 4441 { 4442 RenderBlock(item); 4443 } 4444 else if (item.Design.RenderType == RenderType.None) { 4445 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : ""; 4446 4447 WriteLiteral(" <div"); 4448 BeginWriteAttribute("class", " class=\"", 62500, "\"", 62524, 2); 4449 WriteAttributeValue("", 62508, cssClass, 62508, 9, false); 4450 WriteAttributeValue(" ", 62517, "dw-mod", 62518, 7, true); 4451 EndWriteAttribute(); 4452 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4453 } 4454 else if (item.Design.RenderType != RenderType.Hide) 4455 { 4456 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : ""; 4457 4458 if (!item.SkipRenderBlocksList) { 4459 if (item.Design.RenderType == RenderType.Row) 4460 { 4461 WriteLiteral(" <div"); 4462 BeginWriteAttribute("class", " class=\"", 62951, "\"", 63006, 4); 4463 WriteAttributeValue("", 62959, "grid", 62959, 4, true); 4464 WriteAttributeValue(" ", 62963, "grid--align-content-start", 62964, 26, true); 4465 WriteAttributeValue(" ", 62989, cssClass, 62990, 9, false); 4466 WriteAttributeValue(" ", 62999, "dw-mod", 63000, 7, true); 4467 EndWriteAttribute(); 4468 BeginWriteAttribute("id", " id=\"", 63007, "\"", 63027, 2); 4469 WriteAttributeValue("", 63012, "Block__", 63012, 7, true); 4470 WriteAttributeValue("", 63019, item.Id, 63019, 8, false); 4471 EndWriteAttribute(); 4472 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4473 } 4474 4475 if (item.Design.RenderType == RenderType.Column) 4476 { 4477 string hidePadding = item.Design.HidePadding ? "u-no-padding" : ""; 4478 string size = item.Design.Size ?? "12"; 4479 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size; 4480 4481 WriteLiteral(" <div"); 4482 BeginWriteAttribute("class", " class=\"", 63523, "\"", 63654, 9); 4483 WriteAttributeValue("", 63531, "grid__col-lg-", 63531, 13, true); 4484 WriteAttributeValue("", 63544, item.Design.Size, 63544, 17, false); 4485 WriteAttributeValue(" ", 63561, "grid__col-md-", 63562, 14, true); 4486 WriteAttributeValue("", 63575, item.Design.Size, 63575, 17, false); 4487 WriteAttributeValue(" ", 63592, "grid__col-sm-12", 63593, 16, true); 4488 WriteAttributeValue(" ", 63608, "grid__col-xs-12", 63609, 16, true); 4489 WriteAttributeValue(" ", 63624, hidePadding, 63625, 12, false); 4490 WriteAttributeValue(" ", 63637, cssClass, 63638, 9, false); 4491 WriteAttributeValue(" ", 63647, "dw-mod", 63648, 7, true); 4492 EndWriteAttribute(); 4493 BeginWriteAttribute("id", " id=\"", 63655, "\"", 63675, 2); 4494 WriteAttributeValue("", 63660, "Block__", 63660, 7, true); 4495 WriteAttributeValue("", 63667, item.Id, 63667, 8, false); 4496 EndWriteAttribute(); 4497 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4498 } 4499 4500 if (item.Design.RenderType == RenderType.Table) 4501 { 4502 WriteLiteral(" <table"); 4503 BeginWriteAttribute("class", " class=\"", 63906, "\"", 63936, 3); 4504 WriteAttributeValue("", 63914, "table", 63914, 5, true); 4505 WriteAttributeValue(" ", 63919, cssClass, 63920, 9, false); 4506 WriteAttributeValue(" ", 63929, "dw-mod", 63930, 7, true); 4507 EndWriteAttribute(); 4508 BeginWriteAttribute("id", " id=\"", 63937, "\"", 63957, 2); 4509 WriteAttributeValue("", 63942, "Block__", 63942, 7, true); 4510 WriteAttributeValue("", 63949, item.Id, 63949, 8, false); 4511 EndWriteAttribute(); 4512 WriteLiteral(">\r\n RenderBlock(item);\r\n </table>\r\n"); 4513 } 4514 4515 if (item.Design.RenderType == RenderType.TableRow) 4516 { 4517 WriteLiteral(" <tr"); 4518 BeginWriteAttribute("class", " class=\"", 64190, "\"", 64214, 2); 4519 WriteAttributeValue("", 64198, cssClass, 64198, 9, false); 4520 WriteAttributeValue(" ", 64207, "dw-mod", 64208, 7, true); 4521 EndWriteAttribute(); 4522 BeginWriteAttribute("id", " id=\"", 64215, "\"", 64235, 2); 4523 WriteAttributeValue("", 64220, "Block__", 64220, 7, true); 4524 WriteAttributeValue("", 64227, item.Id, 64227, 8, false); 4525 EndWriteAttribute(); 4526 WriteLiteral(">\r\n RenderBlock(item);\r\n </tr>\r\n"); 4527 } 4528 4529 if (item.Design.RenderType == RenderType.TableColumn) 4530 { 4531 WriteLiteral(" <td"); 4532 BeginWriteAttribute("class", " class=\"", 64468, "\"", 64492, 2); 4533 WriteAttributeValue("", 64476, cssClass, 64476, 9, false); 4534 WriteAttributeValue(" ", 64485, "dw-mod", 64486, 7, true); 4535 EndWriteAttribute(); 4536 BeginWriteAttribute("id", " id=\"", 64493, "\"", 64513, 2); 4537 WriteAttributeValue("", 64498, "Block__", 64498, 7, true); 4538 WriteAttributeValue("", 64505, item.Id, 64505, 8, false); 4539 EndWriteAttribute(); 4540 WriteLiteral(">\r\n RenderBlock(item);\r\n </td>\r\n"); 4541 } 4542 4543 if (item.Design.RenderType == RenderType.CardHeader) 4544 { 4545 WriteLiteral(" <div"); 4546 BeginWriteAttribute("class", " class=\"", 64746, "\"", 64782, 3); 4547 WriteAttributeValue("", 64754, "card-header", 64754, 11, true); 4548 WriteAttributeValue(" ", 64765, cssClass, 64766, 9, false); 4549 WriteAttributeValue(" ", 64775, "dw-mod", 64776, 7, true); 4550 EndWriteAttribute(); 4551 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4552 } 4553 4554 if (item.Design.RenderType == RenderType.CardBody) 4555 { 4556 WriteLiteral(" <div"); 4557 BeginWriteAttribute("class", " class=\"", 65014, "\"", 65043, 3); 4558 WriteAttributeValue("", 65022, "card", 65022, 4, true); 4559 WriteAttributeValue(" ", 65026, cssClass, 65027, 9, false); 4560 WriteAttributeValue(" ", 65036, "dw-mod", 65037, 7, true); 4561 EndWriteAttribute(); 4562 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4563 } 4564 4565 if (item.Design.RenderType == RenderType.CardFooter) 4566 { 4567 WriteLiteral(" <div"); 4568 BeginWriteAttribute("class", " class=\"", 65277, "\"", 65313, 3); 4569 WriteAttributeValue("", 65285, "card-footer", 65285, 11, true); 4570 WriteAttributeValue(" ", 65296, cssClass, 65297, 9, false); 4571 WriteAttributeValue(" ", 65306, "dw-mod", 65307, 7, true); 4572 EndWriteAttribute(); 4573 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4574 } 4575 } 4576 else 4577 { 4578 RenderBlock(item); 4579 } 4580 } 4581 4582 if (debug) { 4583 WriteLiteral(" <!-- Block END: "); 4584 Write(item.Id); 4585 WriteLiteral(" -->\r\n"); 4586 } 4587 } 4588 } 4589 4590 void RenderBlock(Block item) 4591 { 4592 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false; 4593 4594 if (item.Template != null) 4595 { 4596 Write(BlocksPage.RenderTemplate(item.Template)); 4597 4598 } 4599 4600 if (item.Component != null) 4601 { 4602 string customSufix = "Custom"; 4603 string methodName = item.Component.HelperName; 4604 4605 ComponentBase[] methodParameters = new ComponentBase[1]; 4606 methodParameters[0] = item.Component; 4607 Type methodType = this.GetType(); 4608 4609 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix); 4610 MethodInfo generalMethod = methodType.GetMethod(methodName); 4611 4612 try { 4613 if (debug) { 4614 WriteLiteral(" <!-- Component: "); 4615 Write(methodName.Replace("Render", "")); 4616 WriteLiteral(" -->\r\n"); 4617 } 4618 Write(customMethod.Invoke(this, methodParameters).ToString()); 4619 ; 4620 } catch { 4621 try { 4622 Write(generalMethod.Invoke(this, methodParameters).ToString()); 4623 4624 ; 4625 } catch(Exception ex) { 4626 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex); 4627 } 4628 } 4629 } 4630 4631 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList) 4632 { 4633 RenderBlockList(item.BlocksList); 4634 } 4635 } 4636 4637 void Render(ComponentBase component) 4638 { 4639 if (component != null) 4640 { 4641 Write(component.Render(this)); 4642 4643 } 4644 } 4645 4646 void RenderIcon(Icon settings) 4647 { 4648 if (settings != null) 4649 { 4650 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : ""; 4651 4652 if (settings.Name != null) 4653 { 4654 if (string.IsNullOrEmpty(settings.Label)) 4655 { 4656 WriteLiteral(" <i"); 4657 BeginWriteAttribute("class", " class=\"", 68209, "\"", 68267, 3); 4658 WriteAttributeValue("", 68217, settings.Prefix, 68217, 16, false); 4659 WriteAttributeValue(" ", 68233, settings.Name, 68234, 14, false); 4660 WriteAttributeValue(" ", 68248, settings.CssClass, 68249, 18, false); 4661 EndWriteAttribute(); 4662 WriteLiteral(" "); 4663 Write(color); 4664 WriteLiteral("></i>\r\n"); 4665 } 4666 else 4667 { 4668 if (settings.LabelPosition == IconLabelPosition.Before) 4669 { 4670 WriteLiteral(" <div"); 4671 BeginWriteAttribute("class", " class=\"", 68470, "\"", 68530, 3); 4672 WriteAttributeValue("", 68478, "u-flex", 68478, 6, true); 4673 WriteAttributeValue(" ", 68484, "u-flex--align-items-center", 68485, 27, true); 4674 WriteAttributeValue(" ", 68511, settings.CssClass, 68512, 18, false); 4675 EndWriteAttribute(); 4676 WriteLiteral(">"); 4677 Write(settings.Label); 4678 WriteLiteral(" <i"); 4679 BeginWriteAttribute("class", " class=\"", 68550, "\"", 68603, 3); 4680 WriteAttributeValue("", 68558, settings.Prefix, 68558, 16, false); 4681 WriteAttributeValue(" ", 68574, settings.Name, 68575, 14, false); 4682 WriteAttributeValue(" ", 68589, "u-margin-left", 68590, 14, true); 4683 EndWriteAttribute(); 4684 WriteLiteral(" "); 4685 Write(color); 4686 WriteLiteral("></i></div>\r\n"); 4687 } 4688 else 4689 { 4690 WriteLiteral(" <div"); 4691 BeginWriteAttribute("class", " class=\"", 68724, "\"", 68784, 3); 4692 WriteAttributeValue("", 68732, "u-flex", 68732, 6, true); 4693 WriteAttributeValue(" ", 68738, "u-flex--align-items-center", 68739, 27, true); 4694 WriteAttributeValue(" ", 68765, settings.CssClass, 68766, 18, false); 4695 EndWriteAttribute(); 4696 WriteLiteral("><i"); 4697 BeginWriteAttribute("class", " class=\"", 68788, "\"", 68854, 4); 4698 WriteAttributeValue("", 68796, settings.Prefix, 68796, 16, false); 4699 WriteAttributeValue(" ", 68812, settings.Name, 68813, 14, false); 4700 WriteAttributeValue(" ", 68827, "u-margin-right--lg", 68828, 19, true); 4701 WriteAttributeValue(" ", 68846, "u-w20px", 68847, 8, true); 4702 EndWriteAttribute(); 4703 WriteLiteral(" "); 4704 Write(color); 4705 WriteLiteral("></i>"); 4706 Write(settings.Label); 4707 WriteLiteral("</div>\r\n"); 4708 } 4709 } 4710 } 4711 else if (!string.IsNullOrEmpty(settings.Label)) 4712 { 4713 Write(settings.Label); 4714 4715 } 4716 } 4717 } 4718 4719 void RenderButton(Button settings) 4720 { 4721 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null)) 4722 { 4723 Dictionary<string, string> attributes = new Dictionary<string, string>(); 4724 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>(); 4725 if (settings.Disabled) { 4726 attributes.Add("disabled", "true"); 4727 classList.Add("disabled"); 4728 } 4729 4730 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle)) 4731 { 4732 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N"); 4733 RenderConfirmDialog(settings); 4734 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true"; 4735 } 4736 4737 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 4738 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 4739 if (!string.IsNullOrEmpty(settings.AltText)) 4740 { 4741 attributes.Add("title", settings.AltText); 4742 } 4743 else if (!string.IsNullOrEmpty(settings.Title)) 4744 { 4745 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty); 4746 cleanTitle = cleanTitle.Replace("&nbsp;", " "); 4747 attributes.Add("title", cleanTitle); 4748 } 4749 4750 var onClickEvents = new List<string>(); 4751 if (!string.IsNullOrEmpty(settings.OnClick)) 4752 { 4753 onClickEvents.Add(settings.OnClick); 4754 } 4755 if (!string.IsNullOrEmpty(settings.Href)) 4756 { 4757 if (settings.Href.Contains("javascript")) 4758 { 4759 settings.Href = settings.Href.Replace("http://", ""); 4760 } 4761 onClickEvents.Add("location.href='" + settings.Href + "'"); 4762 } 4763 if (onClickEvents.Count > 0) 4764 { 4765 attributes.Add("onClick", string.Join(";", onClickEvents)); 4766 } 4767 4768 if (settings.ButtonLayout != ButtonLayout.None) 4769 { 4770 classList.Add("btn"); 4771 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower(); 4772 if (btnLayout == "linkclean") 4773 { 4774 btnLayout = "link-clean"; //fix 4775 } 4776 classList.Add("btn--" + btnLayout); 4777 } 4778 4779 if (settings.Icon == null) 4780 { 4781 settings.Icon = new Icon(); 4782 } 4783 4784 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : ""; 4785 settings.Icon.Label = settings.Title; 4786 4787 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower()); 4788 4789 WriteLiteral(" <button"); 4790 BeginWriteAttribute("class", " class=\"", 72447, "\"", 72490, 2); 4791 WriteAttributeValue("", 72455, string.Join(" ", classList), 72455, 28, false); 4792 WriteAttributeValue(" ", 72483, "dw-mod", 72484, 7, true); 4793 EndWriteAttribute(); 4794 WriteLiteral(" "); 4795 Write(ComponentMethods.AddAttributes(attributes)); 4796 WriteLiteral(" "); 4797 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 4798 WriteLiteral(">"); 4799 RenderIcon(settings.Icon);WriteLiteral("</button>\r\n"); 4800 } 4801 } 4802 4803 void RenderConfirmDialog(Button settings) 4804 { 4805 Modal confirmDialog = new Modal { 4806 Id = settings.Id, 4807 Width = ModalWidth.Sm, 4808 Heading = new Heading 4809 { 4810 Level = 2, 4811 Title = settings.ConfirmTitle 4812 }, 4813 BodyText = settings.ConfirmText 4814 }; 4815 4816 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"}); 4817 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick }); 4818 4819 RenderModal(confirmDialog); 4820 } 4821 4822 void RenderLink(Link settings) 4823 { 4824 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null)) 4825 { 4826 Dictionary<string, string> attributes = new Dictionary<string, string>(); 4827 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>(); 4828 if (settings.Disabled) 4829 { 4830 attributes.Add("disabled", "true"); 4831 classList.Add("disabled"); 4832 } 4833 4834 if (!string.IsNullOrEmpty(settings.AltText)) 4835 { 4836 attributes.Add("title", settings.AltText); 4837 } 4838 else if (!string.IsNullOrEmpty(settings.Title)) 4839 { 4840 attributes.Add("title", settings.Title); 4841 } 4842 4843 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 4844 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 4845 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); } 4846 attributes.Add("href", settings.Href); 4847 4848 if (settings.ButtonLayout != ButtonLayout.None) 4849 { 4850 classList.Add("btn"); 4851 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower(); 4852 if (btnLayout == "linkclean") 4853 { 4854 btnLayout = "link-clean"; //fix 4855 } 4856 classList.Add("btn--" + btnLayout); 4857 } 4858 4859 if (settings.Icon == null) 4860 { 4861 settings.Icon = new Icon(); 4862 } 4863 settings.Icon.Label = settings.Title; 4864 4865 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None) 4866 { 4867 settings.Rel = LinkRelType.Noopener; 4868 } 4869 if (settings.Target != LinkTargetType.None) 4870 { 4871 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower()); 4872 } 4873 if (settings.Download) 4874 { 4875 attributes.Add("download", "true"); 4876 } 4877 if (settings.Rel != LinkRelType.None) 4878 { 4879 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower()); 4880 } 4881 4882 WriteLiteral(" <a"); 4883 BeginWriteAttribute("class", " class=\"", 76222, "\"", 76265, 2); 4884 WriteAttributeValue("", 76230, string.Join(" ", classList), 76230, 28, false); 4885 WriteAttributeValue(" ", 76258, "dw-mod", 76259, 7, true); 4886 EndWriteAttribute(); 4887 WriteLiteral(" "); 4888 Write(ComponentMethods.AddAttributes(attributes)); 4889 WriteLiteral(" "); 4890 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 4891 WriteLiteral(">Render(settings.Icon);</a>\r\n"); 4892 } 4893 } 4894 4895 void RenderRating(Rating settings) 4896 { 4897 if (settings.Score > 0) 4898 { 4899 int rating = settings.Score; 4900 string iconType = "fa-star"; 4901 4902 switch (settings.Type.ToString()) { 4903 case "Stars": 4904 iconType = "fa-star"; 4905 break; 4906 case "Hearts": 4907 iconType = "fa-heart"; 4908 break; 4909 case "Lemons": 4910 iconType = "fa-lemon"; 4911 break; 4912 case "Bombs": 4913 iconType = "fa-bomb"; 4914 break; 4915 } 4916 4917 WriteLiteral(" <div class=\"u-ta-right\">\r\n"); 4918 for (int i = 0; i < settings.OutOf; i++) 4919 { 4920 WriteLiteral(" <i"); 4921 BeginWriteAttribute("class", " class=\"", 77399, "\"", 77446, 2); 4922 WriteAttributeValue("", 77407, rating > i ? "fas" : "far", 77407, 29, false); 4923 WriteAttributeValue(" ", 77436, iconType, 77437, 9, false); 4924 EndWriteAttribute(); 4925 WriteLiteral("></i>\r\n"); 4926 } 4927 WriteLiteral(" </div>\r\n"); 4928 } 4929 } 4930 4931 void RenderNavigation(Navigation settings) { 4932 RenderNavigation(new 4933 { 4934 id = settings.Id, 4935 cssclass = settings.CssClass, 4936 startLevel = settings.StartLevel, 4937 endlevel = settings.EndLevel, 4938 expandmode = settings.Expandmode, 4939 sitemapmode = settings.SitemapMode, 4940 template = settings.Template 4941 }); 4942 } 4943 4944 void RenderLeftNavigation(LeftNavigation settings) { 4945 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id; 4946 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template; 4947 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel; 4948 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel; 4949 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode; 4950 4951 WriteLiteral(" <div class=\"grid__cell\">\r\n RenderNavigation(settings);\r\n </div> \r\n"); 4952 } 4953 4954 void RenderHeading(Heading settings) 4955 { 4956 if (settings != null && !string.IsNullOrEmpty(settings.Title)) 4957 { 4958 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : ""; 4959 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div"; 4960 4961 Write("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">"); 4962 4963 if (!string.IsNullOrEmpty(settings.Link)) 4964 { 4965 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None }); 4966 } 4967 else 4968 { 4969 if (settings.Icon == null) 4970 { 4971 settings.Icon = new Icon(); 4972 } 4973 settings.Icon.Label = settings.Title; 4974 RenderIcon(settings.Icon); 4975 } 4976 Write("</" + tagName + ">"); 4977 ; 4978 } 4979 } 4980 4981 void RenderImage(Image settings) 4982 { 4983 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None) 4984 { 4985 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 4986 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); } 4987 4988 if (settings.Caption != null) 4989 { 4990 WriteLiteral(" "); 4991 WriteLiteral("<div>\r\n"); 4992 } 4993 4994 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower(); 4995 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower(); 4996 4997 WriteLiteral(" <div"); 4998 BeginWriteAttribute("class", " class=\"", 80927, "\"", 81008, 5); 4999 WriteAttributeValue("", 80935, "image-filter", 80935, 12, true); 5000 WriteAttributeValue(" ", 80947, "image-filter--", 80948, 15, true); 5001 WriteAttributeValue("", 80962, primaryFilterClass, 80962, 19, false); 5002 WriteAttributeValue(" ", 80981, "u-position-relative", 80982, 20, true); 5003 WriteAttributeValue(" ", 81001, "dw-mod", 81002, 7, true); 5004 EndWriteAttribute(); 5005 WriteLiteral(" "); 5006 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5007 WriteLiteral(">\r\n <div"); 5008 BeginWriteAttribute("class", " class=\"", 81088, "\"", 81151, 4); 5009 WriteAttributeValue("", 81096, "image-filter", 81096, 12, true); 5010 WriteAttributeValue(" ", 81108, "image-filter--", 81109, 15, true); 5011 WriteAttributeValue("", 81123, secondaryFilterClass, 81123, 21, false); 5012 WriteAttributeValue(" ", 81144, "dw-mod", 81145, 7, true); 5013 EndWriteAttribute(); 5014 WriteLiteral(">\r\n"); 5015 if (settings.Link != null) 5016 { 5017 WriteLiteral(" <a"); 5018 BeginWriteAttribute("href", " href=\"", 81265, "\"", 81286, 1); 5019 WriteAttributeValue("", 81272, settings.Link, 81272, 14, false); 5020 EndWriteAttribute(); 5021 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n"); 5022 } 5023 else 5024 { 5025 RenderTheImage(settings); 5026 } 5027 WriteLiteral(" </div>\r\n </div>\r\n"); 5028 5029 if (settings.Caption != null) 5030 { 5031 WriteLiteral(" <span class=\"image-caption dw-mod\">"); 5032 Write(settings.Caption); 5033 WriteLiteral("</span>\r\n "); 5034 WriteLiteral("</div>\r\n"); 5035 } 5036 } 5037 else 5038 { 5039 if (settings.Caption != null) 5040 { 5041 WriteLiteral(" "); 5042 WriteLiteral("<div>\r\n"); 5043 } 5044 if (!string.IsNullOrEmpty(settings.Link)) 5045 { 5046 WriteLiteral(" <a"); 5047 BeginWriteAttribute("href", " href=\"", 82029, "\"", 82050, 1); 5048 WriteAttributeValue("", 82036, settings.Link, 82036, 14, false); 5049 EndWriteAttribute(); 5050 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n"); 5051 } 5052 else 5053 { 5054 RenderTheImage(settings); 5055 } 5056 5057 if (settings.Caption != null) 5058 { 5059 WriteLiteral(" <span class=\"image-caption dw-mod\">"); 5060 Write(settings.Caption); 5061 WriteLiteral("</span>\r\n "); 5062 WriteLiteral("</div>\r\n"); 5063 } 5064 } 5065 } 5066 5067 void RenderTheImage(Image settings) 5068 { 5069 if (settings != null) 5070 { 5071 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg"; 5072 string placeholderImage = "/Files/Images/placeholder.gif"; 5073 string imageEngine = "/Admin/Public/GetImage.ashx?"; 5074 5075 string imageStyle = ""; 5076 5077 switch (settings.Style) 5078 { 5079 case ImageStyle.Ball: 5080 imageStyle = "grid__cell-img--ball"; 5081 break; 5082 5083 case ImageStyle.Triangle: 5084 imageStyle = "grid__cell-img--triangle"; 5085 break; 5086 } 5087 5088 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle) 5089 { 5090 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop; 5091 5092 if (settings.ImageDefault != null) 5093 { 5094 settings.ImageDefault.Height = settings.ImageDefault.Width; 5095 } 5096 if (settings.ImageMedium != null) 5097 { 5098 settings.ImageMedium.Height = settings.ImageMedium.Width; 5099 } 5100 if (settings.ImageSmall != null) 5101 { 5102 settings.ImageSmall.Height = settings.ImageSmall.Width; 5103 } 5104 } 5105 5106 string defaultImage = imageEngine; 5107 string imageSmall = ""; 5108 string imageMedium = ""; 5109 5110 if (settings.DisableImageEngine) 5111 { 5112 defaultImage = settings.Path; 5113 } 5114 else 5115 { 5116 if (settings.ImageDefault != null) 5117 { 5118 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault); 5119 5120 if (settings.Path.GetType() != typeof(string)) 5121 { 5122 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5123 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5124 } 5125 else 5126 { 5127 defaultImage += settings.Path != null ? "Image=" + settings.Path : ""; 5128 } 5129 5130 defaultImage += "&AlternativeImage=" + alternativeImage; 5131 } 5132 5133 if (settings.ImageSmall != null) 5134 { 5135 imageSmall = "data-src-small=\"" + imageEngine; 5136 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall); 5137 5138 if (settings.Path.GetType() != typeof(string)) 5139 { 5140 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5141 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5142 } 5143 else 5144 { 5145 imageSmall += settings.Path != null ? "Image=" + settings.Path : ""; 5146 } 5147 5148 imageSmall += "&alternativeImage=" + alternativeImage; 5149 5150 imageSmall += "\""; 5151 } 5152 5153 if (settings.ImageMedium != null) 5154 { 5155 imageMedium = "data-src-medium=\"" + imageEngine; 5156 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium); 5157 5158 if (settings.Path.GetType() != typeof(string)) 5159 { 5160 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5161 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5162 } 5163 else 5164 { 5165 imageMedium += settings.Path != null ? "Image=" + settings.Path : ""; 5166 } 5167 5168 imageMedium += "&alternativeImage=" + alternativeImage; 5169 5170 imageMedium += "\""; 5171 } 5172 } 5173 5174 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5175 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); } 5176 if (!string.IsNullOrEmpty(settings.Title)) 5177 { 5178 optionalAttributes.Add("alt", settings.Title); 5179 optionalAttributes.Add("title", settings.Title); 5180 } 5181 5182 if (settings.DisableLazyLoad) 5183 { 5184 WriteLiteral(" <img"); 5185 BeginWriteAttribute("id", " id=\"", 87529, "\"", 87546, 1); 5186 WriteAttributeValue("", 87534, settings.Id, 87534, 12, false); 5187 EndWriteAttribute(); 5188 BeginWriteAttribute("class", " class=\"", 87547, "\"", 87592, 3); 5189 WriteAttributeValue("", 87555, imageStyle, 87555, 11, false); 5190 WriteAttributeValue(" ", 87566, settings.CssClass, 87567, 18, false); 5191 WriteAttributeValue(" ", 87585, "dw-mod", 87586, 7, true); 5192 EndWriteAttribute(); 5193 BeginWriteAttribute("src", " src=\"", 87593, "\"", 87612, 1); 5194 WriteAttributeValue("", 87599, defaultImage, 87599, 13, false); 5195 EndWriteAttribute(); 5196 WriteLiteral(" "); 5197 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5198 WriteLiteral(" "); 5199 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5200 WriteLiteral(" />\r\n"); 5201 } 5202 else 5203 { 5204 5205 WriteLiteral(" <img"); 5206 BeginWriteAttribute("id", " id=\"", 87810, "\"", 87827, 1); 5207 WriteAttributeValue("", 87815, settings.Id, 87815, 12, false); 5208 EndWriteAttribute(); 5209 BeginWriteAttribute("class", " class=\"", 87828, "\"", 87873, 3); 5210 WriteAttributeValue("", 87836, imageStyle, 87836, 11, false); 5211 WriteAttributeValue(" ", 87847, settings.CssClass, 87848, 18, false); 5212 WriteAttributeValue(" ", 87866, "dw-mod", 87867, 7, true); 5213 EndWriteAttribute(); 5214 WriteLiteral(" loading=\"lazy\""); 5215 BeginWriteAttribute("src", " src=\"", 87889, "\"", 87908, 1); 5216 WriteAttributeValue("", 87895, defaultImage, 87895, 13, false); 5217 EndWriteAttribute(); 5218 WriteLiteral(" "); 5219 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5220 WriteLiteral(" "); 5221 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5222 WriteLiteral(" />\r\n"); 5223 } 5224 } 5225 } 5226 5227 void RenderHiddenField(HiddenField settings) { 5228 var attributes = new Dictionary<string, string>(); 5229 attributes.Add("type", "hidden"); 5230 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5231 if (settings.Value != null) { attributes.Add("value", settings.Value); } 5232 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 5233 5234 WriteLiteral(" <input "); 5235 Write(ComponentMethods.AddAttributes(attributes)); 5236 WriteLiteral(" "); 5237 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5238 WriteLiteral("/>\r\n"); 5239 } 5240 5241 void RenderRadioButtonField(RadioButtonField settings) 5242 { 5243 var attributes = new Dictionary<string, string>(); 5244 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id)) 5245 { 5246 settings.Id = Guid.NewGuid().ToString("N"); 5247 } 5248 5249 /*base settings*/ 5250 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5251 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); } 5252 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); } 5253 if (settings.Disabled) { attributes.Add("disabled", "true"); } 5254 if (settings.Required) { attributes.Add("required", "true"); } 5255 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 5256 /*end*/ 5257 5258 attributes.Add("type", "radio"); 5259 if (settings.Checked) { attributes.Add("checked", "true"); } 5260 settings.CssClass = "form__control " + settings.CssClass; 5261 if (settings.Value != null) { attributes.Add("value", settings.Value); } 5262 5263 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value); 5264 5265 WriteLiteral(" <div"); 5266 BeginWriteAttribute("class", " class=\"", 90228, "\"", 90286, 3); 5267 WriteAttributeValue("", 90236, "form__field-group", 90236, 17, true); 5268 WriteAttributeValue(" ", 90253, settings.WrapperCssClass, 90254, 25, false); 5269 WriteAttributeValue(" ", 90279, "dw-mod", 90280, 7, true); 5270 EndWriteAttribute(); 5271 WriteLiteral(">\r\n <input "); 5272 Write(ComponentMethods.AddAttributes(resultAttributes)); 5273 WriteLiteral(" class=\""); 5274 Write(settings.CssClass); 5275 WriteLiteral(" dw-mod\" />\r\n"); 5276 if (!string.IsNullOrEmpty(settings.Label)) 5277 { 5278 WriteLiteral(" <label"); 5279 BeginWriteAttribute("for", " for=\"", 90491, "\"", 90509, 1); 5280 WriteAttributeValue("", 90497, settings.Id, 90497, 12, false); 5281 EndWriteAttribute(); 5282 WriteLiteral(" class=\"dw-mod\">"); 5283 Write(settings.Label); 5284 WriteLiteral("</label>\r\n"); 5285 } 5286 if (!string.IsNullOrEmpty(settings.HelpText)) 5287 { 5288 WriteLiteral(" <small class=\"form__help-text\">"); 5289 Write(settings.HelpText); 5290 WriteLiteral("</small>\r\n"); 5291 } 5292 WriteLiteral(" Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n"); 5293 } 5294 5295 void RenderRadioButtonListField(RadioButtonListField settings) 5296 { 5297 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; } 5298 5299 WriteLiteral(" <div"); 5300 BeginWriteAttribute("class", " class=\"", 91224, "\"", 91298, 4); 5301 WriteAttributeValue("", 91232, "form__field-group", 91232, 17, true); 5302 WriteAttributeValue(" ", 91249, settings.WrapperCssClass, 91250, 25, false); 5303 WriteAttributeValue(" ", 91275, "u-margin-bottom", 91276, 16, true); 5304 WriteAttributeValue(" ", 91291, "dw-mod", 91292, 7, true); 5305 EndWriteAttribute(); 5306 WriteLiteral(" "); 5307 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5308 WriteLiteral(">\r\n"); 5309 if (!string.IsNullOrEmpty(settings.Label)) 5310 { 5311 WriteLiteral(" <label>"); 5312 Write(settings.Label); 5313 WriteLiteral("</label>\r\n"); 5314 } 5315 if (!string.IsNullOrEmpty(settings.HelpText)) 5316 { 5317 WriteLiteral(" <small class=\"form__help-text\">"); 5318 Write(settings.HelpText); 5319 WriteLiteral("</small>\r\n"); 5320 } 5321 WriteLiteral("\r\n"); 5322 foreach (var item in settings.Options) 5323 { 5324 if (settings.Required) 5325 { 5326 item.Required = true; 5327 } 5328 if (settings.Disabled) 5329 { 5330 item.Disabled = true; 5331 } 5332 if (!string.IsNullOrEmpty(settings.Name)) 5333 { 5334 item.Name = settings.Name; 5335 } 5336 if (settings.Value != null && settings.Value == item.Value) 5337 { 5338 item.Checked = true; 5339 } 5340 if (!string.IsNullOrEmpty(settings.OnClick)) 5341 { 5342 item.OnClick += settings.OnClick; 5343 } 5344 if (!string.IsNullOrEmpty(settings.OnChange)) 5345 { 5346 item.OnChange += settings.OnChange; 5347 } 5348 if (!string.IsNullOrEmpty(settings.CssClass)) 5349 { 5350 item.CssClass += settings.CssClass; 5351 } 5352 Render(item); 5353 } 5354 WriteLiteral("\r\n Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n"); 5355 } 5356 5357 void RenderForm(Form settings) { 5358 if (settings != null) 5359 { 5360 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5361 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); }; 5362 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); }; 5363 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); }; 5364 var enctypes = new Dictionary<string, string> 5365 { 5366 { "multipart", "multipart/form-data" }, 5367 { "text", "text/plain" }, 5368 { "application", "application/x-www-form-urlencoded" } 5369 }; 5370 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); }; 5371 optionalAttributes.Add("method", settings.Method.ToString()); 5372 5373 if (!string.IsNullOrEmpty(settings.FormStartMarkup)) 5374 { 5375 Write(settings.FormStartMarkup); 5376 5377 } 5378 else 5379 { 5380 WriteLiteral(" "); 5381 WriteLiteral("<form class=\""); 5382 Write(settings.CssClass); 5383 WriteLiteral(" u-no-margin dw-mod\" "); 5384 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5385 WriteLiteral(" "); 5386 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5387 WriteLiteral(">\r\n"); 5388 } 5389 5390 foreach (var field in settings.GetFields()) 5391 { 5392 Render(field); 5393 } 5394 5395 WriteLiteral(" "); 5396 WriteLiteral("</form>\r\n"); 5397 } 5398 } 5399 5400 void RenderText(Text settings) 5401 { 5402 Write(settings.Content); 5403 5404 } 5405 5406 void RenderContentModule(ContentModule settings) { 5407 if (!string.IsNullOrEmpty(settings.Content)) 5408 { 5409 Write(settings.Content); 5410 5411 } 5412 } 5413 5414 void RenderModal(Modal settings) { 5415 if (settings != null) 5416 { 5417 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N"); 5418 5419 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : ""; 5420 5421 WriteLiteral(" <input type=\"checkbox\""); 5422 BeginWriteAttribute("id", " id=\"", 95694, "\"", 95721, 2); 5423 WriteAttributeValue("", 95699, modalId, 95699, 10, false); 5424 WriteAttributeValue("", 95709, "ModalTrigger", 95709, 12, true); 5425 EndWriteAttribute(); 5426 WriteLiteral(" class=\"modal-trigger\" "); 5427 Write(onchange); 5428 WriteLiteral(" />\r\n"); 5429 WriteLiteral(" <div class=\"modal-container\">\r\n"); 5430 if (!settings.DisableDarkOverlay) 5431 { 5432 WriteLiteral(" <label"); 5433 BeginWriteAttribute("for", " for=\"", 95901, "\"", 95929, 2); 5434 WriteAttributeValue("", 95907, modalId, 95907, 10, false); 5435 WriteAttributeValue("", 95917, "ModalTrigger", 95917, 12, true); 5436 EndWriteAttribute(); 5437 BeginWriteAttribute("id", " id=\"", 95930, "\"", 95957, 2); 5438 WriteAttributeValue("", 95935, modalId, 95935, 10, false); 5439 WriteAttributeValue("", 95945, "ModalOverlay", 95945, 12, true); 5440 EndWriteAttribute(); 5441 WriteLiteral(" class=\"modal-overlay\"></label>\r\n"); 5442 } 5443 WriteLiteral(" <div"); 5444 BeginWriteAttribute("class", " class=\"", 96030, "\"", 96139, 5); 5445 WriteAttributeValue("", 96038, "modal", 96038, 5, true); 5446 WriteAttributeValue(" ", 96043, "modal--", 96044, 8, true); 5447 WriteAttributeValue("", 96051, settings.Width.ToString().ToLower(), 96051, 36, false); 5448 WriteAttributeValue(" ", 96087, "modal-height--", 96088, 15, true); 5449 WriteAttributeValue("", 96102, settings.Height.ToString().ToLower(), 96102, 37, false); 5450 EndWriteAttribute(); 5451 BeginWriteAttribute("id", " id=\"", 96140, "\"", 96160, 2); 5452 WriteAttributeValue("", 96145, modalId, 96145, 10, false); 5453 WriteAttributeValue("", 96155, "Modal", 96155, 5, true); 5454 EndWriteAttribute(); 5455 WriteLiteral(">\r\n"); 5456 if (settings.Heading != null) 5457 { 5458 if (!string.IsNullOrEmpty(settings.Heading.Title)) 5459 { 5460 WriteLiteral(" <div class=\"modal__header\">\r\n RenderHeading(settings.Heading);\r\n </div>\r\n"); 5461 } 5462 } 5463 WriteLiteral(" <div"); 5464 BeginWriteAttribute("class", " class=\"", 96575, "\"", 96670, 2); 5465 WriteAttributeValue("", 96583, "modal__body", 96583, 11, true); 5466 WriteAttributeValue(" ", 96594, settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "", 96595, 75, false); 5467 EndWriteAttribute(); 5468 WriteLiteral(">\r\n"); 5469 if (!string.IsNullOrEmpty(settings.BodyText)) 5470 { 5471 Write(settings.BodyText); 5472 5473 } 5474 if (settings.BodyTemplate != null) 5475 { 5476 Write(settings.BodyTemplate); 5477 5478 } 5479 5480 var actions = settings.GetActions(); 5481 WriteLiteral(" </div>\r\n"); 5482 if (actions.Length > 0) 5483 { 5484 WriteLiteral(" <div class=\"modal__footer\">\r\n"); 5485 foreach (var action in actions) 5486 { 5487 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") { 5488 action.CssClass += " u-no-margin"; 5489 } else { 5490 action.CssClass += " u-full-width u-margin-bottom"; 5491 } 5492 5493 Render(action); 5494 } 5495 WriteLiteral(" </div>\r\n"); 5496 } 5497 WriteLiteral(" <label class=\"modal__close-btn\""); 5498 BeginWriteAttribute("for", " for=\"", 97914, "\"", 97942, 2); 5499 WriteAttributeValue("", 97920, modalId, 97920, 10, false); 5500 WriteAttributeValue("", 97930, "ModalTrigger", 97930, 12, true); 5501 EndWriteAttribute(); 5502 WriteLiteral("></label>\r\n </div>\r\n </div>\r\n"); 5503 } 5504 } 5505 5506 void RenderMediaListItem(MediaListItem settings) 5507 { 5508 WriteLiteral(" <div"); 5509 BeginWriteAttribute("class", " class=\"", 98180, "\"", 98229, 3); 5510 WriteAttributeValue("", 98188, "media-list-item", 98188, 15, true); 5511 WriteAttributeValue(" ", 98203, settings.CssClass, 98204, 18, false); 5512 WriteAttributeValue(" ", 98222, "dw-mod", 98223, 7, true); 5513 EndWriteAttribute(); 5514 WriteLiteral(" "); 5515 Write(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : ""); 5516 WriteLiteral(">\r\n"); 5517 if (!string.IsNullOrEmpty(settings.Label)) 5518 { 5519 if (!string.IsNullOrEmpty(settings.Link)) 5520 { 5521 Render(new Link 5522 { 5523 Href = settings.Link, 5524 CssClass = "media-list-item__sticker dw-mod", 5525 ButtonLayout = ButtonLayout.None, 5526 Title = settings.Label, 5527 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : "" 5528 }); 5529 } 5530 else if (!string.IsNullOrEmpty(settings.OnClick)) 5531 { 5532 WriteLiteral(" <span class=\"media-list-item__sticker dw-mod\""); 5533 BeginWriteAttribute("onclick", " onclick=\"", 99037, "\"", 99066, 1); 5534 WriteAttributeValue("", 99047, settings.OnClick, 99047, 19, false); 5535 EndWriteAttribute(); 5536 WriteLiteral(">\r\n <span class=\"u-uppercase\">"); 5537 Write(settings.Label); 5538 WriteLiteral("</span>\r\n </span>\r\n"); 5539 } 5540 else 5541 { 5542 WriteLiteral(" <span class=\"media-list-item__sticker media-list-item__sticker--no-link dw-mod\">\r\n <span class=\"u-uppercase\">"); 5543 Write(settings.Label); 5544 WriteLiteral("</span>\r\n </span>\r\n"); 5545 } 5546 } 5547 WriteLiteral(" <div class=\"media-list-item__wrap\">\r\n <div class=\"media-list-item__info dw-mod\">\r\n <div class=\"media-list-item__header dw-mod\">\r\n"); 5548 if (!string.IsNullOrEmpty(settings.Title)) 5549 { 5550 if (!string.IsNullOrEmpty(settings.Link)) 5551 { 5552 Render(new Link 5553 { 5554 Href = settings.Link, 5555 CssClass = "media-list-item__name dw-mod", 5556 ButtonLayout = ButtonLayout.None, 5557 Title = settings.Title, 5558 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : "" 5559 }); 5560 } 5561 else if (!string.IsNullOrEmpty(settings.OnClick)) 5562 { 5563 WriteLiteral(" <span class=\"media-list-item__name dw-mod\""); 5564 BeginWriteAttribute("onclick", " onclick=\"", 100563, "\"", 100592, 1); 5565 WriteAttributeValue("", 100573, settings.OnClick, 100573, 19, false); 5566 EndWriteAttribute(); 5567 WriteLiteral(">"); 5568 Write(settings.Title); 5569 WriteLiteral("</span>\r\n"); 5570 } 5571 else 5572 { 5573 WriteLiteral(" <span class=\"media-list-item__name media-list-item__name--no-link dw-mod\">"); 5574 Write(settings.Title); 5575 WriteLiteral("</span>\r\n"); 5576 } 5577 } 5578 WriteLiteral("\r\n"); 5579 if (!string.IsNullOrEmpty(settings.Status)) 5580 { 5581 WriteLiteral(" <div class=\"media-list-item__state dw-mod\">"); 5582 Write(settings.Status); 5583 WriteLiteral("</div>\r\n"); 5584 } 5585 WriteLiteral(" </div>\r\n"); 5586 5587 settings.InfoTable.CssClass += " media-list-item__parameters-table"; 5588 WriteLiteral("\r\n Render(settings.InfoTable);\r\n </div>\r\n <div class=\"media-list-item__actions dw-mod\">\r\n <div class=\"media-list-item__actions-list dw-mod\">\r\n"); 5589 5590 var actions = settings.GetActions(); 5591 5592 foreach (ButtonBase action in actions) 5593 { 5594 action.ButtonLayout = ButtonLayout.None; 5595 action.CssClass += " media-list-item__action link"; 5596 5597 Render(action); 5598 } 5599 WriteLiteral(" </div>\r\n\r\n"); 5600 if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title)) 5601 { 5602 settings.SelectButton.CssClass += " u-no-margin"; 5603 5604 WriteLiteral(" <div class=\"media-list-item__action-button\">\r\n Render(settings.SelectButton);\r\n </div>\r\n"); 5605 } 5606 WriteLiteral(" </div>\r\n </div>\r\n </div>\r\n"); 5607 } 5608 5609 void RenderTable(Table settings) 5610 { 5611 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5612 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5613 5614 var enumToClasses = new Dictionary<TableDesign, string> 5615 { 5616 { TableDesign.Clean, "table--clean" }, 5617 { TableDesign.Bordered, "table--bordered" }, 5618 { TableDesign.Striped, "table--striped" }, 5619 { TableDesign.Hover, "table--hover" }, 5620 { TableDesign.Compact, "table--compact" }, 5621 { TableDesign.Condensed, "table--condensed" }, 5622 { TableDesign.NoTopBorder, "table--no-top-border" } 5623 }; 5624 string tableDesignClass = ""; 5625 if (settings.Design != TableDesign.None) 5626 { 5627 tableDesignClass = enumToClasses[settings.Design]; 5628 } 5629 5630 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); } 5631 5632 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5633 5634 WriteLiteral(" <table "); 5635 Write(ComponentMethods.AddAttributes(resultAttributes)); 5636 WriteLiteral(">\r\n"); 5637 if (settings.Header != null) 5638 { 5639 WriteLiteral(" <thead>\r\n Render(settings.Header);\r\n </thead>\r\n"); 5640 } 5641 WriteLiteral(" <tbody>\r\n"); 5642 foreach (var row in settings.Rows) 5643 { 5644 Render(row); 5645 } 5646 WriteLiteral(" </tbody>\r\n"); 5647 if (settings.Footer != null) 5648 { 5649 WriteLiteral(" <tfoot>\r\n Render(settings.Footer);\r\n </tfoot>\r\n"); 5650 } 5651 WriteLiteral(" </table>\r\n"); 5652 } 5653 5654 void RenderTableRow(TableRow settings) 5655 { 5656 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5657 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5658 5659 var enumToClasses = new Dictionary<TableRowDesign, string> 5660 { 5661 { TableRowDesign.NoBorder, "table__row--no-border" }, 5662 { TableRowDesign.Border, "table__row--border" }, 5663 { TableRowDesign.TopBorder, "table__row--top-line" }, 5664 { TableRowDesign.BottomBorder, "table__row--bottom-line" }, 5665 { TableRowDesign.Solid, "table__row--solid" } 5666 }; 5667 5668 string tableRowDesignClass = ""; 5669 if (settings.Design != TableRowDesign.None) 5670 { 5671 tableRowDesignClass = enumToClasses[settings.Design]; 5672 } 5673 5674 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); } 5675 5676 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5677 5678 WriteLiteral(" <tr "); 5679 Write(ComponentMethods.AddAttributes(resultAttributes)); 5680 WriteLiteral(">\r\n"); 5681 foreach (var cell in settings.Cells) 5682 { 5683 if (settings.IsHeaderRow) 5684 { 5685 cell.IsHeader = true; 5686 } 5687 Render(cell); 5688 } 5689 WriteLiteral(" </tr>\r\n"); 5690 } 5691 5692 void RenderTableCell(TableCell settings) 5693 { 5694 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5695 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5696 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); } 5697 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); } 5698 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); } 5699 5700 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5701 5702 string tagName = settings.IsHeader ? "th" : "td"; 5703 5704 Write("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">"); 5705 Write(settings.Content); 5706 Write("</" + tagName + ">"); 5707 ; 5708 } 5709 5710 BlocksPage articleListPage = BlocksPage.GetBlockPage("ArticleListPage"); 5711 } 5712 } 5713 #pragma warning restore 1591 5714

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 2 @using System 3 @using System.Globalization; 4 @using System.Text.RegularExpressions; 5 @using Custom.Integration.Brokers; 6 @using RealMaeglerne.Dynamicweb; 7 @using Dynamicweb.Content.Items; 8 @using Dynamicweb.Environment; 9 @using Newtonsoft.Json; 10 @using Dynamicweb.Logging; 11 @using Dynamicweb.Core; 12 @using Dynamicweb.Frontend.Navigation; 13 @using Dynamicweb; 14 @using static RealMaeglerne.Library.Helper; 15 16 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 17 @using Dynamicweb.Content.Items; 18 19 @functions{ 20 void RenderErhvervsTypeCheckboxes(string productGroupFilter) 21 { 22 <div class="col-xs-6 col-md-4"> 23 <div class="checkbox"> 24 <label> 25 <input type="checkbox" name="propertytype" value="bolig/erhverv, kombineret erhverv og bolig, byejendom (kontor, butik, beboelse)" /> 26 <span>Bolig/erhverv</span> 27 </label> 28 </div> 29 <div class="checkbox"> 30 <label> 31 <input type="checkbox" name="propertytype" value="erhvervsgrund" /> 32 <span>Erhvervsgrund</span> 33 </label> 34 </div> 35 <div class="checkbox"> 36 <label> 37 <input type="checkbox" name="propertytype" value="boligudlejning" /> 38 <span>Boligudlejningsejendom</span> 39 </label> 40 </div> 41 <div class="checkbox"> 42 <label> 43 <input type="checkbox" name="propertytype" value="kontor, klinik, kontorhotel, showroom, undervisningslokaler" /> 44 <span>Kontor</span> 45 </label> 46 </div> 47 </div> 48 <div class="col-xs-6 col-md-4"> 49 <div class="checkbox"> 50 <label> 51 <input type="checkbox" name="propertytype" value="butik / detail, butik / detailhandel" /> 52 <span>Butik/detailhandel</span> 53 </label> 54 </div> 55 <div class="checkbox"> 56 <label> 57 <input type="checkbox" name="propertytype" value="industri / logistik, håndværk, industri, kontor / lager, logistik" /> 58 <span>Produktion/lager</span> 59 </label> 60 </div> 61 <div class="checkbox"> 62 <label> 63 <input type="checkbox" name="propertytype" value="hotel - kursusejendom, restaurant" /> 64 <span>Hotel og restaurant</span> 65 </label> 66 </div> 67 <div class="checkbox"> 68 <label> 69 <input type="checkbox" name="propertytype" value="projekt ejendom" /> 70 <span>Projektejendom</span> 71 </label> 72 </div> 73 </div> 74 <div class="col-xs-6 col-md-4"> 75 <div class="checkbox"> 76 <label> 77 <input type="checkbox" name="propertytype" value="andet" /> 78 <span>Andet</span> 79 </label> 80 </div> 81 </div> 82 83 <input type="hidden" name="propertycategory" value="erhverv, udlejning" /> 84 <input type="hidden" name="filtrering" value="@productGroupFilter" /> 85 } 86 void RenderBoligtypeCheckboxes() 87 { 88 <div class="col-6 col-md-4"> 89 <div class="checkbox"> 90 <label> 91 <input type="checkbox" name="propertytype" value="villa" /> 92 <span>Villa</span> 93 </label> 94 </div> 95 <div class="checkbox"> 96 <label> 97 <input type="checkbox" name="propertytype" value="rækkehus" /> 98 <span>Rækkehus</span> 99 </label> 100 </div> 101 <div class="checkbox"> 102 <label> 103 <input type="checkbox" name="propertytype" value="villalejlighed" /> 104 <span>Villalejlighed</span> 105 </label> 106 </div> 107 <div class="checkbox"> 108 <label> 109 <input type="checkbox" name="propertytype" value="andelsbolig" /> 110 <span>Andelsbolig</span> 111 </label> 112 </div> 113 </div> 114 <div class="col-6 col-md-4"> 115 <div class="checkbox"> 116 <label> 117 <input type="checkbox" name="propertytype" value="fritidshus, fritidsbolig" /> 118 <span>Fritidsbolig</span> 119 </label> 120 </div> 121 <div class="checkbox"> 122 <label> 123 <input type="checkbox" name="propertytype" value="ejerlejlighed" class="specialOption" data-disable-slider="#grundareal" data-disable-slider-ranges="#grundarealmin,#grundarealmax" /> 124 <span>Ejerlejlighed</span> 125 </label> 126 </div> 127 <div class="checkbox"> 128 <label> 129 <input type="checkbox" name="propertytype" value="helårsgrund" class="specialOption" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" /> 130 <span>Helårsgrund</span> 131 </label> 132 </div> 133 <div class="checkbox"> 134 <label> 135 <input type="checkbox" name="propertytype" value="fritidsgrund" class="specialOption" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" /> 136 <span>Fritidsgrund</span> 137 </label> 138 </div> 139 </div> 140 <div class="col-6 col-md-4"> 141 <div class="checkbox"> 142 <label> 143 <input type="checkbox" name="propertytype" value="landejendom, lystejendom" class="specialOption" data-disable-checkbox="true" /> 144 <span>Landejendom</span> 145 </label> 146 </div> 147 <div class="checkbox"> 148 <label> 149 <input type="checkbox" name="propertytype" value="erhverv" class="specialOption" data-disable-checkbox="true" data-disable-slider="#roomsslider" data-disable-slider-ranges="#roomsmin" /> 150 <span>Erhverv</span> 151 </label> 152 </div> 153 </div> 154 } 155 156 void RenderChecked(string queryString) 157 { 158 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString) 159 { 160 @("checked") 161 } 162 } 163 164 void RenderBoligtypeCheckboxesDropdown() 165 { 166 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){ 167 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" }, 168 { "Andelsbolig", "andelsbolig" } 169 }; 170 foreach (KeyValuePair<string, string> type in propertyTypes) 171 { 172 bool ischecked = false; 173 string[] propertytypeSplit = new string[0]; 174 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"])) 175 { 176 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(','); 177 } 178 foreach (var propertytypeParams in propertytypeSplit) 179 { 180 if (propertytypeParams == type.Value) 181 { 182 ischecked = true; 183 } 184 } 185 <li> 186 <label class="checkbox-container d-flex"> 187 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "") 188 <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" /> 189 <span class="checkmark grey"></span> 190 </label> 191 </li> 192 } 193 194 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){ 195 { "Fritidsbolig", "fritidshus, fritidsbolig" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" }, 196 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" } 197 }; 198 foreach (KeyValuePair<string, string> type in propertyTypes2) 199 { 200 bool ischecked = false; 201 string[] propertytypeSplit2 = new string[0]; 202 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"])) 203 { 204 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(','); 205 } 206 foreach (var propertytypeParams in propertytypeSplit2) 207 { 208 if (propertytypeParams == type.Value) 209 { 210 ischecked = true; 211 } 212 } 213 <li> 214 <label class="checkbox-container d-flex"> 215 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "") 216 @if (type.Value == "ejerlejlighed") 217 { 218 <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" /> 219 } 220 else if (type.Value == "helårsgrund") 221 { 222 <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" /> 223 } 224 else if (type.Value == "fritidsgrund") 225 { 226 <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" /> 227 } 228 else 229 { 230 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" /> 231 } 232 <span class="checkmark grey"></span> 233 </label> 234 </li> 235 } 236 } 237 238 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false) 239 { 240 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 241 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" }, 242 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" } 243 }; 244 var submitonchange = ""; 245 if (submitOnChange) 246 { 247 submitonchange = "onchange='submitFilter()'"; 248 } 249 250 foreach (KeyValuePair<string, string> type in erhverType) 251 { 252 string ischecked = ""; 253 string[] olineParamsSplit = new string[0]; 254 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"])) 255 { 256 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(','); 257 } 258 foreach (var olineParams in olineParamsSplit) 259 { 260 if (olineParams == type.Value) 261 { 262 ischecked = "checked"; 263 } 264 } 265 266 <li> 267 <label class="checkbox-container d-flex"> 268 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "") 269 <input type="checkbox" name="olinecategory" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" @submitonchange @ischecked /> 270 <span class="checkmark grey"></span> 271 </label> 272 </li> 273 } 274 } 275 276 void RenderBoligTypeErhvervInvest(bool submitOnChange = false) 277 { 278 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 279 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" }, 280 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" } 281 }; 282 283 foreach (KeyValuePair<string, string> type in erhverType) 284 { 285 bool ischecked = false; 286 string[] olineParamsSplit = new string[0]; 287 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"])) 288 { 289 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(','); 290 } 291 foreach (var olineParams in olineParamsSplit) 292 { 293 if (olineParams == type.Value) 294 { 295 ischecked = true; 296 } 297 } 298 299 <li> 300 <label class="checkbox-container"> 301 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "") 302 <input type="checkbox" name="olinecategory" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" /> 303 <span class="checkmark grey"></span> 304 </label> 305 </li> 306 } 307 } 308 int GetWebsiteSettingsPageId(string pageSysName) 309 { 310 int sideId = 0; 311 312 var pw = Dynamicweb.Frontend.PageView.Current(); 313 314 string settingsItemId = "1"; 315 316 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true") 317 { 318 settingsItemId = "2"; 319 } 320 321 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId); 322 323 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName)) 324 { 325 return sideId; 326 } 327 328 string boligsideLink = settingsItem[pageSysName] as String; 329 string linkPrefix = "Default.aspx?ID="; 330 331 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower())) 332 { 333 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId); 334 } 335 336 return sideId; 337 } 338 339 int GetPageSettingsPageId(string pageSysName) 340 { 341 int sideId = 0; 342 343 var pw = Dynamicweb.Frontend.PageView.Current(); 344 345 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName)) 346 { 347 return sideId; 348 } 349 350 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String; 351 string linkPrefix = "Default.aspx?ID="; 352 353 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower())) 354 { 355 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId); 356 } 357 358 return sideId; 359 } 360 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname) 361 { 362 <select class="form-control d-block d-lg-none mb-10 @className" onchange="submitFilter()" name="@inputname"> 363 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder." + name + "", "" + name + "")</option> 364 365 @for (var i = 0; i <= max; i += step) 366 { 367 var selected = string.Empty; 368 var current = string.Empty; 369 if (i == max) 370 { 371 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i)) 372 { 373 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")' selected="selected">@Convert.ToInt32(i).ToString("N0")+</option> 374 } 375 else 376 { 377 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")+</option> 378 } 379 } 380 else 381 { 382 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i)) 383 { 384 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")' selected="selected">@Convert.ToInt32(i).ToString("N0")</option> 385 } 386 else 387 { 388 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option> 389 } 390 } 391 } 392 </select> 393 } 394 395 void RenderTopFilter(string parameter) 396 { 397 if (parameter == "pricemin" || parameter == "pricemax") 398 { 399 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"])) 400 { 401 if (parameter == "pricemin") 402 { 403 @("<div class='search-terms' id='priceFilter'>") 404 @("Pris ") @Dynamicweb.Context.Current.Request[parameter] 405 } 406 407 else 408 { 409 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="pricemin,pricemax"></i> 410 @("</div>") 411 } 412 } 413 } 414 415 else if (parameter == "subsidymin" || parameter == "subsidymax") 416 { 417 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"])) 418 { 419 if (parameter == "subsidymin") 420 { 421 @("<div class='search-terms' id='subsidyFilter'>") 422 @("Årlig leje ") @Dynamicweb.Context.Current.Request[parameter] 423 } 424 425 else 426 { 427 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="subsidymin,subsidymax"></i> 428 @("</div>") 429 } 430 } 431 } 432 else if (parameter == "etagearealmin" || parameter == "etagearealmax") 433 { 434 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"])) 435 { 436 if (parameter == "etagearealmin") 437 { 438 @("<div class='search-terms' id='etagearealFilter'>") 439 @("Etageareal ") @Dynamicweb.Context.Current.Request[parameter] 440 } 441 442 else 443 { 444 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kvm.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="etagearealmin,etagearealmax"></i> 445 @("</div>") 446 } 447 } 448 } 449 450 else if (parameter == "grundarealmin" || parameter == "grundarealmax") 451 { 452 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"])) 453 { 454 if (parameter == "grundarealmin") 455 { 456 @("<div class='search-terms' id='grundarealFilter'>") 457 @("Grundareal ") @Dynamicweb.Context.Current.Request[parameter] 458 } 459 460 else 461 { 462 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kvm.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="grundarealmin,grundarealmax"></i> 463 @("</div>") 464 } 465 } 466 } 467 468 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax") 469 { 470 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"])) 471 { 472 if (parameter == "subsidykvmmin") 473 { 474 @("<div class='search-terms' id='subsidykvmFilter'>") 475 @("Årlig leje kvm ") @Dynamicweb.Context.Current.Request[parameter] 476 } 477 478 else 479 { 480 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="subsidykvmmin,subsidykvmmax"></i> 481 @("</div>") 482 } 483 } 484 } 485 486 else if (parameter == "olinecategory") 487 { 488 489 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"])) 490 { 491 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 492 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" }, 493 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"}, 494 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" }, 495 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" } 496 }; 497 498 499 foreach (var er in erhverType) 500 { 501 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key)) 502 { 503 <div class="search-terms" id="@parameter"> 504 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i> 505 </div> 506 } 507 } 508 } 509 } 510 else if (parameter == "search") 511 { 512 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"])) 513 { 514 <div class="search-terms" id="@parameter"> 515 @Dynamicweb.Context.Current.Request[parameter] <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter"></i> 516 </div> 517 } 518 } 519 else 520 { 521 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter])) 522 { 523 Dictionary<string, string> 524 ubudsform = new Dictionary<string, string> 525 (){ 526 {"salg", "Salg" }, { "leje","Leje" } 527 }; 528 529 foreach (var er in ubudsform) 530 { 531 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key)) 532 { 533 <div class="search-terms" id="@parameter"> 534 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i> 535 </div> 536 } 537 } 538 539 540 } 541 } 542 } 543 544 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString) 545 { 546 var selected = ""; 547 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue) 548 { 549 selected = "selected"; 550 } 551 552 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected); 553 554 @current 555 } 556 557 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "") 558 { 559 <div class="main-search-form frontpage @cssClasses"> 560 <div class="dropdown-overlay"></div> 561 <div class="row mb-3 align-items-center"> 562 <div class="col-xs-12 col-md-3 border-right"> 563 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3> 564 </div> 565 <div class="col-xs-12 col-md-9 home-count d-none d-md-block"> 566 <span class="search-count" id="searchCounter">0</span> <span>@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")</span> 567 </div> 568 </div> 569 570 <form id="main-search-frontpage" class="searchbar-wrapper" action="/Default.aspx" method="GET"> 571 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId-frontpage" disabled="disabled" /> 572 <div class="row form-wrapper no-gutters"> 573 574 <div class="col-xs-12 col-md-5 col-searchbar"> 575 <div class="searchbar"> 576 <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)" /> 577 <input type="hidden" id="zipcodefrom-frontpage" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" /> 578 <input type="hidden" id="zipcodeto-frontpage" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" /> 579 </div> 580 </div> 581 <div class="col-xs-12 col-md-5"> 582 <div class="row no-gutters"> 583 <div class="col-xs-12 col-md-6 input-col"> 584 <div class="dropdown w-overlay"> 585 <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"> 586 @Translate("Smartpage:Search.Boligtype", "Boligtype") 587 </button> 588 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype"> 589 <ul class="bolig-dropdown list-unstyled"> 590 @{ 591 RenderBoligtypeCheckboxesDropdown(); 592 } 593 </ul> 594 <span class="border-fat"></span> 595 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 596 </div> 597 598 </div> 599 600 </div> 601 <div class="col-xs-12 col-md-6 input-col"> 602 <div class="dropdown w-overlay"> 603 <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"> 604 @Translate("Smartpage:Search.Pris", "Pris") 605 </button> 606 <div class="dropdown-menu box-shadow dropdown-price" aria-labelledby="Pris"> 607 <input type="text" class="form-control mb-10 js-auto-thousand js-pricemin-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MinPris","Min. pris")' /> 608 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10"> 609 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option> 610 @for (var i = 0; i <= 10000000; i += 100000) 611 { 612 if (i == 10000000) 613 { 614 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option> 615 } 616 else 617 { 618 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option> 619 } 620 } 621 </select> 622 <input type="hidden" id="pricemin-frontpage" name="pricemin" /> 623 624 <input type="text" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris")' /> 625 <select class="form-control js-pricemax-frontpage-select js-input-max-select"> 626 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option> 627 @for (var i = 0; i <= 10000000; i += 100000) 628 { 629 if (i == 10000000) 630 { 631 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option> 632 } 633 else 634 { 635 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option> 636 } 637 } 638 </select> 639 <input type="hidden" id="pricemax-frontpage" name="pricemax" /> 640 <button class="btn btn-primary js-close-dropdown mt-3">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 641 </div> 642 </div> 643 </div> 644 </div> 645 </div> 646 <div class="col-xs-12 col-md-2 d-none d-md-block"> 647 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 648 </div> 649 </div> 650 651 <div class="row moresearch-btn no-gutters"> 652 <div class="col-sm-12"> 653 <div class="row align-items-center no-gutters"> 654 <div class="col-12 col-md-4"> 655 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch" aria-expanded="false" aria-controls="moreSearch"> 656 <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> 657 </button> 658 </div> 659 <div class="col-6 col-md-2 mb-xs-4"> 660 <a class="js-reset reset-btn">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a> 661 </div> 662 </div> 663 664 <div class="collapse" id="moreSearch"> 665 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4> 666 <div class="row align-items-end mb-30"> 667 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"> 668 <div class="filter-container row"> 669 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label> 670 <div class="col-6 pr-sm-0 pr-2"> 671 <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")' /> 672 <select class="form-control js-boligarealmin-frontpage-select js-count"> 673 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option> 674 @for (var i = 0; i <= 300; i += 10) 675 { 676 if (i == 300) 677 { 678 <option value="@i">@i+</option> 679 } 680 else 681 { 682 <option value="@i">@i</option> 683 } 684 } 685 </select> 686 </div> 687 <div class="col-6 pl-sm-0 pl-2"> 688 <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")' /> 689 <select class="form-control js-boligarealmax-frontpage-select js-count"> 690 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option> 691 @for (var i = 0; i <= 300; i += 10) 692 { 693 if (i == 300) 694 { 695 <option value="@i">@i+</option> 696 } 697 else 698 { 699 <option value="@i">@i</option> 700 } 701 } 702 </select> 703 </div> 704 </div> 705 </div> 706 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"> 707 <div class="filter-container row"> 708 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label> 709 <div class="col-6 pr-sm-0 pr-2"> 710 <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")' /> 711 <select class="form-control js-grundarealmin-frontpage-select js-count"> 712 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option> 713 @for (var i = 0; i <= 10000; i += 100) 714 { 715 if (i == 10000) 716 { 717 <option value="@i">@i+</option> 718 } 719 else 720 { 721 <option value="@i">@i</option> 722 } 723 } 724 </select> 725 </div> 726 <div class="col-6 pl-sm-0 pl-2"> 727 <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")' /> 728 <select class="form-control js-grundarealmax-frontpage-select js-count"> 729 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option> 730 @for (var i = 0; i <= 10000; i += 100) 731 { 732 if (i == 10000) 733 { 734 <option value="@i">@i+</option> 735 } 736 else 737 { 738 <option value="@i">@i</option> 739 } 740 } 741 </select> 742 </div> 743 </div> 744 </div> 745 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"> 746 <div class="filter-container row"> 747 <label class="d-block col-12">Antal rum</label> 748 749 <div class="col-6 pr-sm-0 pr-2"> 750 <select name="roomsmin" id="roomsmin-frontpage" class="form-control reverse js-count"> 751 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option> 752 <option value="1">1</option> 753 <option value="2">2</option> 754 <option value="3">3</option> 755 <option value="4">4</option> 756 <option value="5+">5+</option> 757 </select> 758 </div> 759 <div class="col-6 pl-sm-0 pl-2"> 760 <select name="roomsmax" id="roomsmax-frontpage" class="form-control reverse js-count"> 761 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option> 762 <option value="1">1</option> 763 <option value="2">2</option> 764 <option value="3">3</option> 765 <option value="4">4</option> 766 <option value="5+">@Translate("Smartpage:Rooms.5", "5")</option> 767 </select> 768 </div> 769 </div> 770 </div> 771 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"> 772 <div class="row"> 773 <div class="col-12"> 774 <div class="filter-container"> 775 <label class="d-block">Energimærke</label> 776 <select name="energylabel" id="energylabel-frontpage" class="form-control reverse js-count"> 777 <option disabled selected="selected">@Translate("Smartpage:Search.Vælg", "Vælg")</option> 778 <option value="01">G</option> 779 <option value="02">F</option> 780 <option value="03">E</option> 781 <option value="04">D</option> 782 <option value="05">C</option> 783 <option value="06">B</option> 784 <option value="07">A</option> 785 <option value="08">A2010</option> 786 <option value="09">A2015</option> 787 <option value="10">A2020+</option> 788 </select> 789 </div> 790 </div> 791 </div> 792 </div> 793 <div class="col-12 col-sm-6 col-lg-3 mt-3"> 794 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4> 795 <div class="filter-container row"> 796 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label> 797 <div class="col-6 pr-sm-0 pr-2"> 798 <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")' /> 799 <select class="form-control js-subsidymin-frontpage-select js-count"> 800 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option> 801 @for (var i = 0; i <= 25000; i += 1250) 802 { 803 if (i == 25000) 804 { 805 <option>@Convert.ToInt32(i).ToString("N0")+</option> 806 } 807 else 808 { 809 <option>@Convert.ToInt32(i).ToString("N0")</option> 810 } 811 } 812 </select> 813 </div> 814 <div class="col-6 pl-sm-0 pl-2"> 815 <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")' /> 816 <select class="form-control js-subsidymax-frontpage-select js-count"> 817 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option> 818 @for (var i = 0; i <= 25000; i += 1250) 819 { 820 if (i == 25000) 821 { 822 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option> 823 } 824 else 825 { 826 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option> 827 } 828 } 829 </select> 830 </div> 831 </div> 832 </div> 833 <div class="col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0"> 834 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button> 835 </div> 836 </div> 837 </div> 838 </div> 839 </div> 840 841 <div class="row d-block d-md-none form-wrapper no-gutters"> 842 <div class="col-xs-12 col-md-2"> 843 <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> 844 </div> 845 </div> 846 </form> 847 <div class="front-page-actions d-md-none"> 848 <div> 849 <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> 850 </div> 851 <div> 852 @{ 853 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : ""; 854 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER"); 855 <form method="GET" action="/Default.aspx"> 856 <input name="id" value="@brokerSearchId" type="hidden" /> 857 <div class="icon-wrapper-wclick"> 858 <i class="fas fa-search ta-submit-on-icon-click"></i> 859 <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'" /> 860 </div> 861 </form> 862 } 863 </div> 864 <div> 865 <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> 866 </div> 867 </div> 868 </div> 869 870 } 871 Custom.Integration.Brokers.Models.BrokerEmployee GetBrokerFromCurrentProduct() 872 { 873 string productId = Dynamicweb.Context.Current.Request["ProductId"]; 874 875 if (string.IsNullOrWhiteSpace(productId)) 876 { 877 return null; 878 } 879 880 var propertyProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(productId, string.Empty, true); 881 if (propertyProduct == null) 882 { 883 return null; 884 } 885 886 string employee = Dynamicweb.Core.Converter.ToString( 887 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xAktoererMaeglerKontaktEmail") 888 ); 889 string storeId = Dynamicweb.Core.Converter.ToString( 890 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xButikID") 891 ); 892 893 if (string.IsNullOrWhiteSpace(employee) || string.IsNullOrWhiteSpace(storeId)) 894 { 895 return null; 896 } 897 898 return Custom.Integration.Brokers.Search.GetEmployee(storeId, employee); 899 } 900 901 string GetAgentTitleFromCurrentProduct() 902 { 903 var propBroker = GetBrokerFromCurrentProduct(); 904 905 if (propBroker?.Broker == null) 906 { 907 return string.Empty; 908 } 909 910 if (!string.IsNullOrEmpty(propBroker.Broker.CompanyName)) 911 { 912 return propBroker.Broker.CompanyName; 913 } 914 915 return propBroker.Broker.Name ?? string.Empty; 916 } 917 918 string GetMasterBrokerUrlFromCurrentProduct() 919 { 920 var propBroker = GetBrokerFromCurrentProduct(); 921 922 var itemId = propBroker?.Broker?.ItemId; 923 var itemType = propBroker?.Broker?.ItemType; 924 925 if (string.IsNullOrWhiteSpace(itemId) || string.IsNullOrWhiteSpace(itemType)) 926 { 927 return string.Empty; 928 } 929 var brokerItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(itemType, itemId); 930 931 if (brokerItem == null) 932 { 933 return string.Empty; 934 } 935 936 var websiteId = Dynamicweb.Core.Converter.ToInt32(brokerItem["WebsiteId"]); 937 var page = Dynamicweb.Content.Services.Pages.GetFirstPageForArea(websiteId); 938 return Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?Id=" + page?.ID); 939 } 940 941 // === Video link helpers (used by the property page) === 942 943 // True when the link points directly at a video file we can play in a <video> element. Everything else is iframed. 944 bool IsDirectVideoFile(string url) 945 { 946 if (string.IsNullOrWhiteSpace(url)) { return false; } 947 948 // Strip query/fragment before checking the file extension. 949 string path = url.Split('?', '#')[0]; 950 string[] directExtensions = { ".mp4", ".webm", ".ogg", ".ogv", ".mov", ".m4v" }; 951 foreach (var ext in directExtensions) 952 { 953 if (path.EndsWith(ext, StringComparison.InvariantCultureIgnoreCase)) { return true; } 954 } 955 return false; 956 } 957 958 string GetYouTubeId(string url) 959 { 960 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 961 962 string[] patterns = { @"youtu\.be/([^?&/]+)", @"[?&]v=([^?&]+)", @"/embed/([^?&/]+)", @"/shorts/([^?&/]+)" }; 963 foreach (var pattern in patterns) 964 { 965 var match = System.Text.RegularExpressions.Regex.Match(url, pattern); 966 if (match.Success) { return match.Groups[1].Value; } 967 } 968 969 return string.Empty; 970 } 971 972 string GetVimeoId(string url) 973 { 974 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 975 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?(\d+)"); 976 return match.Success ? match.Groups[1].Value : string.Empty; 977 } 978 979 string GetVimeoHash(string url) 980 { 981 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 982 // Unlisted videos carry a privacy hash: vimeo.com/{id}/{hash} 983 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?\d+/(\w+)"); 984 return match.Success ? match.Groups[1].Value : string.Empty; 985 } 986 987 // Builds the iframe src for a non-file link. YouTube/Vimeo share links are rewritten to their embeddable form 988 // (their pages block framing); every other link (Matterport, CR3, already-embeddable pages) is used as-is. 989 string BuildEmbedUrl(string url, bool background) 990 { 991 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 992 993 if (url.Contains("youtube", StringComparison.InvariantCultureIgnoreCase) || url.Contains("youtu.be", StringComparison.InvariantCultureIgnoreCase)) 994 { 995 string id = GetYouTubeId(url); 996 if (!string.IsNullOrEmpty(id)) 997 { 998 string baseUrl = "https://www.youtube-nocookie.com/embed/" + id; 999 return background 1000 ? baseUrl + "?autoplay=1&mute=1&loop=1&playlist=" + id + "&controls=0&playsinline=1&rel=0" 1001 : baseUrl + "?rel=0"; 1002 } 1003 } 1004 else if (url.Contains("vimeo", StringComparison.InvariantCultureIgnoreCase)) 1005 { 1006 string id = GetVimeoId(url); 1007 if (!string.IsNullOrEmpty(id)) 1008 { 1009 string baseUrl = "https://player.vimeo.com/video/" + id; 1010 var queryParams = new List<string>(); 1011 string hash = GetVimeoHash(url); 1012 if (!string.IsNullOrEmpty(hash)) { queryParams.Add("h=" + hash); } 1013 if (background) { queryParams.Add("background=1"); } 1014 return queryParams.Count > 0 ? baseUrl + "?" + string.Join("&", queryParams) : baseUrl; 1015 } 1016 } 1017 1018 // Matterport, CR3 and any already-embeddable link frame as-is. 1019 return url; 1020 } 1021 } 1022 1023 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 1024 @using Dynamicweb.Frontend.Navigation 1025 @using Dynamicweb.Core 1026 @using Dynamicweb.Core.Encoders 1027 @using Dynamicweb 1028 1029 @functions { 1030 void RenderSlideMenu(bool erhverv, string maeglersoegning) 1031 { 1032 <div id="menu" 1033 class="main-menu-slide " 1034 role="navigation" 1035 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.MainMenu", "Hovedmenu"))" 1036 aria-modal="true"> 1037 <div class="container"> 1038 <div class="row"> 1039 <div class="col-12"> 1040 <span class="menu-headline">MENU</span> 1041 </div> 1042 <div class="menu-slide" 1043 role="button" 1044 tabindex="0" 1045 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.CloseMenu", "Luk menu"))"> 1046 <b aria-hidden="true"></b> 1047 </div> 1048 <div class="col-12 main-slidemenu" role="region" aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.NavigationLinks", "Navigationslinks"))"> 1049 @{ 1050 var navigationSettings = new NavigationSettings(); 1051 navigationSettings.StartLevel = 1; 1052 navigationSettings.StopLevel = 2; 1053 navigationSettings.ExpandMode = ExpandMode.All; 1054 navigationSettings.RootAreaId = Pageview.Area.ID; 1055 1056 @Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings) 1057 } 1058 </div> 1059 <div class="col-12 bottom-btns"> 1060 1061 @{ 1062 string[] maeglerid; 1063 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0"; 1064 1065 if (erhverv) 1066 { 1067 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None); 1068 } 1069 else 1070 { 1071 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None); 1072 } 1073 1074 <form method="GET" action="/Default.aspx" role="search"> 1075 <input name="id" value="@maeglerid[1]" type="hidden" /> 1076 <div class="icon-wrapper-wclick"> 1077 <label for="broker-search-menu-vm" class="sr-only">@Translate("Custom:Accessibility.FindBroker", "Find mægler")</label> 1078 <i class="fas fa-search ta-submit-on-icon-click" 1079 aria-hidden="true" 1080 role="button" 1081 tabindex="0" 1082 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.SearchBroker", "Søg efter mægler"))"></i> 1083 <input id="broker-search-menu-vm" 1084 class="box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter" 1085 name="q" 1086 type="text" 1087 placeholder="@HtmlEncoder.HtmlAttributeEncode(Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER"))" 1088 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.BrokerSearchField", "Indtast postnummer eller navn for at finde mægler"))" 1089 onfocus="this.placeholder = 'FIND MÆGLER'" /> 1090 </div> 1091 </form> 1092 } 1093 <br /> 1094 @{ 1095 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + ""; 1096 } 1097 <a href="javascript:panelSalgsvurdering('@dpmaegler','@Pageview.AreaID');" 1098 class="btn btn-block btn-default-invert js-close-menu" 1099 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.FreeSalesAssessment", "Få gratis salgsvurdering"))">Gratis salgsvurdering <i class="cta-icon fa fa-angle-right" aria-hidden="true"></i></a> 1100 </div> 1101 </div> 1102 </div> 1103 </div> 1104 } 1105 } 1106 @using System.Text.RegularExpressions 1107 @using System.Collections.Generic 1108 @using System.Reflection 1109 @using Dynamicweb.Rapido.Blocks.Components 1110 @using Dynamicweb.Rapido.Blocks.Components.Articles 1111 @using Dynamicweb.Rapido.Blocks.Components.Documentation 1112 @using Dynamicweb.Rapido.Blocks 1113 @using Dynamicweb; 1114 1115 @functions { 1116 void RenderBlockList(List<Block> blocks) 1117 { 1118 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false; 1119 blocks = blocks.OrderBy(item => item.SortId).ToList(); 1120 1121 foreach (Block item in blocks) 1122 { 1123 if (debug) { 1124 <!-- Block START: @item.Id --> 1125 } 1126 1127 if (item.Design == null) 1128 { 1129 RenderBlock(item); 1130 } 1131 else if (item.Design.RenderType == RenderType.None) { 1132 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : ""; 1133 1134 <div class="@cssClass dw-mod"> 1135 RenderBlock(item); 1136 </div> 1137 } 1138 else if (item.Design.RenderType != RenderType.Hide) 1139 { 1140 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : ""; 1141 1142 if (!item.SkipRenderBlocksList) { 1143 if (item.Design.RenderType == RenderType.Row) 1144 { 1145 <div class="grid grid--align-content-start @cssClass dw-mod" id="Block__@item.Id"> 1146 RenderBlock(item); 1147 </div> 1148 } 1149 1150 if (item.Design.RenderType == RenderType.Column) 1151 { 1152 string hidePadding = item.Design.HidePadding ? "u-no-padding" : ""; 1153 string size = item.Design.Size ?? "12"; 1154 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size; 1155 1156 <div class="grid__col-lg-@item.Design.Size grid__col-md-@item.Design.Size grid__col-sm-12 grid__col-xs-12 @hidePadding @cssClass dw-mod" id="Block__@item.Id"> 1157 RenderBlock(item); 1158 </div> 1159 } 1160 1161 if (item.Design.RenderType == RenderType.Table) 1162 { 1163 <table class="table @cssClass dw-mod" id="Block__@item.Id"> 1164 RenderBlock(item); 1165 </table> 1166 } 1167 1168 if (item.Design.RenderType == RenderType.TableRow) 1169 { 1170 <tr class="@cssClass dw-mod" id="Block__@item.Id"> 1171 RenderBlock(item); 1172 </tr> 1173 } 1174 1175 if (item.Design.RenderType == RenderType.TableColumn) 1176 { 1177 <td class="@cssClass dw-mod" id="Block__@item.Id"> 1178 RenderBlock(item); 1179 </td> 1180 } 1181 1182 if (item.Design.RenderType == RenderType.CardHeader) 1183 { 1184 <div class="card-header @cssClass dw-mod"> 1185 RenderBlock(item); 1186 </div> 1187 } 1188 1189 if (item.Design.RenderType == RenderType.CardBody) 1190 { 1191 <div class="card @cssClass dw-mod"> 1192 RenderBlock(item); 1193 </div> 1194 } 1195 1196 if (item.Design.RenderType == RenderType.CardFooter) 1197 { 1198 <div class="card-footer @cssClass dw-mod"> 1199 RenderBlock(item); 1200 </div> 1201 } 1202 } 1203 else 1204 { 1205 RenderBlock(item); 1206 } 1207 } 1208 1209 if (debug) { 1210 <!-- Block END: @item.Id --> 1211 } 1212 } 1213 } 1214 1215 void RenderBlock(Block item) 1216 { 1217 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false; 1218 1219 if (item.Template != null) 1220 { 1221 @BlocksPage.RenderTemplate(item.Template) 1222 } 1223 1224 if (item.Component != null) 1225 { 1226 string customSufix = "Custom"; 1227 string methodName = item.Component.HelperName; 1228 1229 ComponentBase[] methodParameters = new ComponentBase[1]; 1230 methodParameters[0] = item.Component; 1231 Type methodType = this.GetType(); 1232 1233 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix); 1234 MethodInfo generalMethod = methodType.GetMethod(methodName); 1235 1236 try { 1237 if (debug) { 1238 <!-- Component: @methodName.Replace("Render", "") --> 1239 } 1240 @customMethod.Invoke(this, methodParameters).ToString(); 1241 } catch { 1242 try { 1243 @generalMethod.Invoke(this, methodParameters).ToString() 1244 ; 1245 } catch(Exception ex) { 1246 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex); 1247 } 1248 } 1249 } 1250 1251 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList) 1252 { 1253 RenderBlockList(item.BlocksList); 1254 } 1255 } 1256 } 1257 1258 1259 1260 @* Include the components *@ 1261 @using Dynamicweb.Rapido.Blocks.Components 1262 @using Dynamicweb.Rapido.Blocks.Components.General 1263 @using Dynamicweb.Rapido.Blocks 1264 @using System.IO 1265 1266 @* Required *@ 1267 @using Dynamicweb.Rapido.Blocks.Components 1268 @using Dynamicweb.Rapido.Blocks.Components.General 1269 @using Dynamicweb.Rapido.Blocks 1270 1271 @functions { 1272 void Render(ComponentBase component) 1273 { 1274 if (component != null) 1275 { 1276 @component.Render(this) 1277 } 1278 } 1279 } 1280 1281 @* Components *@ 1282 @using System.Reflection 1283 @using Dynamicweb.Rapido.Blocks.Components.General 1284 1285 @* Component *@ 1286 1287 @functions { 1288 void RenderIcon(Icon settings) 1289 { 1290 if (settings != null) 1291 { 1292 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : ""; 1293 1294 if (settings.Name != null) 1295 { 1296 if (string.IsNullOrEmpty(settings.Label)) 1297 { 1298 <i class="@settings.Prefix @settings.Name @settings.CssClass" @color></i> 1299 } 1300 else 1301 { 1302 if (settings.LabelPosition == IconLabelPosition.Before) 1303 { 1304 <div class="u-flex u-flex--align-items-center @settings.CssClass">@settings.Label <i class="@settings.Prefix @settings.Name u-margin-left" @color></i></div> 1305 } 1306 else 1307 { 1308 <div class="u-flex u-flex--align-items-center @settings.CssClass"><i class="@settings.Prefix @settings.Name u-margin-right--lg u-w20px" @color></i>@settings.Label</div> 1309 } 1310 } 1311 } 1312 else if (!string.IsNullOrEmpty(settings.Label)) 1313 { 1314 @settings.Label 1315 } 1316 } 1317 } 1318 } 1319 1320 @using System.Reflection 1321 @using Dynamicweb.Rapido.Blocks.Components.General 1322 @using Dynamicweb.Rapido.Blocks.Components 1323 @using Dynamicweb.Core 1324 @using System.Text.RegularExpressions 1325 1326 @* Component *@ 1327 1328 @functions { 1329 void RenderButton(Button settings) 1330 { 1331 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null)) 1332 { 1333 Dictionary<string, string> attributes = new Dictionary<string, string>(); 1334 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>(); 1335 if (settings.Disabled) { 1336 attributes.Add("disabled", "true"); 1337 classList.Add("disabled"); 1338 } 1339 1340 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle)) 1341 { 1342 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N"); 1343 RenderConfirmDialog(settings); 1344 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true"; 1345 } 1346 1347 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 1348 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 1349 if (!string.IsNullOrEmpty(settings.AltText)) 1350 { 1351 attributes.Add("title", settings.AltText); 1352 } 1353 else if (!string.IsNullOrEmpty(settings.Title)) 1354 { 1355 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty); 1356 cleanTitle = cleanTitle.Replace("&nbsp;", " "); 1357 attributes.Add("title", cleanTitle); 1358 } 1359 1360 var onClickEvents = new List<string>(); 1361 if (!string.IsNullOrEmpty(settings.OnClick)) 1362 { 1363 onClickEvents.Add(settings.OnClick); 1364 } 1365 if (!string.IsNullOrEmpty(settings.Href)) 1366 { 1367 if (settings.Href.Contains("javascript")) 1368 { 1369 settings.Href = settings.Href.Replace("http://", ""); 1370 } 1371 onClickEvents.Add("location.href='" + settings.Href + "'"); 1372 } 1373 if (onClickEvents.Count > 0) 1374 { 1375 attributes.Add("onClick", string.Join(";", onClickEvents)); 1376 } 1377 1378 if (settings.ButtonLayout != ButtonLayout.None) 1379 { 1380 classList.Add("btn"); 1381 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower(); 1382 if (btnLayout == "linkclean") 1383 { 1384 btnLayout = "link-clean"; //fix 1385 } 1386 classList.Add("btn--" + btnLayout); 1387 } 1388 1389 if (settings.Icon == null) 1390 { 1391 settings.Icon = new Icon(); 1392 } 1393 1394 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : ""; 1395 settings.Icon.Label = settings.Title; 1396 1397 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower()); 1398 1399 <button class="@string.Join(" ", classList) dw-mod" @ComponentMethods.AddAttributes(attributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)>@{RenderIcon(settings.Icon);}</button> 1400 } 1401 } 1402 1403 void RenderConfirmDialog(Button settings) 1404 { 1405 Modal confirmDialog = new Modal { 1406 Id = settings.Id, 1407 Width = ModalWidth.Sm, 1408 Heading = new Heading 1409 { 1410 Level = 2, 1411 Title = settings.ConfirmTitle 1412 }, 1413 BodyText = settings.ConfirmText 1414 }; 1415 1416 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"}); 1417 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick }); 1418 1419 RenderModal(confirmDialog); 1420 } 1421 } 1422 @using System.Reflection 1423 @using Dynamicweb.Rapido.Blocks.Components.General 1424 @using Dynamicweb.Rapido.Blocks.Components 1425 @using Dynamicweb.Core 1426 1427 @* Component *@ 1428 1429 @functions{ 1430 void RenderLink(Link settings) 1431 { 1432 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null)) 1433 { 1434 Dictionary<string, string> attributes = new Dictionary<string, string>(); 1435 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>(); 1436 if (settings.Disabled) 1437 { 1438 attributes.Add("disabled", "true"); 1439 classList.Add("disabled"); 1440 } 1441 1442 if (!string.IsNullOrEmpty(settings.AltText)) 1443 { 1444 attributes.Add("title", settings.AltText); 1445 } 1446 else if (!string.IsNullOrEmpty(settings.Title)) 1447 { 1448 attributes.Add("title", settings.Title); 1449 } 1450 1451 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 1452 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 1453 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); } 1454 attributes.Add("href", settings.Href); 1455 1456 if (settings.ButtonLayout != ButtonLayout.None) 1457 { 1458 classList.Add("btn"); 1459 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower(); 1460 if (btnLayout == "linkclean") 1461 { 1462 btnLayout = "link-clean"; //fix 1463 } 1464 classList.Add("btn--" + btnLayout); 1465 } 1466 1467 if (settings.Icon == null) 1468 { 1469 settings.Icon = new Icon(); 1470 } 1471 settings.Icon.Label = settings.Title; 1472 1473 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None) 1474 { 1475 settings.Rel = LinkRelType.Noopener; 1476 } 1477 if (settings.Target != LinkTargetType.None) 1478 { 1479 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower()); 1480 } 1481 if (settings.Download) 1482 { 1483 attributes.Add("download", "true"); 1484 } 1485 if (settings.Rel != LinkRelType.None) 1486 { 1487 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower()); 1488 } 1489 1490 <a class="@string.Join(" ", classList) dw-mod" @ComponentMethods.AddAttributes(attributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)>Render(settings.Icon);</a> 1491 } 1492 } 1493 } 1494 1495 @using System.Reflection 1496 @using Dynamicweb.Rapido.Blocks.Components 1497 @using Dynamicweb.Rapido.Blocks.Components.General 1498 @using Dynamicweb.Rapido.Blocks 1499 1500 @* Component *@ 1501 1502 @functions{ 1503 void RenderRating(Rating settings) 1504 { 1505 if (settings.Score > 0) 1506 { 1507 int rating = settings.Score; 1508 string iconType = "fa-star"; 1509 1510 switch (settings.Type.ToString()) { 1511 case "Stars": 1512 iconType = "fa-star"; 1513 break; 1514 case "Hearts": 1515 iconType = "fa-heart"; 1516 break; 1517 case "Lemons": 1518 iconType = "fa-lemon"; 1519 break; 1520 case "Bombs": 1521 iconType = "fa-bomb"; 1522 break; 1523 } 1524 1525 <div class="u-ta-right"> 1526 @for (int i = 0; i < settings.OutOf; i++) 1527 { 1528 <i class="@(rating > i ? "fas" : "far") @iconType"></i> 1529 } 1530 </div> 1531 } 1532 } 1533 } 1534 @using System.Reflection 1535 @using Dynamicweb.Rapido.Blocks.Components.General 1536 @using Dynamicweb.Rapido.Blocks.Components 1537 1538 1539 @* Component *@ 1540 1541 @functions{ 1542 void RenderNavigation(Navigation settings) { 1543 RenderNavigation(new 1544 { 1545 id = settings.Id, 1546 cssclass = settings.CssClass, 1547 startLevel = settings.StartLevel, 1548 endlevel = settings.EndLevel, 1549 expandmode = settings.Expandmode, 1550 sitemapmode = settings.SitemapMode, 1551 template = settings.Template 1552 }); 1553 } 1554 } 1555 1556 @using Dynamicweb.Rapido.Blocks.Components.General 1557 @using Dynamicweb.Rapido.Blocks.Components 1558 1559 @* Component *@ 1560 1561 @functions { 1562 void RenderLeftNavigation(LeftNavigation settings) { 1563 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id; 1564 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template; 1565 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel; 1566 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel; 1567 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode; 1568 1569 <div class="grid__cell"> 1570 RenderNavigation(settings); 1571 </div> 1572 } 1573 } 1574 1575 @using System.Reflection 1576 @using Dynamicweb.Rapido.Blocks.Components.General 1577 @using Dynamicweb.Core 1578 1579 @* Component *@ 1580 1581 @functions { 1582 void RenderHeading(Heading settings) 1583 { 1584 if (settings != null && !string.IsNullOrEmpty(settings.Title)) 1585 { 1586 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : ""; 1587 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div"; 1588 1589 @("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">") 1590 if (!string.IsNullOrEmpty(settings.Link)) 1591 { 1592 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None }); 1593 } 1594 else 1595 { 1596 if (settings.Icon == null) 1597 { 1598 settings.Icon = new Icon(); 1599 } 1600 settings.Icon.Label = settings.Title; 1601 RenderIcon(settings.Icon); 1602 } 1603 @("</" + tagName + ">"); 1604 } 1605 } 1606 } 1607 1608 @using Dynamicweb.Rapido.Blocks.Components 1609 @using Dynamicweb.Rapido.Blocks.Components.General 1610 @using Dynamicweb.Rapido.Blocks 1611 @using Dynamicweb.Frontend 1612 1613 @* Component *@ 1614 1615 @functions { 1616 void RenderImage(Image settings) 1617 { 1618 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None) 1619 { 1620 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 1621 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); } 1622 1623 if (settings.Caption != null) 1624 { 1625 @:<div> 1626 } 1627 1628 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower(); 1629 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower(); 1630 1631 <div class="image-filter image-filter--@primaryFilterClass u-position-relative dw-mod" @ComponentMethods.AddAttributes(optionalAttributes)> 1632 <div class="image-filter image-filter--@secondaryFilterClass dw-mod"> 1633 @if (settings.Link != null) 1634 { 1635 <a href="@settings.Link"> 1636 RenderTheImage(settings); 1637 </a> 1638 } 1639 else 1640 { 1641 RenderTheImage(settings); 1642 } 1643 </div> 1644 </div> 1645 1646 if (settings.Caption != null) 1647 { 1648 <span class="image-caption dw-mod">@settings.Caption</span> 1649 @:</div> 1650 } 1651 } 1652 else 1653 { 1654 if (settings.Caption != null) 1655 { 1656 @:<div> 1657 } 1658 if (!string.IsNullOrEmpty(settings.Link)) 1659 { 1660 <a href="@settings.Link"> 1661 RenderTheImage(settings); 1662 </a> 1663 } 1664 else 1665 { 1666 RenderTheImage(settings); 1667 } 1668 1669 if (settings.Caption != null) 1670 { 1671 <span class="image-caption dw-mod">@settings.Caption</span> 1672 @:</div> 1673 } 1674 } 1675 } 1676 1677 void RenderTheImage(Image settings) 1678 { 1679 if (settings != null) 1680 { 1681 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg"; 1682 string placeholderImage = "/Files/Images/placeholder.gif"; 1683 string imageEngine = "/Admin/Public/GetImage.ashx?"; 1684 1685 string imageStyle = ""; 1686 1687 switch (settings.Style) 1688 { 1689 case ImageStyle.Ball: 1690 imageStyle = "grid__cell-img--ball"; 1691 break; 1692 1693 case ImageStyle.Triangle: 1694 imageStyle = "grid__cell-img--triangle"; 1695 break; 1696 } 1697 1698 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle) 1699 { 1700 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop; 1701 1702 if (settings.ImageDefault != null) 1703 { 1704 settings.ImageDefault.Height = settings.ImageDefault.Width; 1705 } 1706 if (settings.ImageMedium != null) 1707 { 1708 settings.ImageMedium.Height = settings.ImageMedium.Width; 1709 } 1710 if (settings.ImageSmall != null) 1711 { 1712 settings.ImageSmall.Height = settings.ImageSmall.Width; 1713 } 1714 } 1715 1716 string defaultImage = imageEngine; 1717 string imageSmall = ""; 1718 string imageMedium = ""; 1719 1720 if (settings.DisableImageEngine) 1721 { 1722 defaultImage = settings.Path; 1723 } 1724 else 1725 { 1726 if (settings.ImageDefault != null) 1727 { 1728 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault); 1729 1730 if (settings.Path.GetType() != typeof(string)) 1731 { 1732 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 1733 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 1734 } 1735 else 1736 { 1737 defaultImage += settings.Path != null ? "Image=" + settings.Path : ""; 1738 } 1739 1740 defaultImage += "&AlternativeImage=" + alternativeImage; 1741 } 1742 1743 if (settings.ImageSmall != null) 1744 { 1745 imageSmall = "data-src-small=\"" + imageEngine; 1746 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall); 1747 1748 if (settings.Path.GetType() != typeof(string)) 1749 { 1750 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 1751 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 1752 } 1753 else 1754 { 1755 imageSmall += settings.Path != null ? "Image=" + settings.Path : ""; 1756 } 1757 1758 imageSmall += "&alternativeImage=" + alternativeImage; 1759 1760 imageSmall += "\""; 1761 } 1762 1763 if (settings.ImageMedium != null) 1764 { 1765 imageMedium = "data-src-medium=\"" + imageEngine; 1766 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium); 1767 1768 if (settings.Path.GetType() != typeof(string)) 1769 { 1770 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 1771 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 1772 } 1773 else 1774 { 1775 imageMedium += settings.Path != null ? "Image=" + settings.Path : ""; 1776 } 1777 1778 imageMedium += "&alternativeImage=" + alternativeImage; 1779 1780 imageMedium += "\""; 1781 } 1782 } 1783 1784 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 1785 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); } 1786 if (!string.IsNullOrEmpty(settings.Title)) 1787 { 1788 optionalAttributes.Add("alt", settings.Title); 1789 optionalAttributes.Add("title", settings.Title); 1790 } 1791 1792 if (settings.DisableLazyLoad) 1793 { 1794 <img id="@settings.Id" class="@imageStyle @settings.CssClass dw-mod" src="@defaultImage" @ComponentMethods.AddAttributes(optionalAttributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes) /> 1795 } 1796 else 1797 { 1798 1799 <img id="@settings.Id" class="@imageStyle @settings.CssClass dw-mod" loading="lazy" src="@defaultImage" @ComponentMethods.AddAttributes(optionalAttributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes) /> 1800 } 1801 } 1802 } 1803 } 1804 @using System.Reflection 1805 @using Dynamicweb.Rapido.Blocks.Components.General 1806 @using Dynamicweb.Rapido.Blocks.Components 1807 1808 @* Component *@ 1809 1810 @functions { 1811 void RenderHiddenField(HiddenField settings) { 1812 var attributes = new Dictionary<string, string>(); 1813 attributes.Add("type", "hidden"); 1814 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 1815 if (settings.Value != null) { attributes.Add("value", settings.Value); } 1816 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 1817 1818 <input @ComponentMethods.AddAttributes(attributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)/> 1819 } 1820 } 1821 1822 @using System.Reflection 1823 @using Dynamicweb.Rapido.Blocks.Components.General 1824 @using Dynamicweb.Rapido.Blocks.Components 1825 1826 @* Component *@ 1827 1828 @functions { 1829 void RenderRadioButtonField(RadioButtonField settings) 1830 { 1831 var attributes = new Dictionary<string, string>(); 1832 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id)) 1833 { 1834 settings.Id = Guid.NewGuid().ToString("N"); 1835 } 1836 1837 /*base settings*/ 1838 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 1839 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); } 1840 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); } 1841 if (settings.Disabled) { attributes.Add("disabled", "true"); } 1842 if (settings.Required) { attributes.Add("required", "true"); } 1843 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 1844 /*end*/ 1845 1846 attributes.Add("type", "radio"); 1847 if (settings.Checked) { attributes.Add("checked", "true"); } 1848 settings.CssClass = "form__control " + settings.CssClass; 1849 if (settings.Value != null) { attributes.Add("value", settings.Value); } 1850 1851 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value); 1852 1853 <div class="form__field-group @settings.WrapperCssClass dw-mod"> 1854 <input @ComponentMethods.AddAttributes(resultAttributes) class="@settings.CssClass dw-mod" /> 1855 @if (!string.IsNullOrEmpty(settings.Label)) 1856 { 1857 <label for="@settings.Id" class="dw-mod">@settings.Label</label> 1858 } 1859 @if (!string.IsNullOrEmpty(settings.HelpText)) 1860 { 1861 <small class="form__help-text">@settings.HelpText</small> 1862 } 1863 Render(new NotificationMessage { Message = settings.ErrorMessage }); 1864 </div> 1865 } 1866 } 1867 @using System.Reflection 1868 @using Dynamicweb.Rapido.Blocks.Components.General 1869 @using Dynamicweb.Rapido.Blocks.Components 1870 1871 @* Component *@ 1872 1873 @functions{ 1874 void RenderRadioButtonListField(RadioButtonListField settings) 1875 { 1876 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; } 1877 1878 <div class="form__field-group @settings.WrapperCssClass u-margin-bottom dw-mod" @ComponentMethods.AddAttributes(settings.ExtraAttributes)> 1879 @if (!string.IsNullOrEmpty(settings.Label)) 1880 { 1881 <label>@settings.Label</label> 1882 } 1883 @if (!string.IsNullOrEmpty(settings.HelpText)) 1884 { 1885 <small class="form__help-text">@settings.HelpText</small> 1886 } 1887 1888 @foreach (var item in settings.Options) 1889 { 1890 if (settings.Required) 1891 { 1892 item.Required = true; 1893 } 1894 if (settings.Disabled) 1895 { 1896 item.Disabled = true; 1897 } 1898 if (!string.IsNullOrEmpty(settings.Name)) 1899 { 1900 item.Name = settings.Name; 1901 } 1902 if (settings.Value != null && settings.Value == item.Value) 1903 { 1904 item.Checked = true; 1905 } 1906 if (!string.IsNullOrEmpty(settings.OnClick)) 1907 { 1908 item.OnClick += settings.OnClick; 1909 } 1910 if (!string.IsNullOrEmpty(settings.OnChange)) 1911 { 1912 item.OnChange += settings.OnChange; 1913 } 1914 if (!string.IsNullOrEmpty(settings.CssClass)) 1915 { 1916 item.CssClass += settings.CssClass; 1917 } 1918 Render(item); 1919 } 1920 1921 Render(new NotificationMessage { Message = settings.ErrorMessage }); 1922 </div> 1923 } 1924 } 1925 @using Dynamicweb.Rapido.Blocks.Components.General 1926 @using Dynamicweb.Rapido.Blocks.Components 1927 1928 @* Component *@ 1929 1930 @functions { 1931 void RenderForm(Form settings) { 1932 if (settings != null) 1933 { 1934 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 1935 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); }; 1936 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); }; 1937 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); }; 1938 var enctypes = new Dictionary<string, string> 1939 { 1940 { "multipart", "multipart/form-data" }, 1941 { "text", "text/plain" }, 1942 { "application", "application/x-www-form-urlencoded" } 1943 }; 1944 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); }; 1945 optionalAttributes.Add("method", settings.Method.ToString()); 1946 1947 if (!string.IsNullOrEmpty(settings.FormStartMarkup)) 1948 { 1949 @settings.FormStartMarkup 1950 } 1951 else 1952 { 1953 @:<form class="@settings.CssClass u-no-margin dw-mod" @ComponentMethods.AddAttributes(optionalAttributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)> 1954 } 1955 1956 foreach (var field in settings.GetFields()) 1957 { 1958 Render(field); 1959 } 1960 1961 @:</form> 1962 } 1963 } 1964 } 1965 1966 @using System.Reflection 1967 @using Dynamicweb.Rapido.Blocks.Components.General 1968 @using Dynamicweb.Rapido.Blocks.Components 1969 1970 @* Component *@ 1971 1972 @functions { 1973 void RenderText(Text settings) 1974 { 1975 @settings.Content 1976 } 1977 } 1978 1979 @using System.Reflection 1980 @using Dynamicweb.Rapido.Blocks.Components.General 1981 @using Dynamicweb.Rapido.Blocks.Components 1982 1983 1984 @* Component *@ 1985 1986 @functions { 1987 void RenderContentModule(ContentModule settings) { 1988 if (!string.IsNullOrEmpty(settings.Content)) 1989 { 1990 @settings.Content 1991 } 1992 } 1993 } 1994 1995 @using System.Reflection 1996 @using Dynamicweb.Rapido.Blocks.Components.General 1997 @using Dynamicweb.Rapido.Blocks.Components 1998 1999 2000 @* Component *@ 2001 2002 @functions { 2003 void RenderModal(Modal settings) { 2004 if (settings != null) 2005 { 2006 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N"); 2007 2008 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : ""; 2009 2010 <input type="checkbox" id="@(modalId)ModalTrigger" class="modal-trigger" @onchange /> 2011 2012 <div class="modal-container"> 2013 @if (!settings.DisableDarkOverlay) 2014 { 2015 <label for="@(modalId)ModalTrigger" id="@(modalId)ModalOverlay" class="modal-overlay"></label> 2016 } 2017 <div class="modal modal--@settings.Width.ToString().ToLower() modal-height--@settings.Height.ToString().ToLower()" id="@(modalId)Modal"> 2018 @if (settings.Heading != null) 2019 { 2020 if (!string.IsNullOrEmpty(settings.Heading.Title)) 2021 { 2022 <div class="modal__header"> 2023 RenderHeading(settings.Heading); 2024 </div> 2025 } 2026 } 2027 <div class="modal__body @(settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "")"> 2028 @if (!string.IsNullOrEmpty(settings.BodyText)) 2029 { 2030 @settings.BodyText 2031 } 2032 @if (settings.BodyTemplate != null) 2033 { 2034 @settings.BodyTemplate 2035 } 2036 @{ 2037 var actions = settings.GetActions(); 2038 } 2039 </div> 2040 @if (actions.Length > 0) 2041 { 2042 <div class="modal__footer"> 2043 @foreach (var action in actions) 2044 { 2045 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") { 2046 action.CssClass += " u-no-margin"; 2047 } else { 2048 action.CssClass += " u-full-width u-margin-bottom"; 2049 } 2050 2051 Render(action); 2052 } 2053 </div> 2054 } 2055 <label class="modal__close-btn" for="@(modalId)ModalTrigger"></label> 2056 </div> 2057 </div> 2058 } 2059 } 2060 } 2061 @using Dynamicweb.Rapido.Blocks.Components.General 2062 2063 @* Component *@ 2064 2065 @functions { 2066 void RenderMediaListItem(MediaListItem settings) 2067 { 2068 <div class="media-list-item @settings.CssClass dw-mod" @(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : "")> 2069 @if (!string.IsNullOrEmpty(settings.Label)) 2070 { 2071 if (!string.IsNullOrEmpty(settings.Link)) 2072 { 2073 Render(new Link 2074 { 2075 Href = settings.Link, 2076 CssClass = "media-list-item__sticker dw-mod", 2077 ButtonLayout = ButtonLayout.None, 2078 Title = settings.Label, 2079 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : "" 2080 }); 2081 } 2082 else if (!string.IsNullOrEmpty(settings.OnClick)) 2083 { 2084 <span class="media-list-item__sticker dw-mod" onclick="@(settings.OnClick)"> 2085 <span class="u-uppercase">@settings.Label</span> 2086 </span> 2087 } 2088 else 2089 { 2090 <span class="media-list-item__sticker media-list-item__sticker--no-link dw-mod"> 2091 <span class="u-uppercase">@settings.Label</span> 2092 </span> 2093 } 2094 } 2095 <div class="media-list-item__wrap"> 2096 <div class="media-list-item__info dw-mod"> 2097 <div class="media-list-item__header dw-mod"> 2098 @if (!string.IsNullOrEmpty(settings.Title)) 2099 { 2100 if (!string.IsNullOrEmpty(settings.Link)) 2101 { 2102 Render(new Link 2103 { 2104 Href = settings.Link, 2105 CssClass = "media-list-item__name dw-mod", 2106 ButtonLayout = ButtonLayout.None, 2107 Title = settings.Title, 2108 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : "" 2109 }); 2110 } 2111 else if (!string.IsNullOrEmpty(settings.OnClick)) 2112 { 2113 <span class="media-list-item__name dw-mod" onclick="@(settings.OnClick)">@settings.Title</span> 2114 } 2115 else 2116 { 2117 <span class="media-list-item__name media-list-item__name--no-link dw-mod">@settings.Title</span> 2118 } 2119 } 2120 2121 @if (!string.IsNullOrEmpty(settings.Status)) 2122 { 2123 <div class="media-list-item__state dw-mod">@settings.Status</div> 2124 } 2125 </div> 2126 @{ 2127 settings.InfoTable.CssClass += " media-list-item__parameters-table"; 2128 } 2129 2130 Render(settings.InfoTable); 2131 </div> 2132 <div class="media-list-item__actions dw-mod"> 2133 <div class="media-list-item__actions-list dw-mod"> 2134 @{ 2135 var actions = settings.GetActions(); 2136 2137 foreach (ButtonBase action in actions) 2138 { 2139 action.ButtonLayout = ButtonLayout.None; 2140 action.CssClass += " media-list-item__action link"; 2141 2142 Render(action); 2143 } 2144 } 2145 </div> 2146 2147 @if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title)) 2148 { 2149 settings.SelectButton.CssClass += " u-no-margin"; 2150 2151 <div class="media-list-item__action-button"> 2152 Render(settings.SelectButton); 2153 </div> 2154 } 2155 </div> 2156 </div> 2157 </div> 2158 } 2159 } 2160 2161 2162 @using Dynamicweb.Rapido.Blocks.Components.General 2163 @using Dynamicweb.Rapido.Blocks.Components 2164 2165 @functions { 2166 void RenderTable(Table settings) 2167 { 2168 Dictionary<string, string> attributes = new Dictionary<string, string>(); 2169 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 2170 2171 var enumToClasses = new Dictionary<TableDesign, string> 2172 { 2173 { TableDesign.Clean, "table--clean" }, 2174 { TableDesign.Bordered, "table--bordered" }, 2175 { TableDesign.Striped, "table--striped" }, 2176 { TableDesign.Hover, "table--hover" }, 2177 { TableDesign.Compact, "table--compact" }, 2178 { TableDesign.Condensed, "table--condensed" }, 2179 { TableDesign.NoTopBorder, "table--no-top-border" } 2180 }; 2181 string tableDesignClass = ""; 2182 if (settings.Design != TableDesign.None) 2183 { 2184 tableDesignClass = enumToClasses[settings.Design]; 2185 } 2186 2187 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); } 2188 2189 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 2190 2191 <table @ComponentMethods.AddAttributes(resultAttributes)> 2192 @if (settings.Header != null) 2193 { 2194 <thead> 2195 Render(settings.Header); 2196 </thead> 2197 } 2198 <tbody> 2199 @foreach (var row in settings.Rows) 2200 { 2201 Render(row); 2202 } 2203 </tbody> 2204 @if (settings.Footer != null) 2205 { 2206 <tfoot> 2207 Render(settings.Footer); 2208 </tfoot> 2209 } 2210 </table> 2211 } 2212 } 2213 @using Dynamicweb.Rapido.Blocks.Components.General 2214 @using Dynamicweb.Rapido.Blocks.Components 2215 2216 @functions { 2217 void RenderTableRow(TableRow settings) 2218 { 2219 Dictionary<string, string> attributes = new Dictionary<string, string>(); 2220 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 2221 2222 var enumToClasses = new Dictionary<TableRowDesign, string> 2223 { 2224 { TableRowDesign.NoBorder, "table__row--no-border" }, 2225 { TableRowDesign.Border, "table__row--border" }, 2226 { TableRowDesign.TopBorder, "table__row--top-line" }, 2227 { TableRowDesign.BottomBorder, "table__row--bottom-line" }, 2228 { TableRowDesign.Solid, "table__row--solid" } 2229 }; 2230 2231 string tableRowDesignClass = ""; 2232 if (settings.Design != TableRowDesign.None) 2233 { 2234 tableRowDesignClass = enumToClasses[settings.Design]; 2235 } 2236 2237 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); } 2238 2239 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 2240 2241 <tr @ComponentMethods.AddAttributes(resultAttributes)> 2242 @foreach (var cell in settings.Cells) 2243 { 2244 if (settings.IsHeaderRow) 2245 { 2246 cell.IsHeader = true; 2247 } 2248 Render(cell); 2249 } 2250 </tr> 2251 } 2252 } 2253 @using Dynamicweb.Rapido.Blocks.Components.General 2254 @using Dynamicweb.Rapido.Blocks.Components 2255 @using Dynamicweb.Core 2256 2257 @functions { 2258 void RenderTableCell(TableCell settings) 2259 { 2260 Dictionary<string, string> attributes = new Dictionary<string, string>(); 2261 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 2262 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); } 2263 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); } 2264 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); } 2265 2266 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 2267 2268 string tagName = settings.IsHeader ? "th" : "td"; 2269 2270 @("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">") 2271 @settings.Content 2272 @("</" + tagName + ">"); 2273 } 2274 } 2275 @* <h1>ArticleComponents.cshtml</h1> *@ 2276 2277 @{ 2278 Context.Current.Response.AddHeader("access-control-allow-origin", "*"); 2279 2280 string bodyClass = ""; 2281 string template = "real"; 2282 string TemplateUrl = "/Files/Templates/Designs/rm/"; 2283 string MetaTitle = Model.Title; 2284 string MetaDescription = Model.Description; 2285 string MetaKeywords = Model.Keywords; 2286 string searchClass = ""; 2287 2288 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css")); 2289 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}"; 2290 2291 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg"; 2292 2293 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2"); 2294 2295 // Indstillinger 2296 var settings_Frontpage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : ""; 2297 var settings_Boligside = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : ""; 2298 var settings_Maeglersogning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : ""; 2299 var settings_MinSide = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : ""; 2300 var settings_Sibling_Site = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : ""; 2301 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : ""; 2302 var settings_Product_Group = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : ""; 2303 var settings_Boligagent = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : ""; 2304 var settings_Persondatapolitik = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : ""; 2305 2306 // API 2307 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : ""; 2308 var settings_BoligListFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : ""; 2309 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : ""; 2310 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : ""; 2311 var settings_BoligCountFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : ""; 2312 var settings_BoligMapFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : ""; 2313 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"]; 2314 2315 // Forside 2316 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : ""; 2317 var settings_FrontpageVideo = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : ""; 2318 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : ""; 2319 2320 // Tracking 2321 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : ""; 2322 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]))) 2323 { 2324 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]); 2325 } 2326 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : ""; 2327 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : ""; 2328 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : ""; 2329 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]); 2330 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]); 2331 var settings_Google_Optimize_Id = Converter.ToString(SettingsItem["Google_Optimize_Id"]); 2332 2333 // Indstillinger for brugerfunktioner 2334 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : ""; 2335 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : ""; 2336 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : ""; 2337 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : ""; 2338 2339 int createUserParagraphId = 0; 2340 int loginParagraphId = 0; 2341 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId); 2342 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId); 2343 2344 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv. 2345 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv) 2346 int searchPageId = GetPageSettingsPageId("Boligside"); 2347 if (searchPageId == 0) 2348 { 2349 searchPageId = GetWebsiteSettingsPageId("Boligside"); 2350 } 2351 2352 int boligsideId = GetPageSettingsPageId("Boligside"); 2353 if (boligsideId == 0) 2354 { 2355 boligsideId = GetWebsiteSettingsPageId("Boligside"); 2356 } 2357 2358 string productGroupFilter = String.Empty; 2359 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null) 2360 { 2361 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString(); 2362 } 2363 2364 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"])) 2365 { 2366 searchClass = "is-frontpage"; 2367 } 2368 2369 bool isErhverv = false; 2370 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null) 2371 { 2372 var s = Pageview.Page.PropertyItem["Erhverv"].ToString(); 2373 Boolean.TryParse(s, out isErhverv); 2374 } 2375 2376 bool isBrokerPage = false; 2377 if (!string.IsNullOrEmpty(Model.Area.Item.GetString("M_glerGruppeId"))) 2378 { 2379 isBrokerPage = true; 2380 bodyClass = ""; // Get rid of transparent header on brokerPage 2381 } 2382 2383 string callTrackingId = Model.Item.GetString("CallTrackingId"); 2384 2385 RealEstate.User.Model.BrokerEmployee MyBroker = null; 2386 try 2387 { 2388 var MyB = new RealEstate.User.MyBroker(); 2389 MyBroker = MyB.GetMyBroker(); 2390 } 2391 catch 2392 { 2393 // Ignore 2394 } 2395 2396 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : ""); 2397 string querySearchNameAttr = "search"; 2398 2399 // Overwrite search with zipcodeinterval if set 2400 if (Context.Current.Request.QueryString["zipcodeinterval"] != null) 2401 { 2402 querySearch = Context.Current.Request.QueryString["zipcodeinterval"]; 2403 querySearchNameAttr = "zipcodeinterval"; 2404 } 2405 2406 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : ""); 2407 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : ""); 2408 2409 Dynamicweb.Security.UserManagement.User user = null; 2410 int userID = 0; 2411 string userName = ""; 2412 string userEmail = ""; 2413 string userPhone = ""; 2414 string userZip = ""; 2415 string userAddress = ""; 2416 2417 if (Dynamicweb.Security.UserManagement.UserContext.Current.IsLoggedOn) 2418 { 2419 user = Dynamicweb.Security.UserManagement.UserContext.Current.User; 2420 userName = user.Name; 2421 userEmail = user.Email; 2422 userPhone = user.Phone; 2423 userZip = user.Zip; 2424 userAddress = user.Address; 2425 userID = user.ID; 2426 } 2427 2428 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode"); 2429 string forgotPwTemplate = ""; 2430 string forgotPwSender = ""; 2431 string markerColor = ""; 2432 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png"; 2433 2434 // Important - e-mail templates for forgotPw must be placed in "UserManagement/Login" folder 2435 forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml"; 2436 forgotPwSender = "noreply@mailreal.dk"; 2437 markerColor = "#213960"; 2438 2439 var butikId = string.Empty; 2440 string bEmail = string.Empty; 2441 if (MyBroker != null && MyBroker.Broker != null) 2442 { 2443 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 2444 bEmail = MyBroker.Broker.Item().GetString("Email"); 2445 } 2446 2447 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment")); 2448 2449 var termsMail = "info@realmaeglerne.dk"; 2450 } 2451 2452 <!DOCTYPE html> 2453 <html> 2454 <head> 2455 <meta charset="utf-8"> 2456 <title>@MetaTitle</title> 2457 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 2458 <meta name="description" content="@MetaDescription"> 2459 <meta name="keywords" content="@MetaKeywords"> 2460 <meta name="format-detection" content="telephone=no"> 2461 <meta http-equiv="Expires" content="60"> 2462 <meta name="robots" content="@(Pageview.Area.Noindex ? "noindex" : "index"),@(Pageview.Area.Nofollow ? "nofollow" : "follow")"> 2463 2464 @*RICH SNIPPETS*@ 2465 2466 @RenderSnippet("OpenGraphTags") 2467 @if (!string.IsNullOrEmpty(settings_Google_Optimize_Id)) 2468 { 2469 <!-- Google optimize script--> 2470 <script src="https://www.googleoptimize.com/optimize.js?id=@settings_Google_Optimize_Id"></script> 2471 } 2472 <!-- TrustBox script --> 2473 <script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script> 2474 <!-- End TrustBox script --> 2475 2476 <script type="application/ld+json"> 2477 { 2478 "context": "https://schema.org/", 2479 "@@type": "WebSite", 2480 "name": "RealMæglerne", 2481 "url": "https://www.realmaeglerne.dk/", 2482 "potentialAction": { 2483 "type": "SearchAction", 2484 "target": "https://www.realmaeglerne.dk/find-maegler?q={search_term_string}", 2485 "query-input": "required name=search_term_string" 2486 } 2487 } 2488 </script> 2489 2490 <script type="application/ld+json"> 2491 { 2492 "context": "https://schema.org", 2493 "@@type": "Corporation", 2494 "name": "RealMæglerne", 2495 "alternateName": "R&B Mægler A/S", 2496 "url": "https://www.realmaeglerne.dk", 2497 "logo": "https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png", 2498 "contactPoint": { 2499 "type": "ContactPoint", 2500 "telephone": "+4570237153", 2501 "contactType": "sales", 2502 "areaServed": "DK", 2503 "availableLanguage": "Danish" 2504 }, 2505 "sameAs": [ 2506 "https://www.facebook.com/realmaeglerne/", 2507 "https://www.linkedin.com/company/realmæglerne/", 2508 "https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g", 2509 "https://www.realmaeglerne.dk/" 2510 ] 2511 } 2512 </script> 2513 @RenderSnippet("StructuredData") 2514 @*RICH SNIPPETS END*@ 2515 2516 @*FONT AWESOME*@ 2517 @{ 2518 <link rel="stylesheet" href="@(TemplateUrl)assets/fontawesome/css/all.css" async /> 2519 <link rel="stylesheet" href="@mainCSS" async /> 2520 2521 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"])) 2522 { 2523 var cssErhvervFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/erhverv.min.css")); 2524 string erhvervCSS = TemplateUrl + $"assets/dist/css/erhverv.min.css?{cssErhvervFileInfo.LastWriteTime.Ticks}"; 2525 <link rel="stylesheet" href="@erhvervCSS" async> 2526 } 2527 } 2528 2529 2530 <link rel="icon" type="image/ico" href="@(TemplateUrl)assets/images/favicons/favicon-real.ico?v=1"> 2531 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-16x16.png" sizes="16x16"> 2532 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-32x32.png" sizes="32x32"> 2533 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-96x96.png" sizes="96x96"> 2534 <meta name="google-site-verification" content="hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg" /> 2535 2536 @if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString())) 2537 { 2538 <script> 2539 window.dataLayer = window.dataLayer || []; // must be placed above GTM script 2540 </script> 2541 <!-- Google Tag Manager --> 2542 <script> 2543 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 2544 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 2545 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 2546 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 2547 })(window,document,'script','dataLayer','@settings_Google_Tag_Manager_ID');</script> 2548 <!-- End Google Tag Manager --> 2549 } 2550 2551 @if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId)) 2552 { 2553 <script type="text/javascript" src="https://call.call-tracking.dk/getJavascript?custid=@callTrackingId"></script> 2554 } 2555 2556 @if (!String.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString())) 2557 { 2558 <!-- Begin Leadhub Pixel Code --> 2559 <script> 2560 (function(w,d,x,n,u,t,f,s,o){ 2561 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){ 2562 (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) 2563 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '@settings_Leadhub_Pixel_ID'); 2564 lhi('pageview'); 2565 </script> 2566 <!-- End Leadhub Pixel Code --> 2567 } 2568 2569 <script> 2570 // Global namespace used for fetching API feeds from DW 2571 var RMAPI = (RMAPI) ? RMAPI : {}; 2572 var ApiPreFix = "/Default.aspx?ID="; 2573 RMAPI.BoligCountFeed = ApiPreFix + "@settings_BoligCountFeed"; 2574 RMAPI.BoligListFeed = ApiPreFix + "@settings_BoligListFeed" + "&refpageid=@Pageview.Page.ID"; 2575 RMAPI.BoligListFeedErhverv = "@settings_BoligListFeedErhverv"; 2576 RMAPI.BoligListFeedMaegler = ApiPreFix + "@settings_BoligListFeedMaegler" + "&refpageid=@Pageview.Page.ID"; 2577 RMAPI.BoligSearchFeed = ApiPreFix + "@settings_BoligSearchFeed"; 2578 RMAPI.BoligMapFeed = ApiPreFix + "@settings_BoligMapFeed"; 2579 RMAPI.Boligagent = "@settings_Boligagent"; 2580 RMAPI.IsErhverv = @isErhverv.ToString().ToLower(); 2581 RMAPI.ProductGroupFilter = "@productGroupFilter"; 2582 RMAPI.ButikId = "@butikId"; 2583 RMAPI.Boligvisning = false; 2584 RMAPI.RefPageId = "@Pageview.Page.ID"; 2585 RMAPI.Template = "@template"; 2586 RMAPI.SliderSettings = @JsonConvert.SerializeObject(Settings.Site); 2587 RMAPI.AdvisorSearchFeed = "@settings_AdvisorSearchFeed"; 2588 RMAPI.LoadingIcon = "@loadingIcon"; 2589 RMAPI.MarkerColor = "@markerColor"; 2590 RMAPI.mapMarkerUrl = "@mapMarkerUrl"; 2591 RMAPI.settings_ForgotPwPage = "@settings_ForgotPwPage"; 2592 </script> 2593 2594 @if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString())) 2595 { 2596 <!-- Facebook Pixel Code --> 2597 <script> 2598 !function (f, b, e, v, n, t, s) { 2599 if (f.fbq) return; n = f.fbq = function () { 2600 n.callMethod ? 2601 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 2602 }; 2603 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; 2604 n.queue = []; t = b.createElement(e); t.async = !0; 2605 t.src = v; s = b.getElementsByTagName(e)[0]; 2606 s.parentNode.insertBefore(t, s) 2607 }(window, document, 'script', 2608 'https://connect.facebook.net/en_US/fbevents.js'); 2609 fbq('init', '@settings_Facebook_App_ID'); 2610 fbq('track', 'PageView'); 2611 </script> 2612 <noscript> 2613 <img height="1" width="1" src="https://www.facebook.com/tr?id=@settings_Facebook_App_ID&ev=PageView&noscript=1" /> 2614 </noscript> 2615 <!-- End Facebook Pixel Code --> 2616 } 2617 2618 <script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=5d68cfaf5fea9f001288d9ac&product=inline-share-buttons' async='async'></script> 2619 2620 </head> 2621 2622 <body class="@template@bodyClass" data-spforgotpwtemplate="@forgotPwTemplate" data-spforgotpwsender="@forgotPwSender" data-spforgotpwsubject="@forgotPwSubject" data-spsalesassesmentid="@salesAssessmentPageId"> 2623 @{ 2624 string logoUrl = TemplateUrl + (!Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg"); 2625 } 2626 2627 @if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) && GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID) 2628 { 2629 <div class="top-search"> 2630 <div class="header logo"> 2631 <div class="logo"> 2632 <a href="/erhverv"> 2633 <img src="@logoUrl" alt="RealMæglerne" /> 2634 </a> 2635 </div> 2636 </div> 2637 <div class="top-form mx-auto"> 2638 <form id="main-search-top" class="js-top-search" action="/Default.aspx" method="GET"> 2639 @{ 2640 2641 var settings_BoligListErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : ""; 2642 } 2643 <input type="hidden" name="ID" value='@settings_BoligListErhverv' id="searchPageId-top" disabled="disabled" /> 2644 2645 @if (Context.Current.Request["type"] == "egetforbrug") 2646 { 2647 <input name="type" type="hidden" value="egetforbrug" /> 2648 <input name="investeringsejendom" type="hidden" value="0" /> 2649 } 2650 <div class="row form-wrapper no-gutters"> 2651 <div class="col-xs-12 col-md-4 col-lg-5 col-searchbar"> 2652 <div class="searchbar float-label-container text-left"> 2653 <label class="float-label">@Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer")</label> 2654 <input type="text" name="@querySearchNameAttr" id="searchfield-top" class="search-input js-float-label js-getdata" tabindex="1" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch)" /> 2655 </div> 2656 </div> 2657 <div class="col-xs-12 col-md-5"> 2658 <div class="row no-gutters"> 2659 <div class="col-xs-12 col-md-6 input-col"> 2660 <div class="dropdown w-overlay float-label-container"> 2661 <label class="float-label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">@Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype")</label> 2662 <button class="btn btn-dropdown dropdown-toggle reverse position-absolute-md" type="button" id="Boligtype-frontpage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button> 2663 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype"> 2664 <ul class="bolig-dropdown list-unstyled"> 2665 @{ 2666 RenderBoligTypeErhverv(); 2667 } 2668 </ul> 2669 <span class="border-fat"></span> 2670 <div class="d-none d-md-block"> 2671 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 2672 </div> 2673 <div class="d-flex row d-md-none"> 2674 <div class="col-6"> 2675 <button class="btn btn-danger js-remove-filter">@Translate("Smartpage:Search.Annuller", "Annuller")</button> 2676 </div> 2677 <div class="col-6"> 2678 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 2679 </div> 2680 </div> 2681 </div> 2682 2683 </div> 2684 </div> 2685 <div class="col-xs-12 col-md-6 input-col"> 2686 <div class="btn-dropdown p-3 border-top-bottom-right"> 2687 <ul class="two-column list-unstyled"> 2688 <li> 2689 <label class="checkbox-container"> 2690 @Translate("Smartpage:Search.Erhverv.Leje", "Leje") 2691 <input type="checkbox" name="propertytype" value="leje" class="js-input-check" /> 2692 <span class="checkmark"></span> 2693 </label> 2694 </li> 2695 <li> 2696 <label class="checkbox-container"> 2697 @Translate("Smartpage:Search.Erhverv.Køb", "Køb") 2698 <input type="checkbox" name="propertytype" value="kob" class="js-input-check" /> 2699 <span class="checkmark"></span> 2700 </label> 2701 </li> 2702 </ul> 2703 </div> 2704 2705 </div> 2706 </div> 2707 </div> 2708 <div class="col-xs-12 col-md-3 col-lg-2 d-none d-md-block"> 2709 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 2710 </div> 2711 </div> 2712 </form> 2713 </div> 2714 </div> 2715 } 2716 2717 @if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"])) 2718 { 2719 <div class="header shortcuts"> 2720 <div class="header-shortcuts float-right"> 2721 @if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID) 2722 { 2723 <a href='' class="search-menu d-none d-xl-flex align-items-center float-left border-right js-mainsearch topsearch @searchClass"> 2724 <i class="fa fa-search" aria-hidden="true"></i><span class="search-menu-text hidden d-md-block"> @Translate("Smartpage:Search.Søg", "Søg")</span> 2725 </a> 2726 } 2727 <div class="menu-slide d-flex align-items-center"> 2728 <b></b> 2729 <span class="menu-text hidden d-md-block">Menu</span> 2730 </div> 2731 </div> 2732 2733 2734 </div> 2735 } 2736 else 2737 { 2738 <div class="header__container container"> 2739 <div class="header__logo"> 2740 <a href="/" title=""> 2741 <img src="@(logoUrl)" alt="" /> 2742 </a> 2743 </div> 2744 <div class="header__title"> 2745 <span>@Translate("Custom:Header.Title", "RealMæglerne")</span> 2746 </div> 2747 @if (userID > 0) 2748 { 2749 <div class="header__navigation d-none d-md-flex"> 2750 <div class="header__navigation"> 2751 <div class="header__Link"> 2752 <ul> 2753 <li class="d-flex align-items-center"> 2754 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2755 <path d="M16.6663 17.5C16.6663 16.337 16.6663 15.7555 16.5228 15.2824C16.1996 14.217 15.366 13.3834 14.3006 13.0602C13.8275 12.9167 13.246 12.9167 12.083 12.9167H7.91634C6.75337 12.9167 6.17189 12.9167 5.69872 13.0602C4.63339 13.3834 3.79971 14.217 3.47654 15.2824C3.33301 15.7555 3.33301 16.337 3.33301 17.5M13.7497 6.25C13.7497 8.32107 12.0707 10 9.99967 10C7.92861 10 6.24967 8.32107 6.24967 6.25C6.24967 4.17893 7.92861 2.5 9.99967 2.5C12.0707 2.5 13.7497 4.17893 13.7497 6.25Z" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /> 2756 </svg> 2757 <a class="ml-2" 2758 href="/Default.aspx?ID=@settings_MinSide" 2759 target="_blank" 2760 aria-label="@Translate("Custom:Accessibility.MyAccountLink", "Gå til Mit RealMæglerne - åbner i nyt vindue")"> 2761 @Translate("Mit RealMæglerne") 2762 </a> 2763 </li> 2764 </ul> 2765 </div> 2766 </div> 2767 </div> 2768 2769 } 2770 else 2771 { 2772 <div class="header__navigation d-none d-md-flex"> 2773 <div class="header__navigation"> 2774 <div class="header__Link"> 2775 <ul> 2776 <li class="d-flex align-items-center"> 2777 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2778 <path d="M16.6663 17.5C16.6663 16.337 16.6663 15.7555 16.5228 15.2824C16.1996 14.217 15.366 13.3834 14.3006 13.0602C13.8275 12.9167 13.246 12.9167 12.083 12.9167H7.91634C6.75337 12.9167 6.17189 12.9167 5.69872 13.0602C4.63339 13.3834 3.79971 14.217 3.47654 15.2824C3.33301 15.7555 3.33301 16.337 3.33301 17.5M13.7497 6.25C13.7497 8.32107 12.0707 10 9.99967 10C7.92861 10 6.24967 8.32107 6.24967 6.25C6.24967 4.17893 7.92861 2.5 9.99967 2.5C12.0707 2.5 13.7497 4.17893 13.7497 6.25Z" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /> 2779 </svg> 2780 <a class="ml-2" 2781 href="javascript:panelLogin()" 2782 aria-label="@Translate("Custom:Accessibility.Login", "Login - åbner i sidepanel")"> 2783 @Translate("Login") 2784 </a> 2785 </li> 2786 </ul> 2787 </div> 2788 </div> 2789 </div> 2790 } 2791 <div class="header__search flex-column flex-md-row js-mainsearch"> 2792 @Translate("Søg bolig") 2793 </div> 2794 <div class="header__navigation"> 2795 <div class="header__navigation-icon menu-slide"> 2796 <div class="d-none d-md-block"> 2797 @Translate("Menu") 2798 </div> 2799 </div> 2800 </div> 2801 </div> 2802 } 2803 2804 <div class="search-modal"> 2805 2806 @if (Converter.ToString(Pageview.Area.Item["Type"]) == "real") 2807 { 2808 <div class="main-search-form"> 2809 <i class="fal fa-times float-right fa-2x js-close-search close-search"></i> 2810 <div class="row mb-3 align-items-center"> 2811 <div class="col-xs-12 col-md-3 border-right"> 2812 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3> 2813 </div> 2814 <div class="col-xs-12 col-md-9 home-count d-none d-md-block"> 2815 <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> 2816 2817 </div> 2818 </div> 2819 2820 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET"> 2821 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" /> 2822 <div class="row form-wrapper no-gutters"> 2823 2824 <div class="col-xs-12 col-md-5 col-searchbar"> 2825 <div class="searchbar"> 2826 <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)" /> 2827 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" /> 2828 <input type="hidden" id="zipcodeto" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" /> 2829 </div> 2830 </div> 2831 <div class="col-xs-12 col-md-5"> 2832 <div class="row no-gutters"> 2833 <div class="col-xs-12 col-md-6 input-col"> 2834 <div class="dropdown"> 2835 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 2836 @Translate("Smartpage:Search.Boligtype", "Boligtype") 2837 </button> 2838 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype"> 2839 <ul class="bolig-dropdown list-unstyled"> 2840 @{ 2841 RenderBoligtypeCheckboxesDropdown(); 2842 } 2843 </ul> 2844 <span class="border-fat"></span> 2845 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 2846 </div> 2847 2848 </div> 2849 2850 </div> 2851 <div class="col-xs-12 col-md-6 input-col"> 2852 <div class="dropdown"> 2853 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 2854 @Translate("Smartpage:Search.Pris", "Pris") 2855 </button> 2856 <div class="dropdown-menu box-shadow dropdown-price js-dropdown-price" aria-labelledby="Pris"> 2857 <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"] : "")' /> 2858 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10"> 2859 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option> 2860 @for (var i = 0; i <= 10000000; i += 100000) 2861 { 2862 if (i == 10000000) 2863 { 2864 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option> 2865 } 2866 else 2867 { 2868 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option> 2869 } 2870 } 2871 </select> 2872 2873 <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"] : "")' /> 2874 <select class="form-control js-pricemax-frontpage-select js-input-max-select"> 2875 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option> 2876 @for (var i = 0; i <= 10000000; i += 100000) 2877 { 2878 if (i == 10000000) 2879 { 2880 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option> 2881 } 2882 else 2883 { 2884 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option> 2885 } 2886 } 2887 </select> 2888 </div> 2889 </div> 2890 </div> 2891 </div> 2892 </div> 2893 <div class="col-xs-12 col-md-2 d-none d-md-block"> 2894 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 2895 </div> 2896 </div> 2897 2898 <div class="row moresearch-btn no-gutters"> 2899 <div class="col-sm-12"> 2900 <div class="row align-items-center no-gutters"> 2901 <div class="col-12 col-md-4"> 2902 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch"> 2903 <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> 2904 </button> 2905 </div> 2906 <div class="col-6 col-md-2 mb-xs-4"> 2907 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a> 2908 </div> 2909 </div> 2910 2911 <div class="collapse" id="moreSearch-master"> 2912 2913 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4> 2914 <div class="row align-items-end mb-30"> 2915 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"> 2916 <div class="filter-container row"> 2917 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label> 2918 <div class="col-6 pr-sm-0 pr-2"> 2919 <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"] : "")' /> 2920 <select class="form-control js-boligarealmin-frontpage-select js-count"> 2921 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option> 2922 @for (var i = 0; i <= 300; i += 10) 2923 { 2924 if (i == 300) 2925 { 2926 <option>@i+</option> 2927 } 2928 else 2929 { 2930 <option>@i</option> 2931 } 2932 } 2933 </select> 2934 2935 </div> 2936 <div class="col-6 pl-sm-0 pl-2"> 2937 <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"] : "")' /> 2938 <select class="form-control js-boligarealmax-frontpage-select js-count"> 2939 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option> 2940 @for (var i = 0; i <= 300; i += 10) 2941 { 2942 if (i == 300) 2943 { 2944 <option>@i+</option> 2945 } 2946 else 2947 { 2948 <option>@i</option> 2949 } 2950 } 2951 </select> 2952 2953 </div> 2954 </div> 2955 </div> 2956 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"> 2957 <div class="filter-container row"> 2958 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label> 2959 <div class="col-6 pr-sm-0 pr-2"> 2960 <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"] : "")' /> 2961 <select class="form-control js-grundarealmin-frontpage-select js-count"> 2962 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option> 2963 @for (var i = 0; i <= 10000; i += 100) 2964 { 2965 if (i == 10000) 2966 { 2967 <option>@i+</option> 2968 } 2969 else 2970 { 2971 <option>@i</option> 2972 } 2973 } 2974 </select> 2975 </div> 2976 <div class="col-6 pl-sm-0 pl-2"> 2977 <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"] : "")' /> 2978 <select class="form-control js-grundarealmax-frontpage-select js-count"> 2979 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option> 2980 @for (var i = 0; i <= 10000; i += 100) 2981 { 2982 if (i == 10000) 2983 { 2984 <option>@i+</option> 2985 } 2986 else 2987 { 2988 <option>@i</option> 2989 } 2990 } 2991 </select> 2992 </div> 2993 </div> 2994 </div> 2995 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"> 2996 <div class="filter-container row"> 2997 <label class="d-block col-12">Antal rum</label> 2998 <div class="col-6 pr-sm-0 pr-2"> 2999 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count"> 3000 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option> 3001 @{ 3002 RenderSelectValue("1", "1", "roomsmin"); 3003 RenderSelectValue("2", "2", "roomsmin"); 3004 RenderSelectValue("3", "3", "roomsmin"); 3005 RenderSelectValue("4", "4", "roomsmin"); 3006 RenderSelectValue("5+", "5", "roomsmin"); 3007 } 3008 </select> 3009 </div> 3010 <div class="col-6 pl-sm-0 pl-2"> 3011 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count"> 3012 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option> 3013 @{ 3014 RenderSelectValue("1", "1", "roomsmax"); 3015 RenderSelectValue("2", "2", "roomsmax"); 3016 RenderSelectValue("3", "3", "roomsmax"); 3017 RenderSelectValue("4", "4", "roomsmax"); 3018 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax"); 3019 } 3020 </select> 3021 </div> 3022 </div> 3023 </div> 3024 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"> 3025 <div class="row"> 3026 <div class="col-12 pr-2"> 3027 <div class="filter-container"> 3028 <label class="d-block">Energimærke</label> 3029 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count"> 3030 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Vælg", "Vælg")</option> 3031 <option value="01">G</option> 3032 <option value="02">F</option> 3033 <option value="03">E</option> 3034 <option value="04">D</option> 3035 <option value="05">C</option> 3036 <option value="06">B</option> 3037 <option value="07">A</option> 3038 <option value="08">A2010</option> 3039 <option value="09">A2015</option> 3040 <option value="10">A2020+</option> 3041 </select> 3042 </div> 3043 </div> 3044 </div> 3045 </div> 3046 <div class="col-12 col-sm-6 col-lg-3 mt-3"> 3047 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4> 3048 <div class="filter-container row"> 3049 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label> 3050 <div class="col-6 pr-sm-0 pr-2"> 3051 <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"] : "")' /> 3052 <select class="form-control js-subsidymin-frontpage-select js-count"> 3053 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option> 3054 @for (var i = 0; i <= 25000; i += 1250) 3055 { 3056 if (i == 25000) 3057 { 3058 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option> 3059 } 3060 else 3061 { 3062 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option> 3063 } 3064 } 3065 </select> 3066 </div> 3067 <div class="col-6 pl-sm-0 pl-2"> 3068 <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"] : "")' /> 3069 <select class="form-control js-subsidymax-frontpage-select js-count"> 3070 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option> 3071 @for (var i = 0; i <= 25000; i += 1250) 3072 { 3073 if (i == 25000) 3074 { 3075 <option value="@Converter.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option> 3076 } 3077 else 3078 { 3079 <option value="@Converter.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option> 3080 } 3081 } 3082 </select> 3083 </div> 3084 </div> 3085 </div> 3086 <div class="col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0"> 3087 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button> 3088 </div> 3089 </div> 3090 </div> 3091 </div> 3092 </div> 3093 <div class="row d-block d-md-none form-wrapper no-gutters"> 3094 <div class="col-xs-12 col-md-2"> 3095 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 3096 </div> 3097 </div> 3098 3099 3100 </form> 3101 </div> 3102 } 3103 else 3104 { 3105 <div class="main-search-form center"> 3106 <i class="fal fa-times float-right fa-2x js-close-search"></i> 3107 <div class="row mb-3 align-items-center"> 3108 <div class="col-xs-12 col-md-5 border-right"> 3109 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3> 3110 </div> 3111 <div class="col-xs-12 col-md-7 home-count d-none d-md-block"> 3112 <span class="search-count" id="searchCounterMain">0</span> <span>@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")</span> 3113 </div> 3114 </div> 3115 3116 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET"> 3117 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" /> 3118 <div class="row form-wrapper no-gutters"> 3119 3120 <div class="col-12 mb-10"> 3121 <div class="searchbar"> 3122 <input type="text" name="@querySearchNameAttr" id="searchfield" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value='@querySearch' /> 3123 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value='@queryZipCodeFrom' /> 3124 <input type="hidden" id="zipcodeto" name="zipcodeto" value='@queryZipCodeTo' /> 3125 </div> 3126 </div> 3127 <div class="col-xs-12 col-md-8"> 3128 <div class="row no-gutters"> 3129 <div class="col-xs-12 col-md-6 input-col"> 3130 <div class="dropdown"> 3131 <button class="btn btn-dropdown dropdown-toggle reverse js-count" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 3132 @Translate("Smartpage:Search.Boligtype", "Boligtype") 3133 </button> 3134 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype"> 3135 <ul class="bolig-dropdown list-unstyled"> 3136 @{ 3137 RenderBoligtypeCheckboxesDropdown(); 3138 } 3139 </ul> 3140 <span class="border-fat"></span> 3141 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 3142 </div> 3143 3144 </div> 3145 3146 </div> 3147 <div class="col-xs-12 col-md-6 input-col"> 3148 <div class="dropdown"> 3149 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 3150 @Translate("Smartpage:Search.Pris", "Pris") 3151 </button> 3152 <div class="dropdown-menu box-shadow dropdown-price" aria-labelledby="Pris"> 3153 <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")' /> 3154 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10"> 3155 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option> 3156 @for (var i = 0; i <= 10000000; i += 100000) 3157 { 3158 if (i == 10000000) 3159 { 3160 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Converter.ToInt32(i).ToString("N0")+</option> 3161 } 3162 else 3163 { 3164 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Converter.ToInt32(i).ToString("N0")</option> 3165 } 3166 } 3167 </select> 3168 3169 <input type="text" name="pricemax" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")' /> 3170 <select class="form-control js-pricemax-frontpage-select js-input-max-select"> 3171 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option> 3172 @for (var i = 0; i <= 10000000; i += 100000) 3173 { 3174 if (i == 10000000) 3175 { 3176 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Converter.ToInt32(i).ToString("N0")+</option> 3177 } 3178 else 3179 { 3180 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Converter.ToInt32(i).ToString("N0")</option> 3181 } 3182 } 3183 </select> 3184 </div> 3185 </div> 3186 </div> 3187 </div> 3188 </div> 3189 <div class="col-xs-12 col-md-4 d-none d-md-block"> 3190 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 3191 </div> 3192 </div> 3193 3194 <div class="row moresearch-btn no-gutters"> 3195 <div class="col-sm-12"> 3196 <div class="row align-items-center no-gutters"> 3197 <div class="col-12 col-md-5"> 3198 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch-master"> 3199 <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> 3200 </button> 3201 </div> 3202 <div class="col-6 col-md-3 mb-xs-4"> 3203 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a> 3204 </div> 3205 <div class="col-6 col-md-4 mb-xs-4"> 3206 <div class="parent-purchases"> 3207 <label class="checkbox-container white"> 3208 @Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet") 3209 <input type="checkbox" name="foraeldrekoebegnet" value="true" class="js-input-check"> 3210 <span class="checkmark grey"></span> 3211 </label> 3212 </div> 3213 </div> 3214 </div> 3215 3216 <div class="collapse" id="moreSearch-master"> 3217 3218 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4> 3219 <div class="row align-items-end mb-30"> 3220 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"> 3221 <div class="filter-container row"> 3222 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label> 3223 <div class="col-6 pr-sm-0 pr-2"> 3224 <input type="text" name="boligarealmin" id="boligarealmin" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' /> 3225 <select class="form-control js-boligarealmin-frontpage-select js-count"> 3226 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option> 3227 @for (var i = 0; i <= 300; i += 10) 3228 { 3229 if (i == 300) 3230 { 3231 <option>@i+</option> 3232 } 3233 else 3234 { 3235 <option>@i</option> 3236 } 3237 } 3238 </select> 3239 </div> 3240 <div class="col-6 pl-sm-0 pl-2"> 3241 <input type="text" name="boligarealmax" id="boligarealmax" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' /> 3242 <select class="form-control js-boligarealmax-frontpage-select js-count"> 3243 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option> 3244 @for (var i = 0; i <= 300; i += 10) 3245 { 3246 if (i == 300) 3247 { 3248 <option>@i+</option> 3249 } 3250 else 3251 { 3252 <option>@i</option> 3253 } 3254 } 3255 </select> 3256 </div> 3257 </div> 3258 </div> 3259 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"> 3260 <div class="filter-container row"> 3261 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label> 3262 <div class="col-6 pr-sm-0 pr-2"> 3263 <input type="text" name="grundarealmin" id="grundarealmin" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' /> 3264 <select class="form-control js-grundarealmin-frontpage-select js-count"> 3265 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option> 3266 @for (var i = 0; i <= 10000; i += 100) 3267 { 3268 if (i == 10000) 3269 { 3270 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option> 3271 } 3272 else 3273 { 3274 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option> 3275 } 3276 } 3277 </select> 3278 </div> 3279 <div class="col-6 pl-sm-0 pl-2"> 3280 <input type="text" name="grundarealmax" id="grundarealmax" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' /> 3281 <select class="form-control js-grundarealmax-frontpage-select"> 3282 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option> 3283 @for (var i = 0; i <= 10000; i += 100) 3284 { 3285 if (i == 10000) 3286 { 3287 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option> 3288 } 3289 else 3290 { 3291 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option> 3292 } 3293 } 3294 </select> 3295 </div> 3296 </div> 3297 </div> 3298 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"> 3299 <div class="filter-container row"> 3300 <label class="d-block col-12">Antal rum</label> 3301 3302 <div class="col-6 pr-sm-0 pr-2"> 3303 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count"> 3304 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option> 3305 <option value="1">1</option> 3306 <option value="2">2</option> 3307 <option value="3">3</option> 3308 <option value="4">4</option> 3309 <option value="5">5+</option> 3310 </select> 3311 </div> 3312 <div class="col-6 pl-sm-0 pl-2"> 3313 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count"> 3314 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option> 3315 <option value="1">1</option> 3316 <option value="2">2</option> 3317 <option value="3">3</option> 3318 <option value="4">4</option> 3319 <option value="5">5+</option> 3320 </select> 3321 </div> 3322 </div> 3323 </div> 3324 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"> 3325 <div class="row"> 3326 <div class="col-12 pr-2"> 3327 <div class="filter-container"> 3328 <label class="d-block">Energimærke</label> 3329 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count"> 3330 <option disabled selected="selected">@Translate("Smartpage:Search.Vælg", "Vælg")</option> 3331 <option value="01">G</option> 3332 <option value="02">F</option> 3333 <option value="03">E</option> 3334 <option value="04">D</option> 3335 <option value="05">C</option> 3336 <option value="06">B</option> 3337 <option value="07">A</option> 3338 <option value="08">A2010</option> 3339 <option value="09">A2015</option> 3340 <option value="10">A2020+</option> 3341 </select> 3342 </div> 3343 </div> 3344 </div> 3345 </div> 3346 <div class="col-12 col-sm-6 col-lg-6 mt-3"> 3347 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4> 3348 <div class="filter-container row"> 3349 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label> 3350 <div class="col-6 pr-sm-0 pr-2"> 3351 <input type="text" name="subsidymin" id="subsidymin" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Min", "Min")' /> 3352 <select class="form-control js-subsidymin-frontpage-select js-count"> 3353 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option> 3354 @for (var i = 0; i <= 25000; i += 1250) 3355 { 3356 if (i == 25000) 3357 { 3358 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option> 3359 } 3360 else 3361 { 3362 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option> 3363 } 3364 } 3365 </select> 3366 </div> 3367 <div class="col-6 pl-sm-0 pl-2"> 3368 <input type="text" name="subsidymax" id="subsidymax" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Max", "Max")' /> 3369 <select class="form-control js-subsidymax-frontpage-select js-count"> 3370 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option> 3371 @for (var i = 0; i <= 25000; i += 1250) 3372 { 3373 if (i == 25000) 3374 { 3375 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option> 3376 } 3377 else 3378 { 3379 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option> 3380 } 3381 } 3382 </select> 3383 </div> 3384 </div> 3385 </div> 3386 <div class="col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0"> 3387 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button> 3388 </div> 3389 </div> 3390 </div> 3391 </div> 3392 </div> 3393 <div class="row d-block d-md-none form-wrapper no-gutters"> 3394 <div class="col-xs-12 col-md-2"> 3395 <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> 3396 </div> 3397 </div> 3398 3399 3400 </form> 3401 </div> 3402 } 3403 </div> 3404 3405 @{ 3406 RenderSlideMenu(false, Convert.ToString(settings_Maeglersogning)); 3407 } 3408 3409 @if (isBrokerPage) 3410 { 3411 <section class="maegler-navbar"> 3412 @RenderNavigation(new 3413 { 3414 id = "navbar-main", 3415 cssclass = "dwnavigation", 3416 template = "ul_li.xslt", 3417 StartLevel = 1, 3418 EndLevel = 1 3419 }) 3420 </section> 3421 } 3422 3423 <div class="visual-editor"> 3424 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 3425 3426 3427 @using Dynamicweb.Content.Items 3428 @using Dynamicweb.Rapido.Blocks.Components 3429 @using Dynamicweb.Rapido.Blocks.Components.Articles 3430 @using Dynamicweb.Rapido.Blocks.Components.General 3431 @using Dynamicweb.Rapido.Blocks 3432 3433 3434 @functions { 3435 BlocksPage articleListPage = BlocksPage.GetBlockPage("ArticleListPage"); 3436 } 3437 3438 @{ 3439 int pageId = Model.ID; 3440 bool enableArticlesInFocus = Model.Item.GetBoolean("EnableArticlesInFocus"); 3441 bool enablePopular = Model.Item.GetBoolean("EnablePopularArticles"); 3442 bool showTitle = Model.Item.GetBoolean("ShowTitle"); 3443 bool showFilters = Model.Item.GetBoolean("ShowFilters"); 3444 bool showCategoryFilter = Model.Item.GetBoolean("ShowCategoryFilter"); 3445 bool showSearch = Model.Item.GetBoolean("ShowSearch"); 3446 string dynamicListWidth = enablePopular ? "8" : "12"; 3447 string itemType = Pageview.Item["ItemTypeName"] != null ? Pageview.Item["ItemTypeName"].ToString() : "DynamicArticle"; 3448 3449 Dictionary<string, string> categoriesList = new Dictionary<string, string>(); 3450 categoriesList.Add(Translate("All"), ""); 3451 3452 foreach (Dynamicweb.Content.Page page in Dynamicweb.Services.Pages.GetPagesByParentID(pageId)) 3453 { 3454 if (Dynamicweb.Services.Pages.GetPagesByParentID(page.ID).Any()) 3455 { 3456 categoriesList.Add(page.GetDisplayName(), page.ID.ToString()); 3457 } 3458 } 3459 3460 var articleItemTypeFields = ItemManager.Metadata.GetItemType("DynamicArticle").Fields; 3461 string filterOneLabel = articleItemTypeFields.Find("FilterOne") != null ? articleItemTypeFields.Find("FilterOne").Name : ""; 3462 string filterTwoLabel = articleItemTypeFields.Find("FilterTwo") != null ? articleItemTypeFields.Find("FilterTwo").Name : ""; 3463 string filterThreeLabel = articleItemTypeFields.Find("FilterThree") != null ? articleItemTypeFields.Find("FilterThree").Name : ""; 3464 3465 var filterOneOptions = articleItemTypeFields.Find("FilterOne") != null ? articleItemTypeFields.Find("FilterOne").Options.Values : null; 3466 var filterTwoOptions = articleItemTypeFields.Find("FilterTwo") != null ? articleItemTypeFields.Find("FilterTwo").Options.Values : null; 3467 var filterThreeOptions = articleItemTypeFields.Find("FilterThree") != null ? articleItemTypeFields.Find("FilterThree").Options.Values : null; 3468 3469 Block listPageContainer = new Block 3470 { 3471 Id = "ArticleListPageContainer", 3472 SortId = 10, 3473 Design = new Design 3474 { 3475 RenderType = RenderType.Row 3476 }, 3477 BlocksList = new List<Block> { 3478 new Block { 3479 Id = "ArticleListPageHeader", 3480 SortId = 20, 3481 Design = new Design 3482 { 3483 RenderType = RenderType.Column, 3484 Size = "12" 3485 }, 3486 BlocksList = new List<Block> { 3487 new Block { 3488 Id = "ArticleListPageHeaderRow", 3489 SortId = 10, 3490 Design = new Design 3491 { 3492 RenderType = RenderType.Row 3493 }, 3494 BlocksList = new List<Block> { 3495 new Block { 3496 Id = "ArticleListFilters", 3497 SortId = 30, 3498 Design = new Design { 3499 RenderType = RenderType.Column, 3500 Size = "10", 3501 CssClass = "grid__cell" 3502 } 3503 } 3504 } 3505 } 3506 } 3507 } 3508 } 3509 }; 3510 articleListPage.Add(listPageContainer); 3511 3512 if (Pageview.Device.ToString() == "Mobile" || Pageview.Device.ToString() == "Tablet") { 3513 Block listFilters = articleListPage.GetBlockById("ArticleListFilters"); 3514 listFilters.Template = RenderMobileFilters(listFilters.BlocksList); 3515 listFilters.SkipRenderBlocksList = true; 3516 } 3517 3518 if (showTitle) { 3519 Block titleBlock = new Block 3520 { 3521 Id = "ArticleListTitle", 3522 SortId = 10, 3523 Component = new Heading { Title = Pageview.Item["Title"].ToString(), Level = 2 }, 3524 Design = new Design 3525 { 3526 RenderType = RenderType.Column, 3527 Size = "2" 3528 } 3529 }; 3530 articleListPage.Add("ArticleListPageHeaderRow", titleBlock); 3531 } 3532 3533 if (showSearch) 3534 { 3535 Block searchFilter = new Block 3536 { 3537 Id = "ArticleListSearch", 3538 SortId = 10, 3539 Component = new ArticleListSearch { } 3540 }; 3541 articleListPage.Add("ArticleListFilters", searchFilter); 3542 } 3543 3544 if (showCategoryFilter) 3545 { 3546 Block categoryFilter = new Block 3547 { 3548 Id = "ArticleListCategoryFilter", 3549 SortId = 20, 3550 Component = new ArticleListCategoryFilter { Categories = categoriesList } 3551 }; 3552 articleListPage.Add("ArticleListFilters", categoryFilter); 3553 } 3554 3555 Block listBody = new Block 3556 { 3557 Id = "ArticleListPageBody", 3558 SortId = 30, 3559 Design = new Design 3560 { 3561 RenderType = RenderType.Column, 3562 Size = dynamicListWidth 3563 } 3564 }; 3565 articleListPage.Add("ArticleListPageContainer", listBody); 3566 3567 Block listBodyRow = new Block 3568 { 3569 Id = "ArticleListPageBodyRow", 3570 SortId = 10, 3571 Design = new Design 3572 { 3573 RenderType = RenderType.Row 3574 } 3575 }; 3576 articleListPage.Add("ArticleListPageBody", listBodyRow); 3577 3578 if (enableArticlesInFocus) { 3579 Block listInFocus = new Block 3580 { 3581 Id = "ArticleListInFocus", 3582 SortId = 10, 3583 Component = new ArticleList { Filter = "InFocus=True", Template = "ItemPublisher/List/FocusList.cshtml", PageSize = Convert.ToInt32(Pageview.Item["ArticlesInFocusListSize"].ToString()), ItemType = itemType }, 3584 Design = new Design 3585 { 3586 RenderType = RenderType.Column, 3587 Size = "12", 3588 HidePadding = true 3589 } 3590 }; 3591 articleListPage.Add("ArticleListPageBodyRow", listInFocus); 3592 } 3593 3594 Block listMain = new Block 3595 { 3596 Id = "ArticleListMain", 3597 SortId = 20, 3598 Component = new ArticleList { Template = "ItemPublisher/List/DynamicList.cshtml", PageSize = Convert.ToInt32(Pageview.Item["ArticlesListSize"].ToString()), ItemType = itemType }, 3599 Design = new Design 3600 { 3601 RenderType = RenderType.Column, 3602 Size = "12", 3603 HidePadding = true 3604 } 3605 }; 3606 articleListPage.Add("ArticleListPageBodyRow", listMain); 3607 3608 if (enablePopular) 3609 { 3610 Block listPopular = new Block 3611 { 3612 Id = "ArticleListPopular", 3613 SortId = 30, 3614 Component = new ArticleList { Template = "ItemPublisher/List/SimpleList.cshtml", PageSize = Convert.ToInt32(Pageview.Item["PopularArticlesListSize"].ToString()), ItemType = itemType }, 3615 Design = new Design 3616 { 3617 RenderType = RenderType.Column, 3618 Size = "4", 3619 CssClass = "u-padding--lg" 3620 } 3621 }; 3622 articleListPage.Add("ArticleListPageContainer", listPopular); 3623 } 3624 3625 if (showFilters) { 3626 if (filterOneOptions != null) 3627 { 3628 Block filterOne = new Block 3629 { 3630 Id = "ArticleListFilterOne", 3631 SortId = 30, 3632 Component = new ArticleListFilter { Options = filterOneOptions, Label = filterOneLabel, SystemName = "FilterOne" } 3633 }; 3634 articleListPage.Add("ArticleListFilters", filterOne); 3635 } 3636 3637 if (filterTwoOptions != null) 3638 { 3639 Block filterTwo = new Block 3640 { 3641 Id = "ArticleListFilterTwo", 3642 SortId = 40, 3643 Component = new ArticleListFilter { Options = filterTwoOptions, Label = filterTwoLabel, SystemName = "FilterTwo" } 3644 }; 3645 articleListPage.Add("ArticleListFilters", filterTwo); 3646 } 3647 3648 if (filterThreeOptions != null) 3649 { 3650 Block filterThree = new Block 3651 { 3652 Id = "ArticleListFilterThree", 3653 SortId = 50, 3654 Component = new ArticleListFilter { Options = filterThreeOptions, Label = filterThreeLabel, SystemName = "FilterThree" } 3655 }; 3656 articleListPage.Add("ArticleListFilters", filterThree); 3657 } 3658 } 3659 } 3660 3661 3662 @* The @RenderBlockList base helper is included in Components/GridBuilder.cshtml *@ 3663 3664 @RenderBlockList(articleListPage.BlocksRoot.BlocksList) 3665 3666 3667 <script> 3668 document.getElementById("Page").classList.add("u-color-light-gray--bg"); 3669 </script> 3670 </div> 3671 3672 @if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true) 3673 { 3674 string bName = MyBroker.Broker.Name; 3675 string bClass = "na"; 3676 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 3677 3678 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName)) 3679 { 3680 bName = MyBroker.Broker.CompanyName; 3681 } 3682 try 3683 { 3684 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl"); 3685 if (!string.IsNullOrEmpty(imgUrl)) 3686 { 3687 bImage = imgUrl; 3688 bClass = ""; 3689 } 3690 } 3691 catch 3692 { 3693 // Ignore 3694 } 3695 3696 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId"); 3697 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 3698 3699 <section class="din-maegler"> 3700 <div class="img-wrapper @bClass" style="background-image:url('@bImage')"></div> 3701 <div class="container"> 3702 <div class="col-12 col-sm-12 col-md-6 offset-md-6"> 3703 <h2>Din personlige mægler</h2> 3704 <div class="row"> 3705 <div class="col-12 col-sm-6"> 3706 <p> 3707 <b class="my-broker-name">@MyBroker.Employee.Name</b><br> 3708 @if (!string.IsNullOrEmpty(MyBroker.Employee.Email)) 3709 { 3710 <text>Mail: <a href="mailto:@(ExtractMaskedEmail(MyBroker.Employee.Email))" class="my-broker-email">@ExtractMaskedEmail(MyBroker.Employee.Email)</a><br></text> 3711 } 3712 @if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile)) 3713 { 3714 <text>Tlf.: <a href="tel:@(MyBroker.Employee.PhoneMobile)" class="my-broker-phone">@FormatPhoneNumber(MyBroker.Employee.PhoneMobile)</a></text> 3715 } 3716 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 3717 { 3718 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-phone">@FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text> 3719 } 3720 </p> 3721 </div> 3722 <div class="col-12 col-sm-6"> 3723 <p> 3724 <b class="my-broker-company-name">@bName</b><br> 3725 <span class="my-broker-company-address">@MyBroker.Broker.Address</span><br> 3726 <span class="my-broker-company-zip">@MyBroker.Broker.ZipCode</span> <span class="my-broker-company-city">@MyBroker.Broker.City</span><br> 3727 @if (!string.IsNullOrEmpty(bEmail)) 3728 { 3729 <text>Mail: <a href="mailto:@(bEmail)" class="my-broker-broker-email">@bEmail</a><br></text> 3730 } 3731 @if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 3732 { 3733 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-broker-phone">@FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text> 3734 } 3735 </p> 3736 </div> 3737 </div> 3738 <div class="row"> 3739 <br /> 3740 <div class="col-12 col-sm-6"> 3741 <a href="/@medlemsnummer.Substring(1)" class="btn btn-primary btn-block my-broker-company-url">Til mæglerens side</a> 3742 </div> 3743 3744 </div> 3745 </div> 3746 </div> 3747 </section> 3748 } 3749 <footer> 3750 <div class="container"> 3751 <div class="row"> 3752 @{ 3753 var navigationSettings = new NavigationSettings(); 3754 navigationSettings.StartLevel = 1; 3755 navigationSettings.StopLevel = 3; 3756 navigationSettings.ExpandMode = ExpandMode.All; 3757 navigationSettings.RootAreaId = 1; 3758 navigationSettings.RootNavigationTag = "footer-nav"; 3759 3760 } 3761 @Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings) 3762 </div> 3763 </div> 3764 </footer> 3765 3766 @if (Model.CurrentUser?.ID <= 0) 3767 { 3768 <div id="panel-login" class="panel panel-form"> 3769 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 3770 <b></b> 3771 </button> 3772 <div class="loginform login"> 3773 @if (loginParagraphId > 0) 3774 { 3775 <text> 3776 @RenderParagraphContent(loginParagraphId) 3777 </text> 3778 } 3779 </div> 3780 <div class="loginform register js-register-form-wrapper" style="display: none;"> 3781 @if (createUserParagraphId > 0) 3782 { 3783 <text> 3784 @RenderParagraphContent(createUserParagraphId) 3785 </text> 3786 } 3787 </div> 3788 <div class="loginform forgotpw" style="display: none;"> 3789 <h2 class="forgotpw-reg">@Translate("forgot-pw-reg-title", "Glemt adgangskode")</h2> 3790 <h2 class="forgotpw-broker">@Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")</h2> 3791 <form id="forgotPwForm" class="form-body" method="post" action=""> 3792 <input type="hidden" id="AccessUserShopID" name="AccessUserShopID" value="SHOP6" /> 3793 <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> 3794 <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> 3795 <div class="form-group"> 3796 <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 /> 3797 </div> 3798 <button class="btn btn-primary btn-block" type="submit">@Translate("forgot-pw-cta", "Nulstil adgangskode")</button> 3799 <br /> 3800 <div id="submitMessage"></div> 3801 </form> 3802 </div> 3803 </div> 3804 } 3805 3806 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 3807 @using Dynamicweb.Security.UserManagement 3808 3809 @{ 3810 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"); 3811 } 3812 3813 <div id="panel-kontakt-koeberraadgivning" class="panel panel-form"> 3814 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 3815 <b></b> 3816 </button> 3817 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2> 3818 <form id="form-koeberraadgivning" method="POST" action="/InboxHandler"> 3819 <div class="form-group"> 3820 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 3821 <input class="form-control" type="text" name="navn" tabindex="1" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required /> 3822 </div> 3823 <div class="form-group"> 3824 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 3825 <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='@UserContext.Current.User?.Email' required /> 3826 </div> 3827 <div class="form-group row mb-4"> 3828 <div class="col-6"> 3829 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 3830 <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='@UserContext.Current.User?.Phone' required /> 3831 </div> 3832 <div class="col-6"> 3833 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 3834 <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='@UserContext.Current?.User?.Phone' /> 3835 </div> 3836 </div> 3837 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 3838 <div class="form-group row"> 3839 <div class="col-4"> 3840 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 3841 <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 /> 3842 <input type="hidden" class="js-postnummer-validation" /> 3843 </div> 3844 <div class="col-8"> 3845 <label><strong>@Translate("form-city", "By")*</strong></label> 3846 <input class="form-control js-city" type="text" readonly /> 3847 </div> 3848 </div> 3849 <div class="form-group overflow-unset"> 3850 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 3851 <input class="form-control js-validate-address" type="text" name="adresse" tabindex="6" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' required /> 3852 3853 <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> 3854 </div> 3855 <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"> 3856 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 3857 </button> 3858 <div class="collapse" id="kontaktkoeberrradgiver-collapse"> 3859 <div class="form-group"> 3860 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 3861 </div> 3862 </div> 3863 3864 <div class="form-group"> 3865 <div class="row"> 3866 <div class="col-12"> 3867 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button> 3868 </div> 3869 </div> 3870 </div> 3871 <div class="form-group mt-3"> 3872 <div class="checkbox"> 3873 <label> 3874 <input type="checkbox" name="kontaktmigok" required /> 3875 3876 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 3877 3878 </label> 3879 </div> 3880 </div> 3881 <div class="form-group form-group-terms"> 3882 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 3883 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 3884 </div> 3885 3886 <input type="hidden" name="fn" value="krk" /> 3887 <input type="hidden" name="origin" value="" /> 3888 <input type="hidden" name="brugerId" value="" /> 3889 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 3890 <input type="hidden" name="butikId" value="@butikId" /> 3891 <input type="hidden" name="ejendomstype" value="" /> 3892 <input type="hidden" name="salgspris" value="" /> 3893 <input type="hidden" name="modtager" value="" /> 3894 </form> 3895 <div id="tak-kontakt-advisor" style="display:none;"> 3896 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 3897 <div class="row"> 3898 <div class="col-6"> 3899 <img src="" class="img-fluid js-maegler-img" /> 3900 </div> 3901 <div class="col-6"> 3902 <p class="js-maegler-name"></p> 3903 <p class="js-maegler-address"></p> 3904 <p class="js-maegler-phone"></p> 3905 <p class="js-maegler-mail"></p> 3906 </div> 3907 </div> 3908 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 3909 </div> 3910 </div> 3911 3912 <!--ÅBENT HUS--> 3913 <div id="panel-aabenthus" class="panel panel-form"> 3914 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 3915 <b></b> 3916 </button> 3917 3918 3919 <form id="form-aabenthus" method="POST" action="/InboxHandler"> 3920 <h2>@Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")</h2> 3921 <div class="d-block"> 3922 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label> 3923 </div> 3924 <div class="d-block"> 3925 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label> 3926 </div> 3927 <div class="d-block mb-4"> 3928 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label> 3929 </div> 3930 <h3>@Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")</h3> 3931 <div class="form-group"> 3932 <label for="aabenthus-name"><strong>@Translate("form-navn", "Navn")*</strong></label> 3933 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current?.User?.Name' required /> 3934 </div> 3935 <div class="form-group"> 3936 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 3937 <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='@UserContext.Current.User?.Email' required /> 3938 </div> 3939 <div class="form-group row"> 3940 <div class="col-6"> 3941 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 3942 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required /> 3943 </div> 3944 <div class="col-6"> 3945 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 3946 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current.User?.Phone' /> 3947 </div> 3948 </div> 3949 <div class="form-group"> 3950 <div class="row"> 3951 <div class="col-12"> 3952 <button type="submit" class="btn btn-block btn-green">@Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")</button> 3953 </div> 3954 </div> 3955 </div> 3956 <div class="form-group"> 3957 <div class="checkbox"> 3958 <label> 3959 <input type="checkbox" name="kontaktmigok" required /> 3960 3961 <span class="base-color">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 3962 3963 </label> 3964 </div> 3965 </div> 3966 <div class="form-group"> 3967 @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>") 3968 3969 </div> 3970 <input type="hidden" name="fn" value="ah" /> 3971 <input type="hidden" name="origin" value="" /> 3972 <input type="hidden" name="brugerId" value="@userID" /> 3973 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 3974 <input type="hidden" name="butikId" value="@butikId" /> 3975 <input type="hidden" name="sagsaddresse" value="" class="js-aabenthus-address-input" /> 3976 <input type="hidden" name="ejendomstype" value="" /> 3977 <input type="hidden" name="salgspris" value="" /> 3978 <input type="hidden" name="modtager" value="" /> 3979 <input type="hidden" name="employee" value="" /> 3980 <input type="hidden" name="sagsnr" value="" class="js-sagsnr" /> 3981 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 3982 <input type="hidden" name="aftaleid" value="" class="js-aftaleid" /> 3983 3984 <input type="hidden" name="dateMail" class="js-aabenthus-date-input" /> 3985 <input type="hidden" name="timeMail" class="js-aabenthus-time-input" /> 3986 <input type="hidden" name="brokerImageMail" class="property-broker-image-input" /> 3987 <input type="hidden" name="employeeNameMail" class="js-maegler-employee-name-input" /> 3988 <input type="hidden" name="employeeTitleMail" class="js-maegler-employee-title-input" /> 3989 <input type="hidden" name="employeeMailMail" class="js-maegler-mail-input" /> 3990 <input type="hidden" name="employeeMobileMail" class="js-maegler-mobile-input" /> 3991 <input type="hidden" name="employeePhoneMail" class="js-maegler-phone-input" /> 3992 3993 <input type="hidden" name="brokerNameMail" class="js-broker-name-input" /> 3994 <input type="hidden" name="brokerAddressMail" class="js-broker-address-input" /> 3995 <input type="hidden" name="brokerPhoneMail" class="js-broker-phone-input" /> 3996 </form> 3997 <div id="tak-aabenthus" style="display:none;"> 3998 <h2>@Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")</h2> 3999 <div class="d-block"> 4000 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label> 4001 </div> 4002 <div class="d-block"> 4003 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label> 4004 4005 </div> 4006 <div class="d-block mb-4"> 4007 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label> 4008 4009 </div> 4010 4011 <div class="js-employee"> 4012 <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> 4013 </div> 4014 <div class="js-not-employee"> 4015 <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> 4016 </div> 4017 4018 <div class="row"> 4019 <div class="js-employee"> 4020 <div class="col-12 js-maegler-img aabenthus-image"> 4021 <div class="property-broker-image" style=""></div> 4022 4023 </div> 4024 </div> 4025 <div class="col-12"> 4026 <div class="bg-base"> 4027 4028 <div class="js-employee"> 4029 <h4 class="js-maegler-employee-name"></h4> 4030 <div class="icon-container"> 4031 <i class="fas fa-envelope"></i> <span class="js-maegler-mail"></span> 4032 </div> 4033 <div class="icon-container"> 4034 <i class="fas fa-phone"></i> <span class="js-maegler-mobile"></span> 4035 </div> 4036 </div> 4037 4038 4039 <h4 class="js-maegler-name"></h4> 4040 <div class="icon-container"> 4041 <i class="fas fa-map-marker-alt"></i> <span class="js-maegler-address"></span> 4042 </div> 4043 <div class="icon-container"> 4044 <i class="fas fa-phone"></i> <span class="js-maegler-phone"></span> 4045 4046 </div> 4047 <a class="btn btn-border" onclick="panelKontaktmaeglerGuldkoeber()">KONTAKT MÆGLER</a> 4048 </div> 4049 </div> 4050 </div> 4051 </div> 4052 </div> 4053 4054 <!-- KONTAKT GULDKØBER --> 4055 <div id="panel-kontakt-guldkoeber" class="panel panel-form"> 4056 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 4057 <b></b> 4058 </button> 4059 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2> 4060 <form id="form-kontaktmaegler" method="POST" action="/InboxHandler"> 4061 <div class="form-group"> 4062 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 4063 <input class="form-control" type="text" name="navn" placeholder='@Translate("form-navn", "Navn")' value='@UserContext.Current.User?.Name' required /> 4064 </div> 4065 <div class="form-group"> 4066 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 4067 <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='@UserContext.Current.User?.Email' required /> 4068 </div> 4069 <div class="form-group row mb-4"> 4070 <div class="col-6"> 4071 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 4072 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required /> 4073 </div> 4074 <div class="col-6"> 4075 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 4076 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current.User?.Phone' /> 4077 </div> 4078 </div> 4079 <div class="form-group row"> 4080 <div class="col-4"> 4081 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 4082 <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 /> 4083 <input type="hidden" class="js-postnummer-validation" /> 4084 </div> 4085 <div class="col-8"> 4086 <label><strong>@Translate("form-city", "By")*</strong></label> 4087 <input class="form-control js-city" type="text" readonly /> 4088 </div> 4089 </div> 4090 4091 <div class="form-group overflow-unset"> 4092 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 4093 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 4094 <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> 4095 </div> 4096 <div class="form-group"> 4097 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 4098 </div> 4099 <div class="form-group"> 4100 <div class="checkbox"> 4101 <label> 4102 <input type="checkbox" name="kontaktmigok" required /> 4103 4104 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 4105 4106 </label> 4107 </div> 4108 </div> 4109 <div class="form-group"> 4110 <div class="row"> 4111 <div class="col-12"> 4112 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button> 4113 </div> 4114 </div> 4115 </div> 4116 <div class="form-group form-group-terms"> 4117 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 4118 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 4119 </div> 4120 <input type="hidden" name="fn" value="gk" /> 4121 <input type="hidden" name="origin" value="" /> 4122 <input type="hidden" name="brugerId" value="@userID" /> 4123 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 4124 <input type="hidden" name="butikId" value="@butikId" /> 4125 <input type="hidden" name="ejendomstype" value="" /> 4126 <input type="hidden" name="salgspris" value="" /> 4127 <input type="hidden" name="modtager" value="" /> 4128 <input type="hidden" name="employee" value="" /> 4129 </form> 4130 <div id="tak-kontakt-maegler-guldkoeber" style="display:none;"> 4131 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 4132 <p>@Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")</p> 4133 <div class="row"> 4134 <div class="col-6"> 4135 <img src="" class="img-fluid js-maegler-img" /> 4136 </div> 4137 <div class="col-6"> 4138 <p class="js-maegler-name"></p> 4139 <p class="js-maegler-address"></p> 4140 <p class="js-maegler-phone"></p> 4141 <p class="js-maegler-mail"></p> 4142 </div> 4143 </div> 4144 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 4145 </div> 4146 </div> 4147 4148 <!-- BESTIL SALGSVURDERING --> 4149 <div id="panel-salgsvurdering" class="panel panel-form"> 4150 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 4151 <b></b> 4152 </button> 4153 4154 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler"> 4155 <h2 class="js-buyer-advisor-header">@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2> 4156 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p> 4157 <div class="form-group"> 4158 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 4159 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required /> 4160 </div> 4161 <div class="form-group"> 4162 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 4163 <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='@UserContext.Current.User?.Email' required /> 4164 </div> 4165 <div class="form-group row mb-4"> 4166 <div class="col-6"> 4167 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 4168 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required /> 4169 </div> 4170 <div class="col-6"> 4171 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 4172 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current.User?.Phone' /> 4173 </div> 4174 4175 </div> 4176 4177 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 4178 <div class="form-group row"> 4179 <div class="col-4"> 4180 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 4181 <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 /> 4182 <input type="hidden" class="js-postnummer-validation" /> 4183 </div> 4184 <div class="col-8"> 4185 <label><strong>@Translate("form-city", "By")*</strong></label> 4186 <input class="form-control js-city" type="text" readonly /> 4187 </div> 4188 </div> 4189 <div class="form-group overflow-unset"> 4190 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 4191 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 4192 <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> 4193 </div> 4194 4195 <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"> 4196 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 4197 </button> 4198 <div class="collapse" id="salgsvurdering-collapse"> 4199 <div class="form-group"> 4200 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 4201 </div> 4202 </div> 4203 4204 4205 <div class="salgsvurdering-precheck"> 4206 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3> 4207 <div class="col-12"> 4208 <div class="choose-broker row align-items-center active"> 4209 <div class="col-2"> 4210 <input class="js-broker-radio" type="radio" id="" name="choose-broker" value="" checked> 4211 <label class="js-broker-label" for=""></label><div class="check"> 4212 <div class="inside"> 4213 </div> 4214 </div> 4215 </div> 4216 <div class="col-4"> 4217 <img src="" class="img-fluid js-broker-image"> 4218 </div> 4219 <div class="col-6"> 4220 <span class="d-block"> 4221 <strong class="js-choose-broker-name"></strong> 4222 </span> 4223 <span class="js-choose-broker-address"></span> 4224 <input type="hidden" class="js-choose-broker-phone" value="" /> 4225 <input type="hidden" class="js-choose-broker-email" value="" /> 4226 </div> 4227 </div> 4228 </div> 4229 </div> 4230 <div class="salgsvurdering-broker"> 4231 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3> 4232 <div class="js-choose-broker col-12"> 4233 </div> 4234 4235 </div> 4236 4237 <div class="form-group mt-4"> 4238 <div class="checkbox"> 4239 <label> 4240 <input type="checkbox" name="kontaktmigok" required /> 4241 4242 <span class="consent-checkbox">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 4243 4244 </label> 4245 </div> 4246 </div> 4247 <div class="form-group"> 4248 <div class="row"> 4249 <div class="col-12"> 4250 <button type="submit" class="btn btn-green btn-block js-buyer-advisor-button">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button> 4251 </div> 4252 </div> 4253 </div> 4254 <div class="form-group form-group-terms"> 4255 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 4256 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 4257 </div> 4258 <input type="hidden" name="fn" value="bsv" /> 4259 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" /> 4260 <input type="hidden" name="brugerId" value="@userID" /> 4261 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 4262 <input type="hidden" id="boligvisning" name="boligvisning" value="" /> 4263 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="" /> 4264 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" /> 4265 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 4266 <input type="hidden" name="ejendomstype" value="" /> 4267 <input type="hidden" name="salgspris" value="" /> 4268 <input type="hidden" name="employee" value="" /> 4269 <input type="hidden" name="modtager" value="" /> 4270 <input class="js-value-check" type="hidden" name="valueCheck" value="" /> 4271 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" /> 4272 </form> 4273 <div id="tak-salgsvurdering" style="display:none;"> 4274 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 4275 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p> 4276 <div class="row"> 4277 <div class="col-6"> 4278 <img src="" class="img-fluid js-maegler-img" /> 4279 </div> 4280 <div class="col-6"> 4281 <p class="js-maegler-name"></p> 4282 <p class="js-maegler-address"></p> 4283 <p class="js-maegler-phone"></p> 4284 <p class="js-maegler-mail"></p> 4285 </div> 4286 </div> 4287 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 4288 </div> 4289 </div> 4290 4291 <!-- BESTIL SALGSVURDERING GULDKØBER --> 4292 <div id="panel-salgsvurdering-guldkoeber" class="panel panel-form"> 4293 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 4294 <b></b> 4295 </button> 4296 4297 <form id="bestil-salgsvurdering-guldkoeber" method="POST" action="/InboxHandler"> 4298 <h2>@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2> 4299 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p> 4300 <div class="form-group"> 4301 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 4302 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required /> 4303 </div> 4304 <div class="form-group"> 4305 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 4306 <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='@UserContext.Current.User?.Email' required /> 4307 </div> 4308 <div class="form-group row mb-4"> 4309 <div class="col-6"> 4310 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 4311 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current.User?.Phone' /> 4312 </div> 4313 <div class="col-6"> 4314 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 4315 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required /> 4316 </div> 4317 </div> 4318 4319 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 4320 4321 <div class="form-group row"> 4322 <div class="col-4"> 4323 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 4324 <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 /> 4325 <input type="hidden" class="js-postnummer-validation" /> 4326 </div> 4327 <div class="col-8"> 4328 <label><strong>@Translate("form-city", "By")*</strong></label> 4329 <input class="form-control js-city" type="text" readonly /> 4330 </div> 4331 </div> 4332 <div class="form-group overflow-unset"> 4333 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 4334 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 4335 <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> 4336 </div> 4337 4338 <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"> 4339 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 4340 </button> 4341 <div class="collapse" id="salgsvurdering-collapse"> 4342 <div class="form-group"> 4343 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 4344 </div> 4345 </div> 4346 4347 <div class="salgsvurdering-precheck"> 4348 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3> 4349 <div class="col-12"> 4350 <div class="choose-broker row align-items-center active"> 4351 <div class="col-2"> 4352 <input class="js-broker-radio" type="radio" id="" name="choose-broker-gk" value="" checked> 4353 <label class="js-broker-label" for=""></label><div class="check"> 4354 <div class="inside"> 4355 </div> 4356 </div> 4357 </div> 4358 <div class="col-4"> 4359 <img src="" class="img-fluid js-broker-image"> 4360 </div> 4361 <div class="col-6"> 4362 <span class="d-block"> 4363 <strong class="js-choose-broker-name"></strong> 4364 </span> 4365 <span class="js-choose-broker-address"></span> 4366 <input type="hidden" class="js-choose-broker-phone" value="" /> 4367 <input type="hidden" class="js-choose-broker-email" value="" /> 4368 </div> 4369 </div> 4370 </div> 4371 </div> 4372 <div class="salgsvurdering-broker"> 4373 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3> 4374 <div class="js-choose-broker col-12"> 4375 </div> 4376 4377 </div> 4378 4379 4380 <div class="form-group"> 4381 <div class="row"> 4382 <div class="col-12"> 4383 <button type="submit" class="btn btn-green btn-block">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button> 4384 </div> 4385 </div> 4386 </div> 4387 <div class="form-group"> 4388 <div class="checkbox"> 4389 <label> 4390 <input type="checkbox" name="kontaktmigok" required /> 4391 4392 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 4393 4394 </label> 4395 </div> 4396 </div> 4397 <div class="form-group form-group-terms"> 4398 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 4399 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 4400 </div> 4401 <input type="hidden" name="fn" value="bsg" /> 4402 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" /> 4403 <input type="hidden" name="brugerId" value="@userID" /> 4404 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 4405 <input type="hidden" id="boligvisning-gk" name="boligvisning" value="" /> 4406 <input type="hidden" id="panel-salgsvurdering-gk-butikid" name="butikId" value="" /> 4407 <input type="hidden" id="panel-salgsvurdering-gk-sagsnr" name="sagsnr" value="" /> 4408 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 4409 <input type="hidden" name="ejendomstype" value="" /> 4410 <input type="hidden" name="salgspris" value="" /> 4411 <input type="hidden" name="employee" value="" /> 4412 <input type="hidden" name="modtager" value="" /> 4413 </form> 4414 <div id="tak-salgsvurdering" style="display:none;"> 4415 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 4416 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p> 4417 <div class="row"> 4418 <div class="col-6"> 4419 <img src="" class="img-fluid js-maegler-img" /> 4420 </div> 4421 <div class="col-6"> 4422 <p class="js-maegler-name"></p> 4423 <p class="js-maegler-address"></p> 4424 <p class="js-maegler-phone"></p> 4425 <p class="js-maegler-mail"></p> 4426 </div> 4427 </div> 4428 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 4429 </div> 4430 </div> 4431 4432 4433 <div class="overlay-wrapper"></div> 4434 <div class="dropdown-overlay"></div> 4435 <div class="loader-inner ball-pulse"></div> 4436 4437 @{ 4438 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js")); 4439 <script type="text/javascript" src='@(TemplateUrl)assets/webpack/js/3rdparty/viamapstrap.js?@(viamapstrapFileInfo.LastWriteTime.Ticks)' async></script> 4440 4441 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js")); 4442 <script type="text/javascript" src='@(TemplateUrl)assets/dist/bundle.app.min.js?@(bundleFileInfo.LastWriteTime.Ticks)' async></script> 4443 } 4444 4445 @RenderSnippet("JavaScriptBottom") 4446 4447 @if (Context.Current.Request.QueryString["ShowLogin"] == "true") 4448 { 4449 <input class="js-showLogin" value="true" /> 4450 } 4451 4452 @if (!string.IsNullOrEmpty(settings_ConduzeId)) 4453 { 4454 <script type="text/javascript" id="conduze-sdk" src="https://cdn.conduze.com/@settings_ConduzeId/tracking.js" async></script> 4455 } 4456 4457 @if (!string.IsNullOrEmpty(settings_Weply)) 4458 { 4459 <script src="https://app.weply.chat/widget/@settings_Weply" async></script> 4460 } 4461 4462 </body> 4463 </html> 4464 4465