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

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 js-float-label-trigger">@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 js-float-label-trigger" 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="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!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="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!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="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!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="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!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="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!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="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!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="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!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="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!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="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch)" /> 3123 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" /> 3124 <input type="hidden" id="zipcodeto" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(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 @* Anonymous visitors have a null CurrentUser, and "null <= 0" is false - the panel has to 3767 render for exactly those users, so the null case is spelled out. *@ 3768 @if (Model.CurrentUser == null || Model.CurrentUser.ID <= 0) 3769 { 3770 <div id="panel-login" class="panel panel-form js-loginforms"> 3771 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 3772 <b></b> 3773 </button> 3774 <div class="loginform login"> 3775 @if (loginParagraphId > 0) 3776 { 3777 <text> 3778 @RenderParagraphContent(loginParagraphId) 3779 </text> 3780 } 3781 </div> 3782 <div class="loginform register js-register-form-wrapper" style="display: none;"> 3783 @if (createUserParagraphId > 0) 3784 { 3785 <text> 3786 @RenderParagraphContent(createUserParagraphId) 3787 </text> 3788 } 3789 </div> 3790 @* Shared "glemt adgangskode"-form. Renders both inside #panel-login (SPmaster) and inline on the 3791 login page, so all hooks are classes - ids would collide when both are on the same page. *@ 3792 <div class="loginform forgotpw" style="display: none;"> 3793 <h2 class="forgotpw-reg">@Translate("forgot-pw-reg-title", "Glemt adgangskode")</h2> 3794 <h2 class="forgotpw-broker">@Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")</h2> 3795 <form class="form-body js-forgotpw-form" method="post" action=""> 3796 <input type="hidden" name="AccessUserShopID" class="js-forgotpw-shopid" value="SHOP6" /> 3797 <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> 3798 <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> 3799 <div class="form-group"> 3800 <input name="AccessUserEmail" type="email" pattern="[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$" placeholder="E-mail" class="form-control js-forgotpw-email" required /> 3801 </div> 3802 <button class="btn btn-primary btn-block" type="submit">@Translate("forgot-pw-cta", "Nulstil adgangskode")</button> 3803 <br /> 3804 <div class="js-forgotpw-message"></div> 3805 </form> 3806 3807 <hr> 3808 <button type="button" class="btn btn-default btn-block action-login">@Translate("forgot-pw-back-to-login", "Tilbage til login")</button> 3809 </div> 3810 3811 </div> 3812 } 3813 3814 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 3815 @using Dynamicweb.Security.UserManagement 3816 3817 @{ 3818 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"); 3819 } 3820 3821 <div id="panel-kontakt-koeberraadgivning" class="panel panel-form"> 3822 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 3823 <b></b> 3824 </button> 3825 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2> 3826 <form id="form-koeberraadgivning" method="POST" action="/InboxHandler"> 3827 <div class="form-group"> 3828 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 3829 <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 /> 3830 </div> 3831 <div class="form-group"> 3832 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 3833 <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 /> 3834 </div> 3835 <div class="form-group row mb-4"> 3836 <div class="col-6"> 3837 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 3838 <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 /> 3839 </div> 3840 <div class="col-6"> 3841 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 3842 <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' /> 3843 </div> 3844 </div> 3845 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 3846 <div class="form-group row"> 3847 <div class="col-4"> 3848 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 3849 <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 /> 3850 <input type="hidden" class="js-postnummer-validation" /> 3851 </div> 3852 <div class="col-8"> 3853 <label><strong>@Translate("form-city", "By")*</strong></label> 3854 <input class="form-control js-city" type="text" readonly /> 3855 </div> 3856 </div> 3857 <div class="form-group overflow-unset"> 3858 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 3859 <input class="form-control js-validate-address" type="text" name="adresse" tabindex="6" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' required /> 3860 3861 <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> 3862 </div> 3863 <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"> 3864 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 3865 </button> 3866 <div class="collapse" id="kontaktkoeberrradgiver-collapse"> 3867 <div class="form-group"> 3868 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 3869 </div> 3870 </div> 3871 3872 <div class="form-group"> 3873 <div class="row"> 3874 <div class="col-12"> 3875 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button> 3876 </div> 3877 </div> 3878 </div> 3879 <div class="form-group mt-3"> 3880 <div class="checkbox"> 3881 <label> 3882 <input type="checkbox" name="kontaktmigok" required /> 3883 3884 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 3885 3886 </label> 3887 </div> 3888 </div> 3889 <div class="form-group form-group-terms"> 3890 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 3891 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 3892 </div> 3893 3894 <input type="hidden" name="fn" value="krk" /> 3895 <input type="hidden" name="origin" value="" /> 3896 <input type="hidden" name="brugerId" value="" /> 3897 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 3898 <input type="hidden" name="butikId" value="@butikId" /> 3899 <input type="hidden" name="ejendomstype" value="" /> 3900 <input type="hidden" name="salgspris" value="" /> 3901 <input type="hidden" name="modtager" value="" /> 3902 </form> 3903 <div id="tak-kontakt-advisor" style="display:none;"> 3904 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 3905 <div class="row"> 3906 <div class="col-6"> 3907 <img src="" class="img-fluid js-maegler-img" /> 3908 </div> 3909 <div class="col-6"> 3910 <p class="js-maegler-name"></p> 3911 <p class="js-maegler-address"></p> 3912 <p class="js-maegler-phone"></p> 3913 <p class="js-maegler-mail"></p> 3914 </div> 3915 </div> 3916 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 3917 </div> 3918 </div> 3919 3920 <!--ÅBENT HUS--> 3921 <div id="panel-aabenthus" class="panel panel-form"> 3922 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 3923 <b></b> 3924 </button> 3925 3926 3927 <form id="form-aabenthus" method="POST" action="/InboxHandler"> 3928 <h2>@Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")</h2> 3929 <div class="d-block"> 3930 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label> 3931 </div> 3932 <div class="d-block"> 3933 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label> 3934 </div> 3935 <div class="d-block mb-4"> 3936 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label> 3937 </div> 3938 <h3>@Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")</h3> 3939 <div class="form-group"> 3940 <label for="aabenthus-name"><strong>@Translate("form-navn", "Navn")*</strong></label> 3941 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current?.User?.Name' required /> 3942 </div> 3943 <div class="form-group"> 3944 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 3945 <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 /> 3946 </div> 3947 <div class="form-group row"> 3948 <div class="col-6"> 3949 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 3950 <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 /> 3951 </div> 3952 <div class="col-6"> 3953 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 3954 <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' /> 3955 </div> 3956 </div> 3957 <div class="form-group"> 3958 <div class="row"> 3959 <div class="col-12"> 3960 <button type="submit" class="btn btn-block btn-green">@Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")</button> 3961 </div> 3962 </div> 3963 </div> 3964 <div class="form-group"> 3965 <div class="checkbox"> 3966 <label> 3967 <input type="checkbox" name="kontaktmigok" required /> 3968 3969 <span class="base-color">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 3970 3971 </label> 3972 </div> 3973 </div> 3974 <div class="form-group"> 3975 @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>") 3976 3977 </div> 3978 <input type="hidden" name="fn" value="ah" /> 3979 <input type="hidden" name="origin" value="" /> 3980 <input type="hidden" name="brugerId" value="@userID" /> 3981 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 3982 <input type="hidden" name="butikId" value="@butikId" /> 3983 <input type="hidden" name="sagsaddresse" value="" class="js-aabenthus-address-input" /> 3984 <input type="hidden" name="ejendomstype" value="" /> 3985 <input type="hidden" name="salgspris" value="" /> 3986 <input type="hidden" name="modtager" value="" /> 3987 <input type="hidden" name="employee" value="" /> 3988 <input type="hidden" name="sagsnr" value="" class="js-sagsnr" /> 3989 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 3990 <input type="hidden" name="aftaleid" value="" class="js-aftaleid" /> 3991 3992 <input type="hidden" name="dateMail" class="js-aabenthus-date-input" /> 3993 <input type="hidden" name="timeMail" class="js-aabenthus-time-input" /> 3994 <input type="hidden" name="brokerImageMail" class="property-broker-image-input" /> 3995 <input type="hidden" name="employeeNameMail" class="js-maegler-employee-name-input" /> 3996 <input type="hidden" name="employeeTitleMail" class="js-maegler-employee-title-input" /> 3997 <input type="hidden" name="employeeMailMail" class="js-maegler-mail-input" /> 3998 <input type="hidden" name="employeeMobileMail" class="js-maegler-mobile-input" /> 3999 <input type="hidden" name="employeePhoneMail" class="js-maegler-phone-input" /> 4000 4001 <input type="hidden" name="brokerNameMail" class="js-broker-name-input" /> 4002 <input type="hidden" name="brokerAddressMail" class="js-broker-address-input" /> 4003 <input type="hidden" name="brokerPhoneMail" class="js-broker-phone-input" /> 4004 </form> 4005 <div id="tak-aabenthus" style="display:none;"> 4006 <h2>@Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")</h2> 4007 <div class="d-block"> 4008 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label> 4009 </div> 4010 <div class="d-block"> 4011 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label> 4012 4013 </div> 4014 <div class="d-block mb-4"> 4015 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label> 4016 4017 </div> 4018 4019 <div class="js-employee"> 4020 <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> 4021 </div> 4022 <div class="js-not-employee"> 4023 <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> 4024 </div> 4025 4026 <div class="row"> 4027 <div class="js-employee"> 4028 <div class="col-12 js-maegler-img aabenthus-image"> 4029 <div class="property-broker-image" style=""></div> 4030 4031 </div> 4032 </div> 4033 <div class="col-12"> 4034 <div class="bg-base"> 4035 4036 <div class="js-employee"> 4037 <h4 class="js-maegler-employee-name"></h4> 4038 <div class="icon-container"> 4039 <i class="fas fa-envelope"></i> <span class="js-maegler-mail"></span> 4040 </div> 4041 <div class="icon-container"> 4042 <i class="fas fa-phone"></i> <span class="js-maegler-mobile"></span> 4043 </div> 4044 </div> 4045 4046 4047 <h4 class="js-maegler-name"></h4> 4048 <div class="icon-container"> 4049 <i class="fas fa-map-marker-alt"></i> <span class="js-maegler-address"></span> 4050 </div> 4051 <div class="icon-container"> 4052 <i class="fas fa-phone"></i> <span class="js-maegler-phone"></span> 4053 4054 </div> 4055 <a class="btn btn-border" onclick="panelKontaktmaeglerGuldkoeber()">KONTAKT MÆGLER</a> 4056 </div> 4057 </div> 4058 </div> 4059 </div> 4060 </div> 4061 4062 <!-- KONTAKT GULDKØBER --> 4063 <div id="panel-kontakt-guldkoeber" class="panel panel-form"> 4064 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 4065 <b></b> 4066 </button> 4067 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2> 4068 <form id="form-kontaktmaegler" method="POST" action="/InboxHandler"> 4069 <div class="form-group"> 4070 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 4071 <input class="form-control" type="text" name="navn" placeholder='@Translate("form-navn", "Navn")' value='@UserContext.Current.User?.Name' required /> 4072 </div> 4073 <div class="form-group"> 4074 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 4075 <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 /> 4076 </div> 4077 <div class="form-group row mb-4"> 4078 <div class="col-6"> 4079 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 4080 <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 /> 4081 </div> 4082 <div class="col-6"> 4083 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 4084 <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' /> 4085 </div> 4086 </div> 4087 <div class="form-group row"> 4088 <div class="col-4"> 4089 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 4090 <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 /> 4091 <input type="hidden" class="js-postnummer-validation" /> 4092 </div> 4093 <div class="col-8"> 4094 <label><strong>@Translate("form-city", "By")*</strong></label> 4095 <input class="form-control js-city" type="text" readonly /> 4096 </div> 4097 </div> 4098 4099 <div class="form-group overflow-unset"> 4100 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 4101 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 4102 <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> 4103 </div> 4104 <div class="form-group"> 4105 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 4106 </div> 4107 <div class="form-group"> 4108 <div class="checkbox"> 4109 <label> 4110 <input type="checkbox" name="kontaktmigok" required /> 4111 4112 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 4113 4114 </label> 4115 </div> 4116 </div> 4117 <div class="form-group"> 4118 <div class="row"> 4119 <div class="col-12"> 4120 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button> 4121 </div> 4122 </div> 4123 </div> 4124 <div class="form-group form-group-terms"> 4125 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 4126 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 4127 </div> 4128 <input type="hidden" name="fn" value="gk" /> 4129 <input type="hidden" name="origin" value="" /> 4130 <input type="hidden" name="brugerId" value="@userID" /> 4131 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 4132 <input type="hidden" name="butikId" value="@butikId" /> 4133 <input type="hidden" name="ejendomstype" value="" /> 4134 <input type="hidden" name="salgspris" value="" /> 4135 <input type="hidden" name="modtager" value="" /> 4136 <input type="hidden" name="employee" value="" /> 4137 </form> 4138 <div id="tak-kontakt-maegler-guldkoeber" style="display:none;"> 4139 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 4140 <p>@Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")</p> 4141 <div class="row"> 4142 <div class="col-6"> 4143 <img src="" class="img-fluid js-maegler-img" /> 4144 </div> 4145 <div class="col-6"> 4146 <p class="js-maegler-name"></p> 4147 <p class="js-maegler-address"></p> 4148 <p class="js-maegler-phone"></p> 4149 <p class="js-maegler-mail"></p> 4150 </div> 4151 </div> 4152 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 4153 </div> 4154 </div> 4155 4156 <!-- BESTIL SALGSVURDERING --> 4157 <div id="panel-salgsvurdering" class="panel panel-form"> 4158 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 4159 <b></b> 4160 </button> 4161 4162 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler"> 4163 <h2 class="js-buyer-advisor-header">@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2> 4164 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p> 4165 <div class="form-group"> 4166 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 4167 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required /> 4168 </div> 4169 <div class="form-group"> 4170 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 4171 <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 /> 4172 </div> 4173 <div class="form-group row mb-4"> 4174 <div class="col-6"> 4175 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 4176 <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 /> 4177 </div> 4178 <div class="col-6"> 4179 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 4180 <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' /> 4181 </div> 4182 4183 </div> 4184 4185 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 4186 <div class="form-group row"> 4187 <div class="col-4"> 4188 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 4189 <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 /> 4190 <input type="hidden" class="js-postnummer-validation" /> 4191 </div> 4192 <div class="col-8"> 4193 <label><strong>@Translate("form-city", "By")*</strong></label> 4194 <input class="form-control js-city" type="text" readonly /> 4195 </div> 4196 </div> 4197 <div class="form-group overflow-unset"> 4198 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 4199 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 4200 <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> 4201 </div> 4202 4203 <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"> 4204 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 4205 </button> 4206 <div class="collapse" id="salgsvurdering-collapse"> 4207 <div class="form-group"> 4208 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 4209 </div> 4210 </div> 4211 4212 4213 <div class="salgsvurdering-precheck"> 4214 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3> 4215 <div class="col-12"> 4216 <div class="choose-broker row align-items-center active"> 4217 <div class="col-2"> 4218 <input class="js-broker-radio" type="radio" id="" name="choose-broker" value="" checked> 4219 <label class="js-broker-label" for=""></label><div class="check"> 4220 <div class="inside"> 4221 </div> 4222 </div> 4223 </div> 4224 <div class="col-4"> 4225 <img src="" class="img-fluid js-broker-image"> 4226 </div> 4227 <div class="col-6"> 4228 <span class="d-block"> 4229 <strong class="js-choose-broker-name"></strong> 4230 </span> 4231 <span class="js-choose-broker-address"></span> 4232 <input type="hidden" class="js-choose-broker-phone" value="" /> 4233 <input type="hidden" class="js-choose-broker-email" value="" /> 4234 </div> 4235 </div> 4236 </div> 4237 </div> 4238 <div class="salgsvurdering-broker"> 4239 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3> 4240 <div class="js-choose-broker col-12"> 4241 </div> 4242 4243 </div> 4244 4245 <div class="form-group mt-4"> 4246 <div class="checkbox"> 4247 <label> 4248 <input type="checkbox" name="kontaktmigok" required /> 4249 4250 <span class="consent-checkbox">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 4251 4252 </label> 4253 </div> 4254 </div> 4255 <div class="form-group"> 4256 <div class="row"> 4257 <div class="col-12"> 4258 <button type="submit" class="btn btn-green btn-block js-buyer-advisor-button">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button> 4259 </div> 4260 </div> 4261 </div> 4262 <div class="form-group form-group-terms"> 4263 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 4264 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 4265 </div> 4266 <input type="hidden" name="fn" value="bsv" /> 4267 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" /> 4268 <input type="hidden" name="brugerId" value="@userID" /> 4269 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 4270 <input type="hidden" id="boligvisning" name="boligvisning" value="" /> 4271 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="" /> 4272 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" /> 4273 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 4274 <input type="hidden" name="ejendomstype" value="" /> 4275 <input type="hidden" name="salgspris" value="" /> 4276 <input type="hidden" name="employee" value="" /> 4277 <input type="hidden" name="modtager" value="" /> 4278 <input class="js-value-check" type="hidden" name="valueCheck" value="" /> 4279 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" /> 4280 </form> 4281 <div id="tak-salgsvurdering" style="display:none;"> 4282 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 4283 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p> 4284 <div class="row"> 4285 <div class="col-6"> 4286 <img src="" class="img-fluid js-maegler-img" /> 4287 </div> 4288 <div class="col-6"> 4289 <p class="js-maegler-name"></p> 4290 <p class="js-maegler-address"></p> 4291 <p class="js-maegler-phone"></p> 4292 <p class="js-maegler-mail"></p> 4293 </div> 4294 </div> 4295 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 4296 </div> 4297 </div> 4298 4299 <!-- BESTIL SALGSVURDERING GULDKØBER --> 4300 <div id="panel-salgsvurdering-guldkoeber" class="panel panel-form"> 4301 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 4302 <b></b> 4303 </button> 4304 4305 <form id="bestil-salgsvurdering-guldkoeber" method="POST" action="/InboxHandler"> 4306 <h2>@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2> 4307 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p> 4308 <div class="form-group"> 4309 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 4310 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required /> 4311 </div> 4312 <div class="form-group"> 4313 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 4314 <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 /> 4315 </div> 4316 <div class="form-group row mb-4"> 4317 <div class="col-6"> 4318 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 4319 <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' /> 4320 </div> 4321 <div class="col-6"> 4322 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 4323 <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 /> 4324 </div> 4325 </div> 4326 4327 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 4328 4329 <div class="form-group row"> 4330 <div class="col-4"> 4331 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 4332 <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 /> 4333 <input type="hidden" class="js-postnummer-validation" /> 4334 </div> 4335 <div class="col-8"> 4336 <label><strong>@Translate("form-city", "By")*</strong></label> 4337 <input class="form-control js-city" type="text" readonly /> 4338 </div> 4339 </div> 4340 <div class="form-group overflow-unset"> 4341 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 4342 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 4343 <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> 4344 </div> 4345 4346 <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"> 4347 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 4348 </button> 4349 <div class="collapse" id="salgsvurdering-collapse"> 4350 <div class="form-group"> 4351 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 4352 </div> 4353 </div> 4354 4355 <div class="salgsvurdering-precheck"> 4356 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3> 4357 <div class="col-12"> 4358 <div class="choose-broker row align-items-center active"> 4359 <div class="col-2"> 4360 <input class="js-broker-radio" type="radio" id="" name="choose-broker-gk" value="" checked> 4361 <label class="js-broker-label" for=""></label><div class="check"> 4362 <div class="inside"> 4363 </div> 4364 </div> 4365 </div> 4366 <div class="col-4"> 4367 <img src="" class="img-fluid js-broker-image"> 4368 </div> 4369 <div class="col-6"> 4370 <span class="d-block"> 4371 <strong class="js-choose-broker-name"></strong> 4372 </span> 4373 <span class="js-choose-broker-address"></span> 4374 <input type="hidden" class="js-choose-broker-phone" value="" /> 4375 <input type="hidden" class="js-choose-broker-email" value="" /> 4376 </div> 4377 </div> 4378 </div> 4379 </div> 4380 <div class="salgsvurdering-broker"> 4381 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3> 4382 <div class="js-choose-broker col-12"> 4383 </div> 4384 4385 </div> 4386 4387 4388 <div class="form-group"> 4389 <div class="row"> 4390 <div class="col-12"> 4391 <button type="submit" class="btn btn-green btn-block">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button> 4392 </div> 4393 </div> 4394 </div> 4395 <div class="form-group"> 4396 <div class="checkbox"> 4397 <label> 4398 <input type="checkbox" name="kontaktmigok" required /> 4399 4400 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 4401 4402 </label> 4403 </div> 4404 </div> 4405 <div class="form-group form-group-terms"> 4406 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 4407 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 4408 </div> 4409 <input type="hidden" name="fn" value="bsg" /> 4410 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" /> 4411 <input type="hidden" name="brugerId" value="@userID" /> 4412 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 4413 <input type="hidden" id="boligvisning-gk" name="boligvisning" value="" /> 4414 <input type="hidden" id="panel-salgsvurdering-gk-butikid" name="butikId" value="" /> 4415 <input type="hidden" id="panel-salgsvurdering-gk-sagsnr" name="sagsnr" value="" /> 4416 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 4417 <input type="hidden" name="ejendomstype" value="" /> 4418 <input type="hidden" name="salgspris" value="" /> 4419 <input type="hidden" name="employee" value="" /> 4420 <input type="hidden" name="modtager" value="" /> 4421 </form> 4422 <div id="tak-salgsvurdering" style="display:none;"> 4423 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 4424 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p> 4425 <div class="row"> 4426 <div class="col-6"> 4427 <img src="" class="img-fluid js-maegler-img" /> 4428 </div> 4429 <div class="col-6"> 4430 <p class="js-maegler-name"></p> 4431 <p class="js-maegler-address"></p> 4432 <p class="js-maegler-phone"></p> 4433 <p class="js-maegler-mail"></p> 4434 </div> 4435 </div> 4436 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 4437 </div> 4438 </div> 4439 4440 @using Dynamicweb.Core; 4441 @using Dynamicweb.Core.Encoders; 4442 4443 @{ 4444 var areaItem = Pageview.Area.Item; 4445 bool turnstileDisabled = areaItem != null 4446 && areaItem.ContainsKey("DisableTurnstile") 4447 && Converter.ToBoolean(areaItem["DisableTurnstile"]); 4448 bool turnstileEnabled = !turnstileDisabled && RealMaeglerne.Dynamicweb.Config.IsTurnstileConfigured(); 4449 } 4450 4451 @if (turnstileEnabled) 4452 { 4453 string turnstileSiteKey = RealMaeglerne.Dynamicweb.Config.GetTurnstileSiteKey(); 4454 string turnstileAreaId = Converter.ToString(Pageview.Area.ID); 4455 string turnstileLanguage = Pageview.Area.CultureInfo.Name; 4456 4457 <div class="js-turnstile-configuration d-none" 4458 data-site-key="@HtmlEncoder.HtmlAttributeEncode(turnstileSiteKey)" 4459 data-area-id="@HtmlEncoder.HtmlAttributeEncode(turnstileAreaId)"> 4460 <input type="hidden" 4461 class="js-turnstile-language" 4462 value="@HtmlEncoder.HtmlAttributeEncode(turnstileLanguage)" /> 4463 <input type="hidden" 4464 class="js-turnstile-validation-message-text" 4465 value="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Turnstile.ValidationMessage", "Bekræft venligst, at du ikke er en robot."))" /> 4466 </div> 4467 } 4468 4469 4470 <div class="overlay-wrapper"></div> 4471 <div class="dropdown-overlay"></div> 4472 <div class="loader-inner ball-pulse"></div> 4473 4474 @{ 4475 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js")); 4476 <script type="text/javascript" src='@(TemplateUrl)assets/webpack/js/3rdparty/viamapstrap.js?@(viamapstrapFileInfo.LastWriteTime.Ticks)' async></script> 4477 4478 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js")); 4479 <script type="text/javascript" src='@(TemplateUrl)assets/dist/bundle.app.min.js?@(bundleFileInfo.LastWriteTime.Ticks)' async></script> 4480 } 4481 4482 @RenderSnippet("JavaScriptBottom") 4483 4484 @if (Context.Current.Request.QueryString["ShowLogin"] == "true") 4485 { 4486 <input class="js-showLogin" value="true" /> 4487 } 4488 4489 @if (!string.IsNullOrEmpty(settings_ConduzeId)) 4490 { 4491 <script type="text/javascript" id="conduze-sdk" src="https://cdn.conduze.com/@settings_ConduzeId/tracking.js" async></script> 4492 } 4493 4494 @if (!string.IsNullOrEmpty(settings_Weply)) 4495 { 4496 <script src="https://app.weply.chat/widget/@settings_Weply" async></script> 4497 } 4498 4499 </body> 4500 </html> 4501 4502