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

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