Error compiling template "Designs/rm/DynamicArticle.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 97: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 98: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 99: The using directive for 'Dynamicweb.Rapido.Blocks.Components.Articles' appeared previously in this namespace
Line 100: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 101: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 102: The using directive for 'Dynamicweb.Content.Items' appeared previously in this namespace
Line 1699: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 1700: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1702: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1704: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1791: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1792: 'ListViewModel.Options' is obsolete: 'Use the GetAllOptions extension method instead'
Line 1828: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1967: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1987: Argument 1: cannot convert from 'void' to 'object'
Line 5141: The variable 'placeholderImage' is assigned but its value is never used
Line 5785: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5811: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5813: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5815: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5817: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5830: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5832: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5834: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5836: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5839: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)

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.Extensibility; 97 using Dynamicweb.Core; 98 using Dynamicweb.Rapido.Blocks.Components; 99 using Dynamicweb.Rapido.Blocks.Components.Articles; 100 using Dynamicweb.Rapido.Blocks.Components.General; 101 using Dynamicweb.Rapido.Blocks; 102 using Dynamicweb.Content.Items; 103 using Dynamicweb.Security.UserManagement; 104 internal class RazorEngine_fd2a9ad94de344b58d0233177067400e : 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"); 1696 WriteLiteral("\r\n"); 1697 1698 string listPageId = Converter.ToString(GetPageIdByNavigationTag("DynamicListFeed")); 1699 string parentPageId = Dynamicweb.Services.Pages.GetPage(Model.ID).Parent.ID.ToString(); 1700 string topLayout = Model.Item.GetList("TopLayout") != null ? Model.Item.GetList("TopLayout").SelectedValue : "default"; 1701 topLayout = topLayout == "default" && GetParentSettingsItem("ArticleTopLayout") != null ? GetParentSettingsItem("ArticleTopLayout").ToString().ToLower() : topLayout; 1702 string textLayout = Model.Item.GetList("TextLayout") != null ? Model.Item.GetList("TextLayout").SelectedValue : "default"; 1703 textLayout = textLayout == "default" && GetParentSettingsItem("ArticleTextLayout") != null ? GetParentSettingsItem("ArticleTextLayout").ToString().ToLower() : textLayout; 1704 string imageLayout = Model.Item.GetList("ImageLayout") != null ? Model.Item.GetList("ImageLayout").SelectedValue : "default"; 1705 imageLayout = imageLayout == "default" && GetParentSettingsItem("ArticleImageLayout") != null ? GetParentSettingsItem("ArticleImageLayout").ToString().ToLower() : imageLayout; 1706 1707 //string imageColumns = imageLayout == "straight" && textLayout != "full" ? "8" : "12"; 1708 //string contentColumns = textLayout != "full" ? "8" : "12"; 1709 string imageColumns = "12"; 1710 string contentColumns = "12"; 1711 1712 int externalParagraphId = Model.Item.GetItem("CTAParagraphLink") != null ? Model.Item.GetItem("CTAParagraphLink").ParagraphID : 0; 1713 1714 ArticleHeaderLayout headerLayout; 1715 1716 switch (topLayout) 1717 { 1718 case "default": 1719 headerLayout = ArticleHeaderLayout.Clean; 1720 break; 1721 case "split": 1722 headerLayout = ArticleHeaderLayout.Split; 1723 break; 1724 case "banner": 1725 headerLayout = ArticleHeaderLayout.Banner; 1726 break; 1727 case "overlay": 1728 headerLayout = ArticleHeaderLayout.Overlay; 1729 break; 1730 default: 1731 headerLayout = ArticleHeaderLayout.Clean; 1732 break; 1733 } 1734 1735 1736 Block articleContainer = new Block 1737 { 1738 Id = "ArticleContainer", 1739 SortId = 10, 1740 Design = new Design 1741 { 1742 RenderType = RenderType.Row 1743 }, 1744 BlocksList = new List<Block> { 1745 new Block { 1746 Id = "ArticleBody", 1747 SortId = 30, 1748 Design = new Design { 1749 RenderType = RenderType.Column, 1750 Size = "12", 1751 HidePadding = true, 1752 CssClass = "margin-top-large" 1753 } 1754 } 1755 } 1756 }; 1757 articlePage.Add(articleContainer); 1758 1759 ButtonLayout topBannerButtonLayout = ButtonLayout.Primary; 1760 1761 switch (Model.Item.GetString("ButtonDesign")) 1762 { 1763 case "primary": 1764 topBannerButtonLayout = ButtonLayout.Primary; 1765 break; 1766 case "secondary": 1767 topBannerButtonLayout = ButtonLayout.Secondary; 1768 break; 1769 case "teritary": 1770 topBannerButtonLayout = ButtonLayout.Tertiary; 1771 break; 1772 case "link": 1773 topBannerButtonLayout = ButtonLayout.Link; 1774 break; 1775 } 1776 1777 ArticleHeader topBanner = new ArticleHeader 1778 { 1779 Layout = headerLayout, 1780 Image = new Image { Path = Model.Item.GetFile("Image"), ImageDefault = new ImageSettings { Width = 1920, Height = 640 } }, 1781 Heading = Model.Item.GetString("Title"), 1782 Subheading = Model.Item.GetString("Summary"), 1783 TextColor = "#fff", 1784 Author = Model.Item.GetString("Author"), 1785 Date = Model.Item.GetString("Date"), 1786 Category = GetArticleCategory(Model.ID), 1787 CategoryColor = GetArticleCategoryColor(Model.ID), 1788 Link = Model.Item.GetString("Link"), 1789 LinkText = Model.Item.GetString("LinkText"), 1790 ButtonLayout = topBannerButtonLayout, 1791 RatingScore = Model.Item.GetString("Rating") != null ? Converter.ToInt32(Model.Item.GetList("Rating").SelectedValue) : 0, 1792 RatingOutOf = Model.Item.GetString("Rating") != null ? Model.Item.GetList("Rating").Options.Count : 0, 1793 ExternalParagraphId = externalParagraphId 1794 }; 1795 1796 Block articleTop = new Block 1797 { 1798 Id = "ArticleHead", 1799 SortId = 20, 1800 Component = topBanner, 1801 Design = new Design 1802 { 1803 RenderType = RenderType.Column, 1804 Size = "12", 1805 HidePadding = true, 1806 CssClass = "article-head" 1807 } 1808 }; 1809 //articlePage.Add("ArticleContainer", articleTop); 1810 1811 1812 Block articleBodyRow = new Block 1813 { 1814 Id = "ArticleBodyRow", 1815 SortId = 10, 1816 SkipRenderBlocksList = true 1817 }; 1818 articlePage.Add("ArticleBody", articleBodyRow); 1819 1820 1821 if (Model.Item.GetString("Paragraphs") != null) 1822 { 1823 int count = 0; 1824 foreach (var paragraph in Model.Item.GetItems("Paragraphs")) 1825 { 1826 if (!paragraph.GetBoolean("RenderAsQuote")) 1827 { 1828 string enableDropCap = Model.Item.GetString("EnableDropCap") != null ? Model.Item.GetList("EnableDropCap").SelectedValue.ToLower() : "default"; 1829 enableDropCap = enableDropCap == "default" && GetParentSettingsItem("EnableDropCap") != null ? GetParentSettingsItem("EnableDropCap").ToString().ToLower() : enableDropCap; 1830 string text = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : ""; 1831 1832 if (!String.IsNullOrEmpty(text) && enableDropCap == "true" && count == 0 && paragraph.GetString("Text").Substring(0, 3) == "<p>") 1833 { 1834 string firstLetter = paragraph.GetString("Text").Substring(3, 1); 1835 text = paragraph.GetString("Text").Remove(3, 1); 1836 text = text.Insert(3, "<span class=\"article__drop-cap\">" + firstLetter + "</span>"); 1837 } 1838 1839 if (!String.IsNullOrEmpty(paragraph.GetString("Heading"))) 1840 { 1841 Block articleParagraphHeader = new Block 1842 { 1843 Id = "ArticleParagraph" + count + "Heading", 1844 SortId = (count * 10) , 1845 Component = new ArticleSubHeader { Title = paragraph.GetString("Heading") }, 1846 Design = new Design 1847 { 1848 RenderType = RenderType.Column, 1849 Size = contentColumns, 1850 CssClass = "u-color-light--bg u-padding--lg" 1851 } 1852 }; 1853 articlePage.Add("ArticleBodyRow", articleParagraphHeader); 1854 } 1855 1856 if (paragraph.GetFile("Image") != null) 1857 { 1858 string imageTitle = !string.IsNullOrEmpty(paragraph.GetString("Heading")) ? paragraph.GetString("Heading") : ""; 1859 1860 Block articleParagraphImage = new Block 1861 { 1862 Id = "ArticleParagraph" + count + "Image", 1863 SortId = (count * 10) + 2, 1864 Design = new Design 1865 { 1866 RenderType = RenderType.Column, 1867 Size = imageColumns, 1868 CssClass = "u-color-light--bg u-padding--lg" 1869 } 1870 }; 1871 1872 if (imageLayout == "banner") 1873 { 1874 ArticleBanner banner = new ArticleBanner 1875 { 1876 Image = new Image { Path = paragraph.GetFile("Image"), ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, Caption = paragraph.GetString("ImageCaption") }, 1877 Heading = imageTitle, 1878 UseFilters = false 1879 }; 1880 articleParagraphImage.Component = banner; 1881 } 1882 else 1883 { 1884 ArticleImage image = new ArticleImage 1885 { 1886 Image = new Image 1887 { 1888 Path = paragraph.GetFile("Image"), 1889 Title = imageTitle, 1890 ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, 1891 Caption = paragraph.GetString("ImageCaption"), 1892 CssClass = "u-full-width" 1893 } 1894 }; 1895 articleParagraphImage.Component = image; 1896 } 1897 1898 articlePage.Add("ArticleBodyRow", articleParagraphImage); 1899 } 1900 1901 if (!String.IsNullOrEmpty(paragraph.GetString("VideoURL"))) 1902 { 1903 Block articleParagraphVideo = new Block 1904 { 1905 Id = "ArticleParagraph" + count + "Video", 1906 SortId = (count * 10) + 3, 1907 Component = new ArticleVideo { Url = paragraph.GetString("VideoURL"), AutoPlay = "false" }, 1908 Design = new Design 1909 { 1910 RenderType = RenderType.Column, 1911 Size = imageColumns, 1912 CssClass = "u-color-light--bg u-padding--lg" 1913 } 1914 }; 1915 articlePage.Add("ArticleBodyRow", articleParagraphVideo); 1916 } 1917 1918 if (!String.IsNullOrEmpty(text)) 1919 { 1920 Block articleParagraphText = new Block 1921 { 1922 Id = "ArticleParagraph" + count + "Text", 1923 SortId = (count * 10) + 3, 1924 Component = new ArticleText { Text = text }, 1925 Design = new Design 1926 { 1927 RenderType = RenderType.Column, 1928 Size = contentColumns, 1929 CssClass = "u-color-light--bg u-padding--lg" 1930 } 1931 }; 1932 1933 articlePage.Add("ArticleBodyRow", articleParagraphText); 1934 } 1935 } 1936 else 1937 { 1938 if (!String.IsNullOrEmpty(paragraph.GetString("Text"))) 1939 { 1940 string quoteText = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : ""; 1941 string quoteAuthor = paragraph.GetString("Heading") != null ? paragraph.GetString("Heading") : ""; 1942 1943 Block articleParagraphQuote = new Block 1944 { 1945 Id = "ArticleParagraph" + count + "Quote", 1946 SortId = (count * 10) + 3, 1947 Component = new ArticleQuote { Image = new Image { Path = paragraph.GetFile("Image") }, Text = quoteText, Author = quoteAuthor }, 1948 Design = new Design 1949 { 1950 RenderType = RenderType.Column, 1951 Size = contentColumns, 1952 CssClass = "u-color-light--bg u-padding--lg" 1953 } 1954 }; 1955 articlePage.Add("ArticleBodyRow", articleParagraphQuote); 1956 } 1957 } 1958 1959 count++; 1960 } 1961 } 1962 1963 articleBodyRow.Component = new ArticleBodyRow { SubBlocks = articleBodyRow.BlocksList, TopLayout = topLayout, TextLayout = textLayout }; 1964 1965 1966 //Related 1967 string showRelatedArtices = Model.Item.GetString("ShowRelatedArticles") != null ? Model.Item.GetList("ShowRelatedArticles").SelectedValue.ToLower() : "default"; 1968 showRelatedArtices = showRelatedArtices == "default" && GetParentSettingsItem("ShowRelatedArticles") != null ? GetParentSettingsItem("ShowRelatedArticles").ToString().ToLower() : showRelatedArtices; 1969 1970 if (showRelatedArtices == "true") 1971 { 1972 Block articleRelated = new Block 1973 { 1974 Id = "ArticleRelated", 1975 SortId = 30, 1976 Component = new ArticleRelated { Title = Translate("Related articles"), FeedPageId = listPageId, Query = "sourceType=Page&sourcePage=" + parentPageId, PageSize = 4, CurrentPageId = Model.ID.ToString() }, 1977 Design = new Design 1978 { 1979 RenderType = RenderType.Column, 1980 Size = "12" 1981 } 1982 }; 1983 articlePage.Add("ArticleContainer", articleRelated); 1984 } 1985 WriteLiteral("\r\n\r\n"); 1986 WriteLiteral("<section class=\"center-container content-container dw-mod\">\r\n "); 1987 Write(RenderBlockList(articlePage.BlocksRoot.BlocksList)); 1988 WriteLiteral("\r\n</section>\r\n </div>\r\n\r\n"); 1989 if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true) 1990 { 1991 string bName = MyBroker.Broker.Name; 1992 string bClass = "na"; 1993 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 1994 1995 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName)) 1996 { 1997 bName = MyBroker.Broker.CompanyName; 1998 } 1999 try 2000 { 2001 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl"); 2002 if (!string.IsNullOrEmpty(imgUrl)) 2003 { 2004 bImage = imgUrl; 2005 bClass = ""; 2006 } 2007 } 2008 catch 2009 { 2010 // Ignore 2011 } 2012 2013 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId"); 2014 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 2015 2016 WriteLiteral(" <section class=\"din-maegler\">\r\n <div"); 2017 BeginWriteAttribute("class", " class=\"", 204281, "\"", 204308, 2); 2018 WriteAttributeValue("", 204289, "img-wrapper", 204289, 11, true); 2019 WriteAttributeValue(" ", 204300, bClass, 204301, 7, false); 2020 EndWriteAttribute(); 2021 BeginWriteAttribute("style", " style=\"", 204309, "\"", 204348, 3); 2022 WriteAttributeValue("", 204317, "background-image:url(\'", 204317, 22, true); 2023 WriteAttributeValue("", 204339, bImage, 204339, 7, false); 2024 WriteAttributeValue("", 204346, "\')", 204346, 2, true); 2025 EndWriteAttribute(); 2026 WriteLiteral(@"></div> 2027 <div class=""container""> 2028 <div class=""col-12 col-sm-12 col-md-6 offset-md-6""> 2029 <h2>Din personlige mægler</h2> 2030 <div class=""row""> 2031 <div class=""col-12 col-sm-6""> 2032 <p> 2033 <b class=""my-broker-name"">"); 2034 Write(MyBroker.Employee.Name); 2035 WriteLiteral("</b><br>\r\n"); 2036 if (!string.IsNullOrEmpty(MyBroker.Employee.Email)) 2037 { 2038 WriteLiteral("Mail: <a"); 2039 BeginWriteAttribute("href", " href=\"", 204905, "\"", 204965, 2); 2040 WriteAttributeValue("", 204912, "mailto:", 204912, 7, true); 2041 WriteAttributeValue("", 204919, ExtractMaskedEmail(MyBroker.Employee.Email), 204919, 46, false); 2042 EndWriteAttribute(); 2043 WriteLiteral(" class=\"my-broker-email\">"); 2044 Write(ExtractMaskedEmail(MyBroker.Employee.Email)); 2045 WriteLiteral("</a><br>"); 2046 2047 } 2048 if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile)) 2049 { 2050 WriteLiteral("Tlf.: <a"); 2051 BeginWriteAttribute("href", " href=\"", 205264, "\"", 205307, 2); 2052 WriteAttributeValue("", 205271, "tel:", 205271, 4, true); 2053 WriteAttributeValue("", 205275, MyBroker.Employee.PhoneMobile, 205275, 32, false); 2054 EndWriteAttribute(); 2055 WriteLiteral(" class=\"my-broker-phone\">"); 2056 Write(FormatPhoneNumber(MyBroker.Employee.PhoneMobile)); 2057 WriteLiteral("</a>"); 2058 2059 } 2060 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2061 { 2062 WriteLiteral("Tlf.: <a"); 2063 BeginWriteAttribute("href", " href=\"", 205607, "\"", 205646, 2); 2064 WriteAttributeValue("", 205614, "tel:", 205614, 4, true); 2065 WriteAttributeValue("", 205618, MyBroker.Broker.Telephone, 205618, 28, false); 2066 EndWriteAttribute(); 2067 WriteLiteral(" class=\"my-broker-phone\">"); 2068 Write(FormatPhoneNumber(MyBroker.Broker.Telephone)); 2069 WriteLiteral("</a>"); 2070 2071 } 2072 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\">"); 2073 Write(bName); 2074 WriteLiteral("</b><br>\r\n <span class=\"my-broker-company-address\">"); 2075 Write(MyBroker.Broker.Address); 2076 WriteLiteral("</span><br>\r\n <span class=\"my-broker-company-zip\">"); 2077 Write(MyBroker.Broker.ZipCode); 2078 WriteLiteral("</span> <span class=\"my-broker-company-city\">"); 2079 Write(MyBroker.Broker.City); 2080 WriteLiteral("</span><br>\r\n"); 2081 if (!string.IsNullOrEmpty(bEmail)) 2082 { 2083 WriteLiteral("Mail: <a"); 2084 BeginWriteAttribute("href", " href=\"", 206435, "\"", 206458, 2); 2085 WriteAttributeValue("", 206442, "mailto:", 206442, 7, true); 2086 WriteAttributeValue("", 206449, bEmail, 206449, 9, false); 2087 EndWriteAttribute(); 2088 WriteLiteral(" class=\"my-broker-broker-email\">"); 2089 Write(bEmail); 2090 WriteLiteral("</a><br>"); 2091 2092 } 2093 if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2094 { 2095 WriteLiteral("Tlf.: <a"); 2096 BeginWriteAttribute("href", " href=\"", 206723, "\"", 206762, 2); 2097 WriteAttributeValue("", 206730, "tel:", 206730, 4, true); 2098 WriteAttributeValue("", 206734, MyBroker.Broker.Telephone, 206734, 28, false); 2099 EndWriteAttribute(); 2100 WriteLiteral(" class=\"my-broker-broker-phone\">"); 2101 Write(FormatPhoneNumber(MyBroker.Broker.Telephone)); 2102 WriteLiteral("</a>"); 2103 2104 } 2105 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"); 2106 BeginWriteAttribute("href", " href=\"", 207138, "\"", 207173, 2); 2107 WriteAttributeValue("", 207145, "/", 207145, 1, true); 2108 WriteAttributeValue("", 207146, medlemsnummer.Substring(1), 207146, 27, false); 2109 EndWriteAttribute(); 2110 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"); 2111 } 2112 WriteLiteral(" <footer>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n"); 2113 2114 var navigationSettings = new NavigationSettings(); 2115 navigationSettings.StartLevel = 1; 2116 navigationSettings.StopLevel = 3; 2117 navigationSettings.ExpandMode = ExpandMode.All; 2118 navigationSettings.RootAreaId = 1; 2119 navigationSettings.RootNavigationTag = "footer-nav"; 2120 2121 WriteLiteral(" "); 2122 Write(Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings)); 2123 WriteLiteral("\r\n </div>\r\n </div>\r\n </footer>\r\n\r\n"); 2124 if (Model.CurrentUser?.ID <= 0) 2125 { 2126 WriteLiteral(" <div id=\"panel-login\" class=\"panel panel-form\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"panel-form\" aria-label=\"Close\">\r\n <b></b>\r\n </button>\r\n <div class=\"loginform login\">\r\n"); 2127 if (loginParagraphId > 0) 2128 { 2129 WriteLiteral("\r\n "); 2130 Write(RenderParagraphContent(loginParagraphId)); 2131 WriteLiteral("\r\n "); 2132 2133 } 2134 WriteLiteral(" </div>\r\n <div class=\"loginform register js-register-form-wrapper\" style=\"display: none;\">\r\n"); 2135 if (createUserParagraphId > 0) 2136 { 2137 WriteLiteral("\r\n "); 2138 Write(RenderParagraphContent(createUserParagraphId)); 2139 WriteLiteral("\r\n "); 2140 2141 } 2142 WriteLiteral(" </div>\r\n <div class=\"loginform forgotpw\" style=\"display: none;\">\r\n <h2 class=\"forgotpw-reg\">"); 2143 Write(Translate("forgot-pw-reg-title", "Glemt adgangskode")); 2144 WriteLiteral("</h2>\r\n <h2 class=\"forgotpw-broker\">"); 2145 Write(Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")); 2146 WriteLiteral("</h2>\r\n <form id=\"forgotPwForm\" class=\"form-body\" method=\"post\""); 2147 BeginWriteAttribute("action", " action=\"", 209236, "\"", 209245, 0); 2148 EndWriteAttribute(); 2149 WriteLiteral(">\r\n <input type=\"hidden\" id=\"AccessUserShopID\" name=\"AccessUserShopID\" value=\"SHOP6\" />\r\n <p class=\"forgotpw-reg\">"); 2150 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.")); 2151 WriteLiteral("</p>\r\n <p class=\"forgotpw-broker\">"); 2152 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.")); 2153 WriteLiteral(@"</p> 2154 <div class=""form-group""> 2155 <input id=""AccessUserEmail"" name=""AccessUserEmail"" type=""email"" pattern=""[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$"" placeholder=""E-mail"" class=""form-control"" required /> 2156 </div> 2157 <button class=""btn btn-primary btn-block"" type=""submit"">"); 2158 Write(Translate("forgot-pw-cta", "Nulstil adgangskode")); 2159 WriteLiteral("</button>\r\n <br />\r\n <div id=\"submitMessage\"></div>\r\n </form>\r\n </div>\r\n </div>\r\n"); 2160 } 2161 WriteLiteral("\r\n"); 2162 WriteLiteral("\r\n"); 2163 2164 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"); 2165 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>"); 2166 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")); 2167 WriteLiteral("</h2>\r\n <form id=\"form-koeberraadgivning\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>"); 2168 Write(Translate("form-navn", "Navn")); 2169 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\" tabindex=\"1\""); 2170 BeginWriteAttribute("placeholder", " placeholder=\'", 211485, "\'", 211567, 1); 2171 WriteAttributeValue("", 211499, Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn"), 211499, 68, false); 2172 EndWriteAttribute(); 2173 BeginWriteAttribute("value", " value=\'", 211568, "\'", 211607, 1); 2174 WriteAttributeValue("", 211576, UserContext.Current.User?.Name, 211576, 31, false); 2175 EndWriteAttribute(); 2176 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2177 Write(Translate("form-email", "E-mail")); 2178 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\""); 2179 BeginWriteAttribute("placeholder", " placeholder=\'", 211884, "\'", 211969, 1); 2180 WriteAttributeValue("", 211898, Translate("Smartpage:Kontakt.Placeholder.Email", "Indtast din e-mail"), 211898, 71, false); 2181 EndWriteAttribute(); 2182 BeginWriteAttribute("value", " value=\'", 211970, "\'", 212010, 1); 2183 WriteAttributeValue("", 211978, UserContext.Current.User?.Email, 211978, 32, false); 2184 EndWriteAttribute(); 2185 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2186 Write(Translate("form-mobile", "Mobil nr.")); 2187 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"3\" maxlength=\"20\" name=\"mobile\""); 2188 BeginWriteAttribute("placeholder", " placeholder=\'", 212321, "\'", 212406, 1); 2189 WriteAttributeValue("", 212335, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 212335, 71, false); 2190 EndWriteAttribute(); 2191 BeginWriteAttribute("value", " value=\'", 212407, "\'", 212447, 1); 2192 WriteAttributeValue("", 212415, UserContext.Current.User?.Phone, 212415, 32, false); 2193 EndWriteAttribute(); 2194 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2195 Write(Translate("form-telephone", "Telefon nr.")); 2196 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"4\" maxlength=\"20\" name=\"telefonnummer\""); 2197 BeginWriteAttribute("placeholder", " placeholder=\'", 212730, "\'", 212814, 1); 2198 WriteAttributeValue("", 212744, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 212744, 70, false); 2199 EndWriteAttribute(); 2200 BeginWriteAttribute("value", " value=\'", 212815, "\'", 212856, 1); 2201 WriteAttributeValue("", 212823, UserContext.Current?.User?.Phone, 212823, 33, false); 2202 EndWriteAttribute(); 2203 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <h3>"); 2204 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2205 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2206 Write(Translate("form-zip", "Post nr")); 2207 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\" tabindex=\"5\""); 2208 BeginWriteAttribute("placeholder", " placeholder=\'", 213264, "\'", 213342, 1); 2209 WriteAttributeValue("", 213278, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 213278, 64, false); 2210 EndWriteAttribute(); 2211 BeginWriteAttribute("value", " value=\"", 213343, "\"", 213359, 1); 2212 WriteAttributeValue("", 213351, userZip, 213351, 8, false); 2213 EndWriteAttribute(); 2214 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2215 Write(Translate("form-city", "By")); 2216 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>"); 2217 Write(Translate("form-adresse", "Adresse")); 2218 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\" tabindex=\"6\""); 2219 BeginWriteAttribute("placeholder", " placeholder=\'", 213926, "\'", 214016, 1); 2220 WriteAttributeValue("", 213940, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 213940, 76, false); 2221 EndWriteAttribute(); 2222 WriteLiteral(" required />\r\n\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2223 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2224 WriteLiteral(@"</label> 2225 </div> 2226 <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""> 2227 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2228 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2229 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\""); 2230 BeginWriteAttribute("placeholder", " placeholder=\'", 214810, "\'", 214888, 1); 2231 WriteAttributeValue("", 214824, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 214824, 64, false); 2232 EndWriteAttribute(); 2233 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\">"); 2234 Write(Translate("KontaktMægler", "Kontakt Mægler")); 2235 WriteLiteral(@"</button> 2236 </div> 2237 </div> 2238 </div> 2239 <div class=""form-group mt-3""> 2240 <div class=""checkbox""> 2241 <label> 2242 <input type=""checkbox"" name=""kontaktmigok"" required /> 2243 2244 <span>"); 2245 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2246 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2247 Write(privacyPolicyText); 2248 WriteLiteral(" <a"); 2249 BeginWriteAttribute("href", " href=\"", 215701, "\"", 215725, 2); 2250 WriteAttributeValue("", 215708, "mailto:", 215708, 7, true); 2251 WriteAttributeValue("", 215715, termsMail, 215715, 10, false); 2252 EndWriteAttribute(); 2253 WriteLiteral(">"); 2254 Write(termsMail); 2255 WriteLiteral("</a>.\r\n Læs mere på <a"); 2256 BeginWriteAttribute("href", " href=\"", 215770, "\"", 215804, 1); 2257 WriteAttributeValue("", 215777, settings_Persondatapolitik, 215777, 27, false); 2258 EndWriteAttribute(); 2259 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n\r\n <input type=\"hidden\" name=\"fn\" value=\"krk\" />\r\n <input type=\"hidden\" name=\"origin\""); 2260 BeginWriteAttribute("value", " value=\"", 215950, "\"", 215958, 0); 2261 EndWriteAttribute(); 2262 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2263 BeginWriteAttribute("value", " value=\"", 216008, "\"", 216016, 0); 2264 EndWriteAttribute(); 2265 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2266 BeginWriteAttribute("value", " value=\"", 216064, "\"", 216088, 1); 2267 WriteAttributeValue("", 216072, Pageview.AreaID, 216072, 16, false); 2268 EndWriteAttribute(); 2269 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2270 BeginWriteAttribute("value", " value=\"", 216137, "\"", 216153, 1); 2271 WriteAttributeValue("", 216145, butikId, 216145, 8, false); 2272 EndWriteAttribute(); 2273 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2274 BeginWriteAttribute("value", " value=\"", 216207, "\"", 216215, 0); 2275 EndWriteAttribute(); 2276 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2277 BeginWriteAttribute("value", " value=\"", 216266, "\"", 216274, 0); 2278 EndWriteAttribute(); 2279 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2280 BeginWriteAttribute("value", " value=\"", 216324, "\"", 216332, 0); 2281 EndWriteAttribute(); 2282 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-advisor\" style=\"display:none;\">\r\n <h2>"); 2283 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2284 WriteLiteral("</h2>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2285 BeginWriteAttribute("src", " src=\"", 216565, "\"", 216571, 0); 2286 EndWriteAttribute(); 2287 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2288 </div> 2289 <div class=""col-6""> 2290 <p class=""js-maegler-name""></p> 2291 <p class=""js-maegler-address""></p> 2292 <p class=""js-maegler-phone""></p> 2293 <p class=""js-maegler-mail""></p> 2294 </div> 2295 </div> 2296 <p>"); 2297 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2298 WriteLiteral(@"</p> 2299 </div> 2300 </div> 2301 2302 <!--ÅBENT HUS--> 2303 <div id=""panel-aabenthus"" class=""panel panel-form""> 2304 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2305 <b></b> 2306 </button> 2307 2308 2309 <form id=""form-aabenthus"" method=""POST"" action=""/InboxHandler""> 2310 <h2>"); 2311 Write(Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")); 2312 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>"); 2313 Write(Translate("Smarptage:Adresse", "Adresse:")); 2314 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>"); 2315 Write(Translate("Smarptage:Date", "Dato:")); 2316 WriteLiteral("</strong> <label class=\"js-aabenthus-date mb-0\"></label>\r\n </div>\r\n <div class=\"d-block mb-4\">\r\n <strong>"); 2317 Write(Translate("Smarptage:Time", "Tidspunkt:")); 2318 WriteLiteral("</strong> <label class=\"js-aabenthus-time mb-0\"></label>\r\n </div>\r\n <h3>"); 2319 Write(Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")); 2320 WriteLiteral("</h3>\r\n <div class=\"form-group\">\r\n <label for=\"aabenthus-name\"><strong>"); 2321 Write(Translate("form-navn", "Navn")); 2322 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2323 BeginWriteAttribute("placeholder", " placeholder=\'", 218189, "\'", 218273, 1); 2324 WriteAttributeValue("", 218203, Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn"), 218203, 70, false); 2325 EndWriteAttribute(); 2326 BeginWriteAttribute("value", " value=\'", 218274, "\'", 218314, 1); 2327 WriteAttributeValue("", 218282, UserContext.Current?.User?.Name, 218282, 32, false); 2328 EndWriteAttribute(); 2329 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2330 Write(Translate("form-email", "E-mail")); 2331 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\""); 2332 BeginWriteAttribute("placeholder", " placeholder=\'", 218578, "\'", 218665, 1); 2333 WriteAttributeValue("", 218592, Translate("Smartpage:Aabenthus.Placeholder.Email", "Indtast din e-mail"), 218592, 73, false); 2334 EndWriteAttribute(); 2335 BeginWriteAttribute("value", " value=\'", 218666, "\'", 218706, 1); 2336 WriteAttributeValue("", 218674, UserContext.Current.User?.Email, 218674, 32, false); 2337 EndWriteAttribute(); 2338 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2339 Write(Translate("form-mobile", "Mobil nr.")); 2340 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2341 BeginWriteAttribute("placeholder", " placeholder=\'", 218999, "\'", 219086, 1); 2342 WriteAttributeValue("", 219013, Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr."), 219013, 73, false); 2343 EndWriteAttribute(); 2344 BeginWriteAttribute("value", " value=\'", 219087, "\'", 219127, 1); 2345 WriteAttributeValue("", 219095, UserContext.Current.User?.Phone, 219095, 32, false); 2346 EndWriteAttribute(); 2347 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2348 Write(Translate("form-telephone", "Telefon nr.")); 2349 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2350 BeginWriteAttribute("placeholder", " placeholder=\'", 219397, "\'", 219483, 1); 2351 WriteAttributeValue("", 219411, Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr."), 219411, 72, false); 2352 EndWriteAttribute(); 2353 BeginWriteAttribute("value", " value=\'", 219484, "\'", 219524, 1); 2354 WriteAttributeValue("", 219492, UserContext.Current.User?.Phone, 219492, 32, false); 2355 EndWriteAttribute(); 2356 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\">"); 2357 Write(Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")); 2358 WriteLiteral(@"</button> 2359 </div> 2360 </div> 2361 </div> 2362 <div class=""form-group""> 2363 <div class=""checkbox""> 2364 <label> 2365 <input type=""checkbox"" name=""kontaktmigok"" required /> 2366 2367 <span class=""base-color"">"); 2368 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2369 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n "); 2370 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>")); 2371 WriteLiteral("\r\n\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"ah\" />\r\n <input type=\"hidden\" name=\"origin\""); 2372 BeginWriteAttribute("value", " value=\"", 220687, "\"", 220695, 0); 2373 EndWriteAttribute(); 2374 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2375 BeginWriteAttribute("value", " value=\"", 220745, "\"", 220760, 1); 2376 WriteAttributeValue("", 220753, userID, 220753, 7, false); 2377 EndWriteAttribute(); 2378 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2379 BeginWriteAttribute("value", " value=\"", 220808, "\"", 220832, 1); 2380 WriteAttributeValue("", 220816, Pageview.AreaID, 220816, 16, false); 2381 EndWriteAttribute(); 2382 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2383 BeginWriteAttribute("value", " value=\"", 220881, "\"", 220897, 1); 2384 WriteAttributeValue("", 220889, butikId, 220889, 8, false); 2385 EndWriteAttribute(); 2386 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsaddresse\""); 2387 BeginWriteAttribute("value", " value=\"", 220951, "\"", 220959, 0); 2388 EndWriteAttribute(); 2389 WriteLiteral(" class=\"js-aabenthus-address-input\" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2390 BeginWriteAttribute("value", " value=\"", 221048, "\"", 221056, 0); 2391 EndWriteAttribute(); 2392 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2393 BeginWriteAttribute("value", " value=\"", 221107, "\"", 221115, 0); 2394 EndWriteAttribute(); 2395 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2396 BeginWriteAttribute("value", " value=\"", 221165, "\"", 221173, 0); 2397 EndWriteAttribute(); 2398 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2399 BeginWriteAttribute("value", " value=\"", 221223, "\"", 221231, 0); 2400 EndWriteAttribute(); 2401 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsnr\""); 2402 BeginWriteAttribute("value", " value=\"", 221279, "\"", 221287, 0); 2403 EndWriteAttribute(); 2404 WriteLiteral(" class=\"js-sagsnr\" />\r\n <input type=\"hidden\" name=\"productId\""); 2405 BeginWriteAttribute("value", " value=\"", 221356, "\"", 221412, 1); 2406 WriteAttributeValue("", 221364, Dynamicweb.Context.Current.Request["ProductId"], 221364, 48, false); 2407 EndWriteAttribute(); 2408 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"aftaleid\""); 2409 BeginWriteAttribute("value", " value=\"", 221462, "\"", 221470, 0); 2410 EndWriteAttribute(); 2411 WriteLiteral(@" class=""js-aftaleid"" /> 2412 2413 <input type=""hidden"" name=""dateMail"" class=""js-aabenthus-date-input"" /> 2414 <input type=""hidden"" name=""timeMail"" class=""js-aabenthus-time-input"" /> 2415 <input type=""hidden"" name=""brokerImageMail"" class=""property-broker-image-input"" /> 2416 <input type=""hidden"" name=""employeeNameMail"" class=""js-maegler-employee-name-input"" /> 2417 <input type=""hidden"" name=""employeeTitleMail"" class=""js-maegler-employee-title-input"" /> 2418 <input type=""hidden"" name=""employeeMailMail"" class=""js-maegler-mail-input"" /> 2419 <input type=""hidden"" name=""employeeMobileMail"" class=""js-maegler-mobile-input"" /> 2420 <input type=""hidden"" name=""employeePhoneMail"" class=""js-maegler-phone-input"" /> 2421 2422 <input type=""hidden"" name=""brokerNameMail"" class=""js-broker-name-input"" /> 2423 <input type=""hidden"" name=""brokerAddressMail"" class=""js-broker-address-input"" /> 2424 <input type=""hidden"" name=""brokerPhoneMail"" class=""js-broker-phone-input"" /> 2425 </form> 2426 <di"); 2427 WriteLiteral("v id=\"tak-aabenthus\" style=\"display:none;\">\r\n <h2>"); 2428 Write(Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")); 2429 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>"); 2430 Write(Translate("Smarptage:Adresse", "Adresse:")); 2431 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>"); 2432 Write(Translate("Smarptage:Date", "Dato:")); 2433 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>"); 2434 Write(Translate("Smarptage:Time", "Tidspunkt:")); 2435 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>"); 2436 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>")); 2437 WriteLiteral("</p>\r\n </div>\r\n <div class=\"js-not-employee\">\r\n <p>"); 2438 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")); 2439 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\""); 2440 BeginWriteAttribute("style", " style=\"", 223862, "\"", 223870, 0); 2441 EndWriteAttribute(); 2442 WriteLiteral(@"></div> 2443 2444 </div> 2445 </div> 2446 <div class=""col-12""> 2447 <div class=""bg-base""> 2448 2449 <div class=""js-employee""> 2450 <h4 class=""js-maegler-employee-name""></h4> 2451 <div class=""icon-container""> 2452 <i class=""fas fa-envelope""></i> <span class=""js-maegler-mail""></span> 2453 </div> 2454 <div class=""icon-container""> 2455 <i class=""fas fa-phone""></i> <span class=""js-maegler-mobile""></span> 2456 </div> 2457 </div> 2458 2459 2460 <h4 class=""js-maegler-name""></h4> 2461 <div class=""icon-container""> 2462 <i class=""fas fa-map-marker-alt""></i> <span class=""js-maegler-address""></span> 2463 </div> 2464 <div class=""icon-container""> 2465 <i class=""fas fa-phone""></i> <span class=""js-maegler-phone""></span>"); 2466 WriteLiteral(@" 2467 2468 </div> 2469 <a class=""btn btn-border"" onclick=""panelKontaktmaeglerGuldkoeber()"">KONTAKT MÆGLER</a> 2470 </div> 2471 </div> 2472 </div> 2473 </div> 2474 </div> 2475 2476 <!-- KONTAKT GULDKØBER --> 2477 <div id=""panel-kontakt-guldkoeber"" class=""panel panel-form""> 2478 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2479 <b></b> 2480 </button> 2481 <h2>"); 2482 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")); 2483 WriteLiteral("</h2>\r\n <form id=\"form-kontaktmaegler\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>"); 2484 Write(Translate("form-navn", "Navn")); 2485 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2486 BeginWriteAttribute("placeholder", " placeholder=\'", 225655, "\'", 225700, 1); 2487 WriteAttributeValue("", 225669, Translate("form-navn", "Navn"), 225669, 31, false); 2488 EndWriteAttribute(); 2489 BeginWriteAttribute("value", " value=\'", 225701, "\'", 225740, 1); 2490 WriteAttributeValue("", 225709, UserContext.Current.User?.Name, 225709, 31, false); 2491 EndWriteAttribute(); 2492 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2493 Write(Translate("form-email", "E-mail")); 2494 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\""); 2495 BeginWriteAttribute("placeholder", " placeholder=\'", 226004, "\'", 226052, 1); 2496 WriteAttributeValue("", 226018, Translate("form-email", "E-mail"), 226018, 34, false); 2497 EndWriteAttribute(); 2498 BeginWriteAttribute("value", " value=\'", 226053, "\'", 226093, 1); 2499 WriteAttributeValue("", 226061, UserContext.Current.User?.Email, 226061, 32, false); 2500 EndWriteAttribute(); 2501 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2502 Write(Translate("form-mobile", "Mobil nr.")); 2503 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2504 BeginWriteAttribute("placeholder", " placeholder=\'", 226391, "\'", 226476, 1); 2505 WriteAttributeValue("", 226405, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 226405, 71, false); 2506 EndWriteAttribute(); 2507 BeginWriteAttribute("value", " value=\'", 226477, "\'", 226517, 1); 2508 WriteAttributeValue("", 226485, UserContext.Current.User?.Phone, 226485, 32, false); 2509 EndWriteAttribute(); 2510 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2511 Write(Translate("form-telephone", "Telefon nr.")); 2512 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2513 BeginWriteAttribute("placeholder", " placeholder=\'", 226787, "\'", 226871, 1); 2514 WriteAttributeValue("", 226801, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 226801, 70, false); 2515 EndWriteAttribute(); 2516 BeginWriteAttribute("value", " value=\'", 226872, "\'", 226912, 1); 2517 WriteAttributeValue("", 226880, UserContext.Current.User?.Phone, 226880, 32, false); 2518 EndWriteAttribute(); 2519 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2520 Write(Translate("form-zip", "Post nr")); 2521 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2522 BeginWriteAttribute("placeholder", " placeholder=\'", 227228, "\'", 227306, 1); 2523 WriteAttributeValue("", 227242, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 227242, 64, false); 2524 EndWriteAttribute(); 2525 BeginWriteAttribute("value", " value=\"", 227307, "\"", 227323, 1); 2526 WriteAttributeValue("", 227315, userZip, 227315, 8, false); 2527 EndWriteAttribute(); 2528 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2529 Write(Translate("form-city", "By")); 2530 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>"); 2531 Write(Translate("form-adresse", "Adresse")); 2532 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2533 BeginWriteAttribute("placeholder", " placeholder=\'", 227879, "\'", 227969, 1); 2534 WriteAttributeValue("", 227893, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 227893, 76, false); 2535 EndWriteAttribute(); 2536 BeginWriteAttribute("value", " value=\"", 227970, "\"", 227990, 1); 2537 WriteAttributeValue("", 227978, userAddress, 227978, 12, false); 2538 EndWriteAttribute(); 2539 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2540 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2541 WriteLiteral("</label>\r\n </div>\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\""); 2542 BeginWriteAttribute("placeholder", " placeholder=\'", 228316, "\'", 228394, 1); 2543 WriteAttributeValue("", 228330, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 228330, 64, false); 2544 EndWriteAttribute(); 2545 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>"); 2546 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2547 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\">"); 2548 Write(Translate("KontaktMægler", "Kontakt Mægler")); 2549 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2550 Write(privacyPolicyText); 2551 WriteLiteral(" <a"); 2552 BeginWriteAttribute("href", " href=\"", 229180, "\"", 229204, 2); 2553 WriteAttributeValue("", 229187, "mailto:", 229187, 7, true); 2554 WriteAttributeValue("", 229194, termsMail, 229194, 10, false); 2555 EndWriteAttribute(); 2556 WriteLiteral(">"); 2557 Write(termsMail); 2558 WriteLiteral("</a>.\r\n Læs mere på <a"); 2559 BeginWriteAttribute("href", " href=\"", 229249, "\"", 229283, 1); 2560 WriteAttributeValue("", 229256, settings_Persondatapolitik, 229256, 27, false); 2561 EndWriteAttribute(); 2562 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"gk\" />\r\n <input type=\"hidden\" name=\"origin\""); 2563 BeginWriteAttribute("value", " value=\"", 229426, "\"", 229434, 0); 2564 EndWriteAttribute(); 2565 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2566 BeginWriteAttribute("value", " value=\"", 229484, "\"", 229499, 1); 2567 WriteAttributeValue("", 229492, userID, 229492, 7, false); 2568 EndWriteAttribute(); 2569 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2570 BeginWriteAttribute("value", " value=\"", 229547, "\"", 229571, 1); 2571 WriteAttributeValue("", 229555, Pageview.AreaID, 229555, 16, false); 2572 EndWriteAttribute(); 2573 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2574 BeginWriteAttribute("value", " value=\"", 229620, "\"", 229636, 1); 2575 WriteAttributeValue("", 229628, butikId, 229628, 8, false); 2576 EndWriteAttribute(); 2577 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2578 BeginWriteAttribute("value", " value=\"", 229690, "\"", 229698, 0); 2579 EndWriteAttribute(); 2580 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2581 BeginWriteAttribute("value", " value=\"", 229749, "\"", 229757, 0); 2582 EndWriteAttribute(); 2583 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2584 BeginWriteAttribute("value", " value=\"", 229807, "\"", 229815, 0); 2585 EndWriteAttribute(); 2586 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2587 BeginWriteAttribute("value", " value=\"", 229865, "\"", 229873, 0); 2588 EndWriteAttribute(); 2589 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-maegler-guldkoeber\" style=\"display:none;\">\r\n <h2>"); 2590 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2591 WriteLiteral("</h2>\r\n <p>"); 2592 Write(Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")); 2593 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2594 BeginWriteAttribute("src", " src=\"", 230235, "\"", 230241, 0); 2595 EndWriteAttribute(); 2596 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2597 </div> 2598 <div class=""col-6""> 2599 <p class=""js-maegler-name""></p> 2600 <p class=""js-maegler-address""></p> 2601 <p class=""js-maegler-phone""></p> 2602 <p class=""js-maegler-mail""></p> 2603 </div> 2604 </div> 2605 <p>"); 2606 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2607 WriteLiteral(@"</p> 2608 </div> 2609 </div> 2610 2611 <!-- BESTIL SALGSVURDERING --> 2612 <div id=""panel-salgsvurdering"" class=""panel panel-form""> 2613 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2614 <b></b> 2615 </button> 2616 2617 <form id=""bestil-salgsvurdering"" class=""buyer-advisor-form js-buyer-advisor-form"" method=""POST"" action=""/InboxHandler""> 2618 <h2 class=""js-buyer-advisor-header"">"); 2619 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")); 2620 WriteLiteral("</h2>\r\n <p>"); 2621 Write(Translate("form-salgsvurdering-beskrivelse", "")); 2622 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2623 Write(Translate("form-navn", "Navn")); 2624 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2625 BeginWriteAttribute("placeholder", " placeholder=\'", 231398, "\'", 231487, 1); 2626 WriteAttributeValue("", 231412, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 231412, 75, false); 2627 EndWriteAttribute(); 2628 BeginWriteAttribute("value", " value=\'", 231488, "\'", 231527, 1); 2629 WriteAttributeValue("", 231496, UserContext.Current.User?.Name, 231496, 31, false); 2630 EndWriteAttribute(); 2631 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2632 Write(Translate("form-email", "E-mail")); 2633 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\""); 2634 BeginWriteAttribute("placeholder", " placeholder=\'", 231791, "\'", 231883, 1); 2635 WriteAttributeValue("", 231805, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 231805, 78, false); 2636 EndWriteAttribute(); 2637 BeginWriteAttribute("value", " value=\'", 231884, "\'", 231924, 1); 2638 WriteAttributeValue("", 231892, UserContext.Current.User?.Email, 231892, 32, false); 2639 EndWriteAttribute(); 2640 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2641 Write(Translate("form-mobile", "Mobil nr.")); 2642 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2643 BeginWriteAttribute("placeholder", " placeholder=\'", 232222, "\'", 232314, 1); 2644 WriteAttributeValue("", 232236, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 232236, 78, false); 2645 EndWriteAttribute(); 2646 BeginWriteAttribute("value", " value=\'", 232315, "\'", 232355, 1); 2647 WriteAttributeValue("", 232323, UserContext.Current.User?.Phone, 232323, 32, false); 2648 EndWriteAttribute(); 2649 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2650 Write(Translate("form-telephone", "Telefon nr.")); 2651 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2652 BeginWriteAttribute("placeholder", " placeholder=\'", 232625, "\'", 232716, 1); 2653 WriteAttributeValue("", 232639, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 232639, 77, false); 2654 EndWriteAttribute(); 2655 BeginWriteAttribute("value", " value=\'", 232717, "\'", 232757, 1); 2656 WriteAttributeValue("", 232725, UserContext.Current.User?.Phone, 232725, 32, false); 2657 EndWriteAttribute(); 2658 WriteLiteral(" />\r\n </div>\r\n\r\n </div>\r\n\r\n <h3>"); 2659 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2660 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2661 Write(Translate("form-zip", "Post nr")); 2662 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2663 BeginWriteAttribute("placeholder", " placeholder=\'", 233177, "\'", 233255, 1); 2664 WriteAttributeValue("", 233191, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 233191, 64, false); 2665 EndWriteAttribute(); 2666 BeginWriteAttribute("value", " value=\"", 233256, "\"", 233272, 1); 2667 WriteAttributeValue("", 233264, userZip, 233264, 8, false); 2668 EndWriteAttribute(); 2669 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2670 Write(Translate("form-city", "By")); 2671 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>"); 2672 Write(Translate("form-adresse", "Adresse")); 2673 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2674 BeginWriteAttribute("placeholder", " placeholder=\'", 233826, "\'", 233916, 1); 2675 WriteAttributeValue("", 233840, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 233840, 76, false); 2676 EndWriteAttribute(); 2677 BeginWriteAttribute("value", " value=\"", 233917, "\"", 233937, 1); 2678 WriteAttributeValue("", 233925, userAddress, 233925, 12, false); 2679 EndWriteAttribute(); 2680 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2681 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2682 WriteLiteral(@"</label> 2683 </div> 2684 2685 <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""> 2686 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2687 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2688 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\""); 2689 BeginWriteAttribute("placeholder", " placeholder=\'", 234707, "\'", 234785, 1); 2690 WriteAttributeValue("", 234721, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 234721, 64, false); 2691 EndWriteAttribute(); 2692 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>"); 2693 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")); 2694 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\""); 2695 BeginWriteAttribute("id", " id=\"", 235231, "\"", 235236, 0); 2696 EndWriteAttribute(); 2697 WriteLiteral(" name=\"choose-broker\""); 2698 BeginWriteAttribute("value", " value=\"", 235258, "\"", 235266, 0); 2699 EndWriteAttribute(); 2700 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\""); 2701 BeginWriteAttribute("for", " for=\"", 235332, "\"", 235338, 0); 2702 EndWriteAttribute(); 2703 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"); 2704 BeginWriteAttribute("src", " src=\"", 235584, "\"", 235590, 0); 2705 EndWriteAttribute(); 2706 WriteLiteral(@" class=""img-fluid js-broker-image""> 2707 </div> 2708 <div class=""col-6""> 2709 <span class=""d-block""> 2710 <strong class=""js-choose-broker-name""></strong> 2711 </span> 2712 <span class=""js-choose-broker-address""></span> 2713 <input type=""hidden"" class=""js-choose-broker-phone"""); 2714 BeginWriteAttribute("value", " value=\"", 236002, "\"", 236010, 0); 2715 EndWriteAttribute(); 2716 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\""); 2717 BeginWriteAttribute("value", " value=\"", 236091, "\"", 236099, 0); 2718 EndWriteAttribute(); 2719 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\">"); 2720 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")); 2721 WriteLiteral(@"</h3> 2722 <div class=""js-choose-broker col-12""> 2723 </div> 2724 2725 </div> 2726 2727 <div class=""form-group mt-4""> 2728 <div class=""checkbox""> 2729 <label> 2730 <input type=""checkbox"" name=""kontaktmigok"" required /> 2731 2732 <span class=""consent-checkbox"">"); 2733 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2734 WriteLiteral(@"</span> 2735 2736 </label> 2737 </div> 2738 </div> 2739 <div class=""form-group""> 2740 <div class=""row""> 2741 <div class=""col-12""> 2742 <button type=""submit"" class=""btn btn-green btn-block js-buyer-advisor-button"">"); 2743 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")); 2744 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2745 Write(privacyPolicyText); 2746 WriteLiteral(" <a"); 2747 BeginWriteAttribute("href", " href=\"", 237259, "\"", 237283, 2); 2748 WriteAttributeValue("", 237266, "mailto:", 237266, 7, true); 2749 WriteAttributeValue("", 237273, termsMail, 237273, 10, false); 2750 EndWriteAttribute(); 2751 WriteLiteral(">"); 2752 Write(termsMail); 2753 WriteLiteral("</a>.\r\n Læs mere på <a"); 2754 BeginWriteAttribute("href", " href=\"", 237328, "\"", 237362, 1); 2755 WriteAttributeValue("", 237335, settings_Persondatapolitik, 237335, 27, false); 2756 EndWriteAttribute(); 2757 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\""); 2758 BeginWriteAttribute("value", " value=\"", 237539, "\"", 237547, 0); 2759 EndWriteAttribute(); 2760 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2761 BeginWriteAttribute("value", " value=\"", 237597, "\"", 237612, 1); 2762 WriteAttributeValue("", 237605, userID, 237605, 7, false); 2763 EndWriteAttribute(); 2764 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2765 BeginWriteAttribute("value", " value=\"", 237660, "\"", 237684, 1); 2766 WriteAttributeValue("", 237668, Pageview.AreaID, 237668, 16, false); 2767 EndWriteAttribute(); 2768 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning\" name=\"boligvisning\""); 2769 BeginWriteAttribute("value", " value=\"", 237756, "\"", 237764, 0); 2770 EndWriteAttribute(); 2771 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-butikid\" name=\"butikId\""); 2772 BeginWriteAttribute("value", " value=\"", 237847, "\"", 237855, 0); 2773 EndWriteAttribute(); 2774 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-sagsnr\" name=\"sagsnr\""); 2775 BeginWriteAttribute("value", " value=\"", 237936, "\"", 237944, 0); 2776 EndWriteAttribute(); 2777 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\""); 2778 BeginWriteAttribute("value", " value=\"", 237995, "\"", 238051, 1); 2779 WriteAttributeValue("", 238003, Dynamicweb.Context.Current.Request["ProductId"], 238003, 48, false); 2780 EndWriteAttribute(); 2781 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2782 BeginWriteAttribute("value", " value=\"", 238105, "\"", 238113, 0); 2783 EndWriteAttribute(); 2784 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2785 BeginWriteAttribute("value", " value=\"", 238164, "\"", 238172, 0); 2786 EndWriteAttribute(); 2787 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2788 BeginWriteAttribute("value", " value=\"", 238222, "\"", 238230, 0); 2789 EndWriteAttribute(); 2790 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2791 BeginWriteAttribute("value", " value=\"", 238280, "\"", 238288, 0); 2792 EndWriteAttribute(); 2793 WriteLiteral(" />\r\n <input class=\"js-value-check\" type=\"hidden\" name=\"valueCheck\""); 2794 BeginWriteAttribute("value", " value=\"", 238363, "\"", 238371, 0); 2795 EndWriteAttribute(); 2796 WriteLiteral(" />\r\n <input class=\"js-green-appraisal\" type=\"hidden\" name=\"greenAppraisal\""); 2797 BeginWriteAttribute("value", " value=\"", 238454, "\"", 238462, 0); 2798 EndWriteAttribute(); 2799 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>"); 2800 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2801 WriteLiteral("</h2>\r\n <p>"); 2802 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")); 2803 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2804 BeginWriteAttribute("src", " src=\"", 238824, "\"", 238830, 0); 2805 EndWriteAttribute(); 2806 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2807 </div> 2808 <div class=""col-6""> 2809 <p class=""js-maegler-name""></p> 2810 <p class=""js-maegler-address""></p> 2811 <p class=""js-maegler-phone""></p> 2812 <p class=""js-maegler-mail""></p> 2813 </div> 2814 </div> 2815 <p>"); 2816 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2817 WriteLiteral(@"</p> 2818 </div> 2819 </div> 2820 2821 <!-- BESTIL SALGSVURDERING GULDKØBER --> 2822 <div id=""panel-salgsvurdering-guldkoeber"" class=""panel panel-form""> 2823 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2824 <b></b> 2825 </button> 2826 2827 <form id=""bestil-salgsvurdering-guldkoeber"" method=""POST"" action=""/InboxHandler""> 2828 <h2>"); 2829 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")); 2830 WriteLiteral("</h2>\r\n <p>"); 2831 Write(Translate("form-salgsvurdering-beskrivelse", "")); 2832 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2833 Write(Translate("form-navn", "Navn")); 2834 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2835 BeginWriteAttribute("placeholder", " placeholder=\'", 239938, "\'", 240027, 1); 2836 WriteAttributeValue("", 239952, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 239952, 75, false); 2837 EndWriteAttribute(); 2838 BeginWriteAttribute("value", " value=\'", 240028, "\'", 240067, 1); 2839 WriteAttributeValue("", 240036, UserContext.Current.User?.Name, 240036, 31, false); 2840 EndWriteAttribute(); 2841 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2842 Write(Translate("form-email", "E-mail")); 2843 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\""); 2844 BeginWriteAttribute("placeholder", " placeholder=\'", 240331, "\'", 240423, 1); 2845 WriteAttributeValue("", 240345, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 240345, 78, false); 2846 EndWriteAttribute(); 2847 BeginWriteAttribute("value", " value=\'", 240424, "\'", 240464, 1); 2848 WriteAttributeValue("", 240432, UserContext.Current.User?.Email, 240432, 32, false); 2849 EndWriteAttribute(); 2850 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2851 Write(Translate("form-telephone", "Telefon nr.")); 2852 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2853 BeginWriteAttribute("placeholder", " placeholder=\'", 240773, "\'", 240864, 1); 2854 WriteAttributeValue("", 240787, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 240787, 77, false); 2855 EndWriteAttribute(); 2856 BeginWriteAttribute("value", " value=\'", 240865, "\'", 240905, 1); 2857 WriteAttributeValue("", 240873, UserContext.Current.User?.Phone, 240873, 32, false); 2858 EndWriteAttribute(); 2859 WriteLiteral(" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2860 Write(Translate("form-mobile", "Mobil nr.")); 2861 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2862 BeginWriteAttribute("placeholder", " placeholder=\'", 241155, "\'", 241247, 1); 2863 WriteAttributeValue("", 241169, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 241169, 78, false); 2864 EndWriteAttribute(); 2865 BeginWriteAttribute("value", " value=\'", 241248, "\'", 241288, 1); 2866 WriteAttributeValue("", 241256, UserContext.Current.User?.Phone, 241256, 32, false); 2867 EndWriteAttribute(); 2868 WriteLiteral(" required />\r\n </div>\r\n </div>\r\n\r\n <h3>"); 2869 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2870 WriteLiteral("</h3>\r\n\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2871 Write(Translate("form-zip", "Post nr")); 2872 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2873 BeginWriteAttribute("placeholder", " placeholder=\'", 241717, "\'", 241795, 1); 2874 WriteAttributeValue("", 241731, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 241731, 64, false); 2875 EndWriteAttribute(); 2876 BeginWriteAttribute("value", " value=\"", 241796, "\"", 241812, 1); 2877 WriteAttributeValue("", 241804, userZip, 241804, 8, false); 2878 EndWriteAttribute(); 2879 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2880 Write(Translate("form-city", "By")); 2881 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>"); 2882 Write(Translate("form-adresse", "Adresse")); 2883 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2884 BeginWriteAttribute("placeholder", " placeholder=\'", 242366, "\'", 242456, 1); 2885 WriteAttributeValue("", 242380, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 242380, 76, false); 2886 EndWriteAttribute(); 2887 BeginWriteAttribute("value", " value=\"", 242457, "\"", 242477, 1); 2888 WriteAttributeValue("", 242465, userAddress, 242465, 12, false); 2889 EndWriteAttribute(); 2890 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2891 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2892 WriteLiteral(@"</label> 2893 </div> 2894 2895 <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""> 2896 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2897 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2898 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\""); 2899 BeginWriteAttribute("placeholder", " placeholder=\'", 243247, "\'", 243325, 1); 2900 WriteAttributeValue("", 243261, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 243261, 64, false); 2901 EndWriteAttribute(); 2902 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>"); 2903 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")); 2904 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\""); 2905 BeginWriteAttribute("id", " id=\"", 243769, "\"", 243774, 0); 2906 EndWriteAttribute(); 2907 WriteLiteral(" name=\"choose-broker-gk\""); 2908 BeginWriteAttribute("value", " value=\"", 243799, "\"", 243807, 0); 2909 EndWriteAttribute(); 2910 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\""); 2911 BeginWriteAttribute("for", " for=\"", 243873, "\"", 243879, 0); 2912 EndWriteAttribute(); 2913 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"); 2914 BeginWriteAttribute("src", " src=\"", 244125, "\"", 244131, 0); 2915 EndWriteAttribute(); 2916 WriteLiteral(@" class=""img-fluid js-broker-image""> 2917 </div> 2918 <div class=""col-6""> 2919 <span class=""d-block""> 2920 <strong class=""js-choose-broker-name""></strong> 2921 </span> 2922 <span class=""js-choose-broker-address""></span> 2923 <input type=""hidden"" class=""js-choose-broker-phone"""); 2924 BeginWriteAttribute("value", " value=\"", 244543, "\"", 244551, 0); 2925 EndWriteAttribute(); 2926 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\""); 2927 BeginWriteAttribute("value", " value=\"", 244632, "\"", 244640, 0); 2928 EndWriteAttribute(); 2929 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\">"); 2930 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")); 2931 WriteLiteral(@"</h3> 2932 <div class=""js-choose-broker col-12""> 2933 </div> 2934 2935 </div> 2936 2937 2938 <div class=""form-group""> 2939 <div class=""row""> 2940 <div class=""col-12""> 2941 <button type=""submit"" class=""btn btn-green btn-block"">"); 2942 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")); 2943 WriteLiteral(@"</button> 2944 </div> 2945 </div> 2946 </div> 2947 <div class=""form-group""> 2948 <div class=""checkbox""> 2949 <label> 2950 <input type=""checkbox"" name=""kontaktmigok"" required /> 2951 2952 <span>"); 2953 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2954 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2955 Write(privacyPolicyText); 2956 WriteLiteral(" <a"); 2957 BeginWriteAttribute("href", " href=\"", 245748, "\"", 245772, 2); 2958 WriteAttributeValue("", 245755, "mailto:", 245755, 7, true); 2959 WriteAttributeValue("", 245762, termsMail, 245762, 10, false); 2960 EndWriteAttribute(); 2961 WriteLiteral(">"); 2962 Write(termsMail); 2963 WriteLiteral("</a>.\r\n Læs mere på <a"); 2964 BeginWriteAttribute("href", " href=\"", 245817, "\"", 245851, 1); 2965 WriteAttributeValue("", 245824, settings_Persondatapolitik, 245824, 27, false); 2966 EndWriteAttribute(); 2967 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\""); 2968 BeginWriteAttribute("value", " value=\"", 246028, "\"", 246036, 0); 2969 EndWriteAttribute(); 2970 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2971 BeginWriteAttribute("value", " value=\"", 246086, "\"", 246101, 1); 2972 WriteAttributeValue("", 246094, userID, 246094, 7, false); 2973 EndWriteAttribute(); 2974 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2975 BeginWriteAttribute("value", " value=\"", 246149, "\"", 246173, 1); 2976 WriteAttributeValue("", 246157, Pageview.AreaID, 246157, 16, false); 2977 EndWriteAttribute(); 2978 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning-gk\" name=\"boligvisning\""); 2979 BeginWriteAttribute("value", " value=\"", 246248, "\"", 246256, 0); 2980 EndWriteAttribute(); 2981 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-butikid\" name=\"butikId\""); 2982 BeginWriteAttribute("value", " value=\"", 246342, "\"", 246350, 0); 2983 EndWriteAttribute(); 2984 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-sagsnr\" name=\"sagsnr\""); 2985 BeginWriteAttribute("value", " value=\"", 246434, "\"", 246442, 0); 2986 EndWriteAttribute(); 2987 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\""); 2988 BeginWriteAttribute("value", " value=\"", 246493, "\"", 246549, 1); 2989 WriteAttributeValue("", 246501, Dynamicweb.Context.Current.Request["ProductId"], 246501, 48, false); 2990 EndWriteAttribute(); 2991 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2992 BeginWriteAttribute("value", " value=\"", 246603, "\"", 246611, 0); 2993 EndWriteAttribute(); 2994 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2995 BeginWriteAttribute("value", " value=\"", 246662, "\"", 246670, 0); 2996 EndWriteAttribute(); 2997 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2998 BeginWriteAttribute("value", " value=\"", 246720, "\"", 246728, 0); 2999 EndWriteAttribute(); 3000 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 3001 BeginWriteAttribute("value", " value=\"", 246778, "\"", 246786, 0); 3002 EndWriteAttribute(); 3003 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>"); 3004 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 3005 WriteLiteral("</h2>\r\n <p>"); 3006 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")); 3007 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 3008 BeginWriteAttribute("src", " src=\"", 247148, "\"", 247154, 0); 3009 EndWriteAttribute(); 3010 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 3011 </div> 3012 <div class=""col-6""> 3013 <p class=""js-maegler-name""></p> 3014 <p class=""js-maegler-address""></p> 3015 <p class=""js-maegler-phone""></p> 3016 <p class=""js-maegler-mail""></p> 3017 </div> 3018 </div> 3019 <p>"); 3020 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 3021 WriteLiteral("</p>\r\n </div>\r\n</div>\r\n\r\n\r\n <div class=\"overlay-wrapper\"></div>\r\n <div class=\"dropdown-overlay\"></div>\r\n <div class=\"loader-inner ball-pulse\"></div>\r\n\r\n"); 3022 3023 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js")); 3024 WriteLiteral(" <script type=\"text/javascript\""); 3025 BeginWriteAttribute("src", " src=\'", 247955, "\'", 248059, 3); 3026 WriteAttributeValue("", 247961, TemplateUrl, 247961, 14, false); 3027 WriteAttributeValue("", 247975, "assets/webpack/js/3rdparty/viamapstrap.js?", 247975, 42, true); 3028 WriteAttributeValue("", 248017, viamapstrapFileInfo.LastWriteTime.Ticks, 248017, 42, false); 3029 EndWriteAttribute(); 3030 WriteLiteral(" async></script>\r\n"); 3031 3032 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js")); 3033 WriteLiteral(" <script type=\"text/javascript\""); 3034 BeginWriteAttribute("src", " src=\'", 248262, "\'", 248349, 3); 3035 WriteAttributeValue("", 248268, TemplateUrl, 248268, 14, false); 3036 WriteAttributeValue("", 248282, "assets/dist/bundle.app.min.js?", 248282, 30, true); 3037 WriteAttributeValue("", 248312, bundleFileInfo.LastWriteTime.Ticks, 248312, 37, false); 3038 EndWriteAttribute(); 3039 WriteLiteral(" async></script>\r\n"); 3040 WriteLiteral("\r\n "); 3041 Write(RenderSnippet("JavaScriptBottom")); 3042 WriteLiteral("\r\n\r\n"); 3043 if (Context.Current.Request.QueryString["ShowLogin"] == "true") 3044 { 3045 WriteLiteral(" <input class=\"js-showLogin\" value=\"true\" />\r\n"); 3046 } 3047 WriteLiteral("\r\n"); 3048 if (!string.IsNullOrEmpty(settings_ConduzeId)) 3049 { 3050 WriteLiteral(" <script type=\"text/javascript\" id=\"conduze-sdk\""); 3051 BeginWriteAttribute("src", " src=\"", 248673, "\"", 248734, 3); 3052 WriteAttributeValue("", 248679, "https://cdn.conduze.com/", 248679, 24, true); 3053 WriteAttributeValue("", 248703, settings_ConduzeId, 248703, 19, false); 3054 WriteAttributeValue("", 248722, "/tracking.js", 248722, 12, true); 3055 EndWriteAttribute(); 3056 WriteLiteral(" async></script>\r\n"); 3057 } 3058 WriteLiteral("\r\n"); 3059 if (!string.IsNullOrEmpty(settings_Weply)) 3060 { 3061 WriteLiteral(" <script"); 3062 BeginWriteAttribute("src", " src=\"", 248833, "\"", 248884, 2); 3063 WriteAttributeValue("", 248839, "https://app.weply.chat/widget/", 248839, 30, true); 3064 WriteAttributeValue("", 248869, settings_Weply, 248869, 15, false); 3065 EndWriteAttribute(); 3066 WriteLiteral(" async></script>\r\n"); 3067 } 3068 WriteLiteral("\r\n</body>\r\n</html>\r\n\r\n"); 3069 } 3070 #pragma warning restore 1998 3071 3072 void RenderErhvervsTypeCheckboxes(string productGroupFilter) 3073 { 3074 WriteLiteral(@" <div class=""col-xs-6 col-md-4""> 3075 <div class=""checkbox""> 3076 <label> 3077 <input type=""checkbox"" name=""propertytype"" value=""bolig/erhverv, kombineret erhverv og bolig, byejendom (kontor, butik, beboelse)"" /> 3078 <span>Bolig/erhverv</span> 3079 </label> 3080 </div> 3081 <div class=""checkbox""> 3082 <label> 3083 <input type=""checkbox"" name=""propertytype"" value=""erhvervsgrund"" /> 3084 <span>Erhvervsgrund</span> 3085 </label> 3086 </div> 3087 <div class=""checkbox""> 3088 <label> 3089 <input type=""checkbox"" name=""propertytype"" value=""boligudlejning"" /> 3090 <span>Boligudlejningsejendom</span> 3091 </label> 3092 </div> 3093 <div class=""checkbox""> 3094 <label> 3095 <input type=""checkbox"" name=""propertytype"" value=""kontor, klinik, kontorhotel, showroom, under"); 3096 WriteLiteral(@"visningslokaler"" /> 3097 <span>Kontor</span> 3098 </label> 3099 </div> 3100 </div> 3101 <div class=""col-xs-6 col-md-4""> 3102 <div class=""checkbox""> 3103 <label> 3104 <input type=""checkbox"" name=""propertytype"" value=""butik / detail, butik / detailhandel"" /> 3105 <span>Butik/detailhandel</span> 3106 </label> 3107 </div> 3108 <div class=""checkbox""> 3109 <label> 3110 <input type=""checkbox"" name=""propertytype"" value=""industri / logistik, håndværk, industri, kontor / lager, logistik"" /> 3111 <span>Produktion/lager</span> 3112 </label> 3113 </div> 3114 <div class=""checkbox""> 3115 <label> 3116 <input type=""checkbox"" name=""propertytype"" value=""hotel - kursusejendom, restaurant"" /> 3117 <span>Hotel og restaurant</span> 3118 </label> 3119 </div> 3120 <div c"); 3121 WriteLiteral(@"lass=""checkbox""> 3122 <label> 3123 <input type=""checkbox"" name=""propertytype"" value=""projekt ejendom"" /> 3124 <span>Projektejendom</span> 3125 </label> 3126 </div> 3127 </div> 3128 <div class=""col-xs-6 col-md-4""> 3129 <div class=""checkbox""> 3130 <label> 3131 <input type=""checkbox"" name=""propertytype"" value=""andet"" /> 3132 <span>Andet</span> 3133 </label> 3134 </div> 3135 </div> 3136 "); 3137 WriteLiteral(" <input type=\"hidden\" name=\"propertycategory\" value=\"erhverv, udlejning\" />\r\n <input type=\"hidden\" name=\"filtrering\""); 3138 BeginWriteAttribute("value", " value=\"", 3445, "\"", 3472, 1); 3139 WriteAttributeValue("", 3453, productGroupFilter, 3453, 19, false); 3140 EndWriteAttribute(); 3141 WriteLiteral(" />\r\n"); 3142 } 3143 void RenderBoligtypeCheckboxes() 3144 { 3145 WriteLiteral(@" <div class=""col-6 col-md-4""> 3146 <div class=""checkbox""> 3147 <label> 3148 <input type=""checkbox"" name=""propertytype"" value=""villa"" /> 3149 <span>Villa</span> 3150 </label> 3151 </div> 3152 <div class=""checkbox""> 3153 <label> 3154 <input type=""checkbox"" name=""propertytype"" value=""rækkehus"" /> 3155 <span>Rækkehus</span> 3156 </label> 3157 </div> 3158 <div class=""checkbox""> 3159 <label> 3160 <input type=""checkbox"" name=""propertytype"" value=""villalejlighed"" /> 3161 <span>Villalejlighed</span> 3162 </label> 3163 </div> 3164 <div class=""checkbox""> 3165 <label> 3166 <input type=""checkbox"" name=""propertytype"" value=""andelsbolig"" /> 3167 <span>Andelsbolig</span> 3168 </label> 3169 </div> 3170 </div> 3171 <div class=""co"); 3172 WriteLiteral(@"l-6 col-md-4""> 3173 <div class=""checkbox""> 3174 <label> 3175 <input type=""checkbox"" name=""propertytype"" value=""fritidshus, fritidsbolig"" /> 3176 <span>Fritidsbolig</span> 3177 </label> 3178 </div> 3179 <div class=""checkbox""> 3180 <label> 3181 <input type=""checkbox"" name=""propertytype"" value=""ejerlejlighed"" class=""specialOption"" data-disable-slider=""#grundareal"" data-disable-slider-ranges=""#grundarealmin,#grundarealmax"" /> 3182 <span>Ejerlejlighed</span> 3183 </label> 3184 </div> 3185 <div class=""checkbox""> 3186 <label> 3187 <input type=""checkbox"" name=""propertytype"" value=""helårsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" /> 3188 <span>Helårsgrund</span> 3189 </label> 3190 </div> 3191 <div "); 3192 WriteLiteral(@"class=""checkbox""> 3193 <label> 3194 <input type=""checkbox"" name=""propertytype"" value=""fritidsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" /> 3195 <span>Fritidsgrund</span> 3196 </label> 3197 </div> 3198 </div> 3199 <div class=""col-6 col-md-4""> 3200 <div class=""checkbox""> 3201 <label> 3202 <input type=""checkbox"" name=""propertytype"" value=""landejendom, lystejendom"" class=""specialOption"" data-disable-checkbox=""true"" /> 3203 <span>Landejendom</span> 3204 </label> 3205 </div> 3206 <div class=""checkbox""> 3207 <label> 3208 <input type=""checkbox"" name=""propertytype"" value=""erhverv"" class=""specialOption"" data-disable-checkbox=""true"" data-disable-slider=""#roomsslider"" data-disable-slider-ranges=""#roomsmin"" /> 3209 <span>Erhverv<"); 3210 WriteLiteral("/span>\r\n </label>\r\n </div>\r\n </div>\r\n"); 3211 } 3212 3213 void RenderChecked(string queryString) 3214 { 3215 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString) 3216 { 3217 Write("checked"); 3218 3219 } 3220 } 3221 3222 void RenderBoligtypeCheckboxesDropdown() 3223 { 3224 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){ 3225 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" }, 3226 { "Andelsbolig", "andelsbolig" } 3227 }; 3228 foreach (KeyValuePair<string, string> type in propertyTypes) 3229 { 3230 bool ischecked = false; 3231 string[] propertytypeSplit = new string[0]; 3232 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"])) 3233 { 3234 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(','); 3235 } 3236 foreach (var propertytypeParams in propertytypeSplit) 3237 { 3238 if (propertytypeParams == type.Value) 3239 { 3240 ischecked = true; 3241 } 3242 } 3243 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3244 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3245 WriteLiteral("\r\n <input type=\"checkbox\" name=\"propertytype\""); 3246 BeginWriteAttribute("value", " value=\"", 8068, "\"", 8087, 1); 3247 WriteAttributeValue("", 8076, type.Value, 8076, 11, false); 3248 EndWriteAttribute(); 3249 WriteLiteral(" class=\"js-input-check datavalue js-datavalue js-count\" data-val=\""); 3250 Write(type.Key); 3251 WriteLiteral("\" onchange=\"submitFilter()\""); 3252 BeginWriteAttribute("checked", " checked=\"", 8190, "\"", 8210, 1); 3253 WriteAttributeValue("", 8200, ischecked, 8200, 10, false); 3254 EndWriteAttribute(); 3255 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3256 } 3257 3258 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){ 3259 { "Fritidsbolig", "fritidshus, fritidsbolig" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" }, 3260 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" } 3261 }; 3262 foreach (KeyValuePair<string, string> type in propertyTypes2) 3263 { 3264 bool ischecked = false; 3265 string[] propertytypeSplit2 = new string[0]; 3266 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"])) 3267 { 3268 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(','); 3269 } 3270 foreach (var propertytypeParams in propertytypeSplit2) 3271 { 3272 if (propertytypeParams == type.Value) 3273 { 3274 ischecked = true; 3275 } 3276 } 3277 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3278 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3279 WriteLiteral("\r\n"); 3280 if (type.Value == "ejerlejlighed") 3281 { 3282 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3283 BeginWriteAttribute("value", " value=\"", 9634, "\"", 9653, 1); 3284 WriteAttributeValue("", 9642, type.Value, 9642, 11, false); 3285 EndWriteAttribute(); 3286 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#grundareal\" data-disable-slider-ranges=\"#grundarealmin,#grundarealmax\" data-val=\""); 3287 Write(type.Key); 3288 WriteLiteral("\" onchange=\"submitFilter()\""); 3289 BeginWriteAttribute("checked", " checked=\"", 9827, "\"", 9847, 1); 3290 WriteAttributeValue("", 9837, ischecked, 9837, 10, false); 3291 EndWriteAttribute(); 3292 WriteLiteral(" />\r\n"); 3293 } 3294 else if (type.Value == "helårsgrund") 3295 { 3296 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3297 BeginWriteAttribute("value", " value=\"", 10024, "\"", 10043, 1); 3298 WriteAttributeValue("", 10032, type.Value, 10032, 11, false); 3299 EndWriteAttribute(); 3300 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\""); 3301 Write(type.Key); 3302 WriteLiteral("\" onchange=\"submitFilter()\""); 3303 BeginWriteAttribute("checked", " checked=\"", 10240, "\"", 10260, 1); 3304 WriteAttributeValue("", 10250, ischecked, 10250, 10, false); 3305 EndWriteAttribute(); 3306 WriteLiteral(" />\r\n"); 3307 } 3308 else if (type.Value == "fritidsgrund") 3309 { 3310 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3311 BeginWriteAttribute("value", " value=\"", 10438, "\"", 10457, 1); 3312 WriteAttributeValue("", 10446, type.Value, 10446, 11, false); 3313 EndWriteAttribute(); 3314 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\""); 3315 Write(type.Key); 3316 WriteLiteral("\" onchange=\"submitFilter()\""); 3317 BeginWriteAttribute("checked", " checked=\"", 10654, "\"", 10674, 1); 3318 WriteAttributeValue("", 10664, ischecked, 10664, 10, false); 3319 EndWriteAttribute(); 3320 WriteLiteral(" />\r\n"); 3321 } 3322 else 3323 { 3324 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3325 BeginWriteAttribute("value", " value=\"", 10818, "\"", 10837, 1); 3326 WriteAttributeValue("", 10826, type.Value, 10826, 11, false); 3327 EndWriteAttribute(); 3328 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3329 Write(type.Key); 3330 WriteLiteral("\" onchange=\"submitFilter()\""); 3331 BeginWriteAttribute("checked", " checked=\"", 10918, "\"", 10938, 1); 3332 WriteAttributeValue("", 10928, ischecked, 10928, 10, false); 3333 EndWriteAttribute(); 3334 WriteLiteral(" />\r\n"); 3335 } 3336 WriteLiteral(" <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3337 } 3338 } 3339 3340 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false) 3341 { 3342 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3343 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" }, 3344 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" } 3345 }; 3346 var submitonchange = ""; 3347 if (submitOnChange) 3348 { 3349 submitonchange = "onchange='submitFilter()'"; 3350 } 3351 3352 foreach (KeyValuePair<string, string> type in erhverType) 3353 { 3354 string ischecked = ""; 3355 string[] olineParamsSplit = new string[0]; 3356 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"])) 3357 { 3358 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(','); 3359 } 3360 foreach (var olineParams in olineParamsSplit) 3361 { 3362 if (olineParams == type.Value) 3363 { 3364 ischecked = "checked"; 3365 } 3366 } 3367 3368 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3369 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3370 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\""); 3371 BeginWriteAttribute("value", " value=\"", 12582, "\"", 12601, 1); 3372 WriteAttributeValue("", 12590, type.Value, 12590, 11, false); 3373 EndWriteAttribute(); 3374 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3375 Write(type.Key); 3376 WriteLiteral("\" "); 3377 Write(submitonchange); 3378 WriteLiteral(" "); 3379 Write(ischecked); 3380 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3381 } 3382 } 3383 3384 void RenderBoligTypeErhvervInvest(bool submitOnChange = false) 3385 { 3386 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3387 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" }, 3388 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" } 3389 }; 3390 3391 foreach (KeyValuePair<string, string> type in erhverType) 3392 { 3393 bool ischecked = false; 3394 string[] olineParamsSplit = new string[0]; 3395 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"])) 3396 { 3397 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(','); 3398 } 3399 foreach (var olineParams in olineParamsSplit) 3400 { 3401 if (olineParams == type.Value) 3402 { 3403 ischecked = true; 3404 } 3405 } 3406 3407 WriteLiteral(" <li>\r\n <label class=\"checkbox-container\">\r\n "); 3408 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3409 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\""); 3410 BeginWriteAttribute("value", " value=\"", 14192, "\"", 14211, 1); 3411 WriteAttributeValue("", 14200, type.Value, 14200, 11, false); 3412 EndWriteAttribute(); 3413 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3414 Write(type.Key); 3415 WriteLiteral("\" onchange=\"submitFilter()\""); 3416 BeginWriteAttribute("checked", " checked=\"", 14292, "\"", 14312, 1); 3417 WriteAttributeValue("", 14302, ischecked, 14302, 10, false); 3418 EndWriteAttribute(); 3419 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3420 } 3421 } 3422 int GetWebsiteSettingsPageId(string pageSysName) 3423 { 3424 int sideId = 0; 3425 3426 var pw = Dynamicweb.Frontend.PageView.Current(); 3427 3428 string settingsItemId = "1"; 3429 3430 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true") 3431 { 3432 settingsItemId = "2"; 3433 } 3434 3435 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId); 3436 3437 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName)) 3438 { 3439 return sideId; 3440 } 3441 3442 string boligsideLink = settingsItem[pageSysName] as String; 3443 string linkPrefix = "Default.aspx?ID="; 3444 3445 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower())) 3446 { 3447 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId); 3448 } 3449 3450 return sideId; 3451 } 3452 3453 int GetPageSettingsPageId(string pageSysName) 3454 { 3455 int sideId = 0; 3456 3457 var pw = Dynamicweb.Frontend.PageView.Current(); 3458 3459 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName)) 3460 { 3461 return sideId; 3462 } 3463 3464 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String; 3465 string linkPrefix = "Default.aspx?ID="; 3466 3467 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower())) 3468 { 3469 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId); 3470 } 3471 3472 return sideId; 3473 } 3474 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname) 3475 { 3476 WriteLiteral(" <select"); 3477 BeginWriteAttribute("class", " class=\"", 16255, "\"", 16310, 5); 3478 WriteAttributeValue("", 16263, "form-control", 16263, 12, true); 3479 WriteAttributeValue(" ", 16275, "d-block", 16276, 8, true); 3480 WriteAttributeValue(" ", 16283, "d-lg-none", 16284, 10, true); 3481 WriteAttributeValue(" ", 16293, "mb-10", 16294, 6, true); 3482 WriteAttributeValue(" ", 16299, className, 16300, 10, false); 3483 EndWriteAttribute(); 3484 WriteLiteral(" onchange=\"submitFilter()\""); 3485 BeginWriteAttribute("name", " name=\"", 16337, "\"", 16354, 1); 3486 WriteAttributeValue("", 16344, inputname, 16344, 10, false); 3487 EndWriteAttribute(); 3488 WriteLiteral(">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3489 Write(Translate("Smartpage:Search.Placeholder." + name + "", "" + name + "")); 3490 WriteLiteral("</option>\r\n\r\n"); 3491 for (var i = 0; i <= max; i += step) 3492 { 3493 var selected = string.Empty; 3494 var current = string.Empty; 3495 if (i == max) 3496 { 3497 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i)) 3498 { 3499 WriteLiteral(" <option"); 3500 BeginWriteAttribute("value", " value=\"", 16950, "\"", 16960, 1); 3501 WriteAttributeValue("", 16958, i, 16958, 2, false); 3502 EndWriteAttribute(); 3503 WriteLiteral(" data-value=\'"); 3504 Write(Convert.ToInt32(i).ToString("N0")); 3505 WriteLiteral("\' selected=\"selected\">"); 3506 Write(Convert.ToInt32(i).ToString("N0")); 3507 WriteLiteral("+</option>\r\n"); 3508 } 3509 else 3510 { 3511 WriteLiteral(" <option"); 3512 BeginWriteAttribute("value", " value=\"", 17179, "\"", 17189, 1); 3513 WriteAttributeValue("", 17187, i, 17187, 2, false); 3514 EndWriteAttribute(); 3515 WriteLiteral(" data-value=\'"); 3516 Write(Convert.ToInt32(i).ToString("N0")); 3517 WriteLiteral("\'>"); 3518 Write(Convert.ToInt32(i).ToString("N0")); 3519 WriteLiteral("+</option>\r\n"); 3520 } 3521 } 3522 else 3523 { 3524 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i)) 3525 { 3526 WriteLiteral(" <option"); 3527 BeginWriteAttribute("value", " value=\"", 17613, "\"", 17623, 1); 3528 WriteAttributeValue("", 17621, i, 17621, 2, false); 3529 EndWriteAttribute(); 3530 WriteLiteral(" data-value=\'"); 3531 Write(Convert.ToInt32(i).ToString("N0")); 3532 WriteLiteral("\' selected=\"selected\">"); 3533 Write(Convert.ToInt32(i).ToString("N0")); 3534 WriteLiteral("</option>\r\n"); 3535 } 3536 else 3537 { 3538 WriteLiteral(" <option"); 3539 BeginWriteAttribute("value", " value=\"", 17841, "\"", 17851, 1); 3540 WriteAttributeValue("", 17849, i, 17849, 2, false); 3541 EndWriteAttribute(); 3542 WriteLiteral(" data-value=\'"); 3543 Write(Convert.ToInt32(i).ToString("N0")); 3544 WriteLiteral("\'>"); 3545 Write(Convert.ToInt32(i).ToString("N0")); 3546 WriteLiteral("</option>\r\n"); 3547 } 3548 } 3549 } 3550 WriteLiteral(" </select>\r\n"); 3551 } 3552 3553 void RenderTopFilter(string parameter) 3554 { 3555 if (parameter == "pricemin" || parameter == "pricemax") 3556 { 3557 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"])) 3558 { 3559 if (parameter == "pricemin") 3560 { 3561 Write("<div class='search-terms' id='priceFilter'>"); 3562 Write("Pris "); 3563 Write(Dynamicweb.Context.Current.Request[parameter]); 3564 3565 } 3566 3567 else 3568 { 3569 Write(" - "); 3570 Write(Dynamicweb.Context.Current.Request[parameter]); 3571 Write(" kr."); 3572 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"pricemin,pricemax\"></i>\r\n"); 3573 Write("</div>"); 3574 3575 } 3576 } 3577 } 3578 3579 else if (parameter == "subsidymin" || parameter == "subsidymax") 3580 { 3581 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"])) 3582 { 3583 if (parameter == "subsidymin") 3584 { 3585 Write("<div class='search-terms' id='subsidyFilter'>"); 3586 Write("Årlig leje "); 3587 Write(Dynamicweb.Context.Current.Request[parameter]); 3588 3589 } 3590 3591 else 3592 { 3593 Write(" - "); 3594 Write(Dynamicweb.Context.Current.Request[parameter]); 3595 Write(" kr."); 3596 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidymin,subsidymax\"></i>\r\n"); 3597 Write("</div>"); 3598 3599 } 3600 } 3601 } 3602 else if (parameter == "etagearealmin" || parameter == "etagearealmax") 3603 { 3604 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"])) 3605 { 3606 if (parameter == "etagearealmin") 3607 { 3608 Write("<div class='search-terms' id='etagearealFilter'>"); 3609 Write("Etageareal "); 3610 Write(Dynamicweb.Context.Current.Request[parameter]); 3611 3612 } 3613 3614 else 3615 { 3616 Write(" - "); 3617 Write(Dynamicweb.Context.Current.Request[parameter]); 3618 Write(" kvm."); 3619 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"etagearealmin,etagearealmax\"></i>\r\n"); 3620 Write("</div>"); 3621 3622 } 3623 } 3624 } 3625 3626 else if (parameter == "grundarealmin" || parameter == "grundarealmax") 3627 { 3628 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"])) 3629 { 3630 if (parameter == "grundarealmin") 3631 { 3632 Write("<div class='search-terms' id='grundarealFilter'>"); 3633 Write("Grundareal "); 3634 Write(Dynamicweb.Context.Current.Request[parameter]); 3635 3636 } 3637 3638 else 3639 { 3640 Write(" - "); 3641 Write(Dynamicweb.Context.Current.Request[parameter]); 3642 Write(" kvm."); 3643 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"grundarealmin,grundarealmax\"></i>\r\n"); 3644 Write("</div>"); 3645 3646 } 3647 } 3648 } 3649 3650 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax") 3651 { 3652 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"])) 3653 { 3654 if (parameter == "subsidykvmmin") 3655 { 3656 Write("<div class='search-terms' id='subsidykvmFilter'>"); 3657 Write("Årlig leje kvm "); 3658 Write(Dynamicweb.Context.Current.Request[parameter]); 3659 3660 } 3661 3662 else 3663 { 3664 Write(" - "); 3665 Write(Dynamicweb.Context.Current.Request[parameter]); 3666 Write(" kr."); 3667 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidykvmmin,subsidykvmmax\"></i>\r\n"); 3668 Write("</div>"); 3669 3670 } 3671 } 3672 } 3673 3674 else if (parameter == "olinecategory") 3675 { 3676 3677 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"])) 3678 { 3679 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3680 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" }, 3681 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"}, 3682 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" }, 3683 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" } 3684 }; 3685 3686 3687 foreach (var er in erhverType) 3688 { 3689 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key)) 3690 { 3691 WriteLiteral(" <div class=\"search-terms\""); 3692 BeginWriteAttribute("id", " id=\"", 23021, "\"", 23036, 1); 3693 WriteAttributeValue("", 23026, parameter, 23026, 10, false); 3694 EndWriteAttribute(); 3695 WriteLiteral(">\r\n "); 3696 Write(er.Value); 3697 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3698 Write(parameter); 3699 WriteLiteral("\" data-val=\""); 3700 Write(er.Key); 3701 WriteLiteral("\"></i>\r\n </div>\r\n"); 3702 } 3703 } 3704 } 3705 } 3706 else if (parameter == "search") 3707 { 3708 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"])) 3709 { 3710 WriteLiteral(" <div class=\"search-terms\""); 3711 BeginWriteAttribute("id", " id=\"", 23484, "\"", 23499, 1); 3712 WriteAttributeValue("", 23489, parameter, 23489, 10, false); 3713 EndWriteAttribute(); 3714 WriteLiteral(">\r\n "); 3715 Write(Dynamicweb.Context.Current.Request[parameter]); 3716 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3717 Write(parameter); 3718 WriteLiteral("\"></i>\r\n </div>\r\n"); 3719 } 3720 } 3721 else 3722 { 3723 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter])) 3724 { 3725 Dictionary<string, string> 3726 ubudsform = new Dictionary<string, string> 3727 (){ 3728 {"salg", "Salg" }, { "leje","Leje" } 3729 }; 3730 3731 foreach (var er in ubudsform) 3732 { 3733 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key)) 3734 { 3735 WriteLiteral(" <div class=\"search-terms\""); 3736 BeginWriteAttribute("id", " id=\"", 24648, "\"", 24663, 1); 3737 WriteAttributeValue("", 24653, parameter, 24653, 10, false); 3738 EndWriteAttribute(); 3739 WriteLiteral(">\r\n "); 3740 Write(er.Value); 3741 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3742 Write(parameter); 3743 WriteLiteral("\" data-val=\""); 3744 Write(er.Key); 3745 WriteLiteral("\"></i>\r\n </div>\r\n"); 3746 } 3747 } 3748 3749 3750 } 3751 } 3752 } 3753 3754 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString) 3755 { 3756 var selected = ""; 3757 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue) 3758 { 3759 selected = "selected"; 3760 } 3761 3762 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected); 3763 3764 Write(current); 3765 3766 } 3767 3768 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "") 3769 { 3770 WriteLiteral(" <div"); 3771 BeginWriteAttribute("class", " class=\"", 25667, "\"", 25713, 3); 3772 WriteAttributeValue("", 25675, "main-search-form", 25675, 16, true); 3773 WriteAttributeValue(" ", 25691, "frontpage", 25692, 10, true); 3774 WriteAttributeValue(" ", 25701, cssClasses, 25702, 11, false); 3775 EndWriteAttribute(); 3776 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>"); 3777 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 3778 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>"); 3779 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 3780 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\""); 3781 BeginWriteAttribute("value", " value=\'", 26428, "\'", 26449, 1); 3782 WriteAttributeValue("", 26436, searchPageId, 26436, 13, false); 3783 EndWriteAttribute(); 3784 WriteLiteral(@" id=""searchPageId-frontpage"" disabled=""disabled"" /> 3785 <div class=""row form-wrapper no-gutters""> 3786 3787 <div class=""col-xs-12 col-md-5 col-searchbar""> 3788 <div class=""searchbar""> 3789 <input type=""text"""); 3790 BeginWriteAttribute("name", " name=\"", 26727, "\"", 26754, 1); 3791 WriteAttributeValue("", 26734, querySearchNameAttr, 26734, 20, false); 3792 EndWriteAttribute(); 3793 WriteLiteral(" id=\"searchfield-frontpage\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 3794 BeginWriteAttribute("value", " value=\"", 26867, "\"", 26945, 1); 3795 WriteAttributeValue("", 26875, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 26875, 70, false); 3796 EndWriteAttribute(); 3797 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom-frontpage\" name=\"zipcodefrom\""); 3798 BeginWriteAttribute("value", " value=\"", 27045, "\"", 27128, 1); 3799 WriteAttributeValue("", 27053, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 27053, 75, false); 3800 EndWriteAttribute(); 3801 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto-frontpage\" name=\"zipcodeto\""); 3802 BeginWriteAttribute("value", " value=\"", 27224, "\"", 27305, 1); 3803 WriteAttributeValue("", 27232, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 27232, 73, false); 3804 EndWriteAttribute(); 3805 WriteLiteral(@" /> 3806 </div> 3807 </div> 3808 <div class=""col-xs-12 col-md-5""> 3809 <div class=""row no-gutters""> 3810 <div class=""col-xs-12 col-md-6 input-col""> 3811 <div class=""dropdown w-overlay""> 3812 <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""> 3813 "); 3814 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 3815 WriteLiteral(@" 3816 </button> 3817 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 3818 <ul class=""bolig-dropdown list-unstyled""> 3819 "); 3820 3821 RenderBoligtypeCheckboxesDropdown(); 3822 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 3823 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 3824 WriteLiteral(@"</button> 3825 </div> 3826 3827 </div> 3828 3829 </div> 3830 <div class=""col-xs-12 col-md-6 input-col""> 3831 <div class=""dropdown w-overlay""> 3832 <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""> 3833 "); 3834 Write(Translate("Smartpage:Search.Pris", "Pris")); 3835 WriteLiteral(@" 3836 </button> 3837 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris""> 3838 <input type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 3839 BeginWriteAttribute("placeholder", " placeholder=\'", 29484, "\'", 29560, 1); 3840 WriteAttributeValue("", 29498, Translate("Smartpage:Search.Placeholder.MinPris","Min. pris"), 29498, 62, false); 3841 EndWriteAttribute(); 3842 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3843 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 3844 WriteLiteral("</option>\r\n"); 3845 for (var i = 0; i <= 10000000; i += 100000) 3846 { 3847 if (i == 10000000) 3848 { 3849 WriteLiteral(" <option"); 3850 BeginWriteAttribute("value", " value=\"", 30169, "\"", 30179, 1); 3851 WriteAttributeValue("", 30177, i, 30177, 2, false); 3852 EndWriteAttribute(); 3853 WriteLiteral(" data-value=\'"); 3854 Write(Convert.ToInt32(i).ToString("N0")); 3855 WriteLiteral("+\'>"); 3856 Write(Convert.ToInt32(i).ToString("N0")); 3857 WriteLiteral("+</option>\r\n"); 3858 } 3859 else 3860 { 3861 WriteLiteral(" <option"); 3862 BeginWriteAttribute("value", " value=\"", 30491, "\"", 30501, 1); 3863 WriteAttributeValue("", 30499, i, 30499, 2, false); 3864 EndWriteAttribute(); 3865 WriteLiteral(" data-value=\'"); 3866 Write(Convert.ToInt32(i).ToString("N0")); 3867 WriteLiteral("\'>"); 3868 Write(Convert.ToInt32(i).ToString("N0")); 3869 WriteLiteral("</option>\r\n"); 3870 } 3871 } 3872 WriteLiteral(@" </select> 3873 <input type=""hidden"" id=""pricemin-frontpage"" name=""pricemin"" /> 3874 3875 <input type=""text"" class=""form-control js-auto-thousand js-pricemax-frontpage-input"""); 3876 BeginWriteAttribute("placeholder", " placeholder=\'", 30976, "\'", 31052, 1); 3877 WriteAttributeValue("", 30990, Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris"), 30990, 62, false); 3878 EndWriteAttribute(); 3879 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3880 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 3881 WriteLiteral("</option>\r\n"); 3882 for (var i = 0; i <= 10000000; i += 100000) 3883 { 3884 if (i == 10000000) 3885 { 3886 WriteLiteral(" <option"); 3887 BeginWriteAttribute("value", " value=\"", 31655, "\"", 31665, 1); 3888 WriteAttributeValue("", 31663, i, 31663, 2, false); 3889 EndWriteAttribute(); 3890 WriteLiteral(" data-value=\'"); 3891 Write(Convert.ToInt32(i).ToString("N0")); 3892 WriteLiteral("+\'>"); 3893 Write(Convert.ToInt32(i).ToString("N0")); 3894 WriteLiteral("+</option>\r\n"); 3895 } 3896 else 3897 { 3898 WriteLiteral(" <option"); 3899 BeginWriteAttribute("value", " value=\"", 31977, "\"", 31987, 1); 3900 WriteAttributeValue("", 31985, i, 31985, 2, false); 3901 EndWriteAttribute(); 3902 WriteLiteral(" data-value=\'"); 3903 Write(Convert.ToInt32(i).ToString("N0")); 3904 WriteLiteral("\'>"); 3905 Write(Convert.ToInt32(i).ToString("N0")); 3906 WriteLiteral("</option>\r\n"); 3907 } 3908 } 3909 WriteLiteral(" </select>\r\n <input type=\"hidden\" id=\"pricemax-frontpage\" name=\"pricemax\" />\r\n <button class=\"btn btn-primary js-close-dropdown mt-3\">"); 3910 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 3911 WriteLiteral(@"</button> 3912 </div> 3913 </div> 3914 </div> 3915 </div> 3916 </div> 3917 <div class=""col-xs-12 col-md-2 d-none d-md-block""> 3918 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 3919 Write(Translate("Smartpage:Search.Søg", "Søg")); 3920 WriteLiteral(@"</button> 3921 </div> 3922 </div> 3923 3924 <div class=""row moresearch-btn no-gutters""> 3925 <div class=""col-sm-12""> 3926 <div class=""row align-items-center no-gutters""> 3927 <div class=""col-12 col-md-4""> 3928 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch"" aria-expanded=""false"" aria-controls=""moreSearch""> 3929 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open"">"); 3930 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 3931 WriteLiteral("</span> <span class=\"open\"><span class=\"js-filter-count\">0</span> "); 3932 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 3933 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\">"); 3934 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 3935 WriteLiteral("</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"collapse\" id=\"moreSearch\">\r\n <h4 class=\"mt-20\"><b>"); 3936 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 3937 WriteLiteral(@"</b></h4> 3938 <div class=""row align-items-end mb-30""> 3939 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 3940 <div class=""filter-container row""> 3941 <label class=""d-block col-12"">"); 3942 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 3943 WriteLiteral(@"</label> 3944 <div class=""col-6 pr-sm-0 pr-2""> 3945 <input type=""text"" name=""boligarealmin"" id=""boligarealmin-frontpage"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 3946 BeginWriteAttribute("placeholder", " placeholder=\'", 34853, "\'", 34925, 1); 3947 WriteAttributeValue("", 34867, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 34867, 58, false); 3948 EndWriteAttribute(); 3949 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3950 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 3951 WriteLiteral("</option>\r\n"); 3952 for (var i = 0; i <= 300; i += 10) 3953 { 3954 if (i == 300) 3955 { 3956 WriteLiteral(" <option"); 3957 BeginWriteAttribute("value", " value=\"", 35532, "\"", 35542, 1); 3958 WriteAttributeValue("", 35540, i, 35540, 2, false); 3959 EndWriteAttribute(); 3960 WriteLiteral(">"); 3961 Write(i); 3962 WriteLiteral("+</option>\r\n"); 3963 } 3964 else 3965 { 3966 WriteLiteral(" <option"); 3967 BeginWriteAttribute("value", " value=\"", 35789, "\"", 35799, 1); 3968 WriteAttributeValue("", 35797, i, 35797, 2, false); 3969 EndWriteAttribute(); 3970 WriteLiteral(">"); 3971 Write(i); 3972 WriteLiteral("</option>\r\n"); 3973 } 3974 } 3975 WriteLiteral(@" </select> 3976 </div> 3977 <div class=""col-6 pl-sm-0 pl-2""> 3978 <input type=""text"" name=""boligarealmax"" id=""boligarealmax-frontpage"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 3979 BeginWriteAttribute("placeholder", " placeholder=\'", 36272, "\'", 36344, 1); 3980 WriteAttributeValue("", 36286, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 36286, 58, false); 3981 EndWriteAttribute(); 3982 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3983 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 3984 WriteLiteral("</option>\r\n"); 3985 for (var i = 0; i <= 300; i += 10) 3986 { 3987 if (i == 300) 3988 { 3989 WriteLiteral(" <option"); 3990 BeginWriteAttribute("value", " value=\"", 36951, "\"", 36961, 1); 3991 WriteAttributeValue("", 36959, i, 36959, 2, false); 3992 EndWriteAttribute(); 3993 WriteLiteral(">"); 3994 Write(i); 3995 WriteLiteral("+</option>\r\n"); 3996 } 3997 else 3998 { 3999 WriteLiteral(" <option"); 4000 BeginWriteAttribute("value", " value=\"", 37208, "\"", 37218, 1); 4001 WriteAttributeValue("", 37216, i, 37216, 2, false); 4002 EndWriteAttribute(); 4003 WriteLiteral(">"); 4004 Write(i); 4005 WriteLiteral("</option>\r\n"); 4006 } 4007 } 4008 WriteLiteral(@" </select> 4009 </div> 4010 </div> 4011 </div> 4012 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4013 <div class=""filter-container row""> 4014 <label class=""d-block col-12"">"); 4015 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 4016 WriteLiteral(@"</label> 4017 <div class=""col-6 pr-sm-0 pr-2""> 4018 <input type=""text"" name=""grundarealmin"" id=""grundarealmin-frontpage"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 4019 BeginWriteAttribute("placeholder", " placeholder=\'", 38067, "\'", 38139, 1); 4020 WriteAttributeValue("", 38081, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 38081, 58, false); 4021 EndWriteAttribute(); 4022 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4023 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 4024 WriteLiteral("</option>\r\n"); 4025 for (var i = 0; i <= 10000; i += 100) 4026 { 4027 if (i == 10000) 4028 { 4029 WriteLiteral(" <option"); 4030 BeginWriteAttribute("value", " value=\"", 38751, "\"", 38761, 1); 4031 WriteAttributeValue("", 38759, i, 38759, 2, false); 4032 EndWriteAttribute(); 4033 WriteLiteral(">"); 4034 Write(i); 4035 WriteLiteral("+</option>\r\n"); 4036 } 4037 else 4038 { 4039 WriteLiteral(" <option"); 4040 BeginWriteAttribute("value", " value=\"", 39008, "\"", 39018, 1); 4041 WriteAttributeValue("", 39016, i, 39016, 2, false); 4042 EndWriteAttribute(); 4043 WriteLiteral(">"); 4044 Write(i); 4045 WriteLiteral("</option>\r\n"); 4046 } 4047 } 4048 WriteLiteral(@" </select> 4049 </div> 4050 <div class=""col-6 pl-sm-0 pl-2""> 4051 <input type=""text"" name=""grundarealmax"" id=""grundarealmax-frontpage"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 4052 BeginWriteAttribute("placeholder", " placeholder=\'", 39491, "\'", 39563, 1); 4053 WriteAttributeValue("", 39505, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 39505, 58, false); 4054 EndWriteAttribute(); 4055 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4056 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 4057 WriteLiteral("</option>\r\n"); 4058 for (var i = 0; i <= 10000; i += 100) 4059 { 4060 if (i == 10000) 4061 { 4062 WriteLiteral(" <option"); 4063 BeginWriteAttribute("value", " value=\"", 40175, "\"", 40185, 1); 4064 WriteAttributeValue("", 40183, i, 40183, 2, false); 4065 EndWriteAttribute(); 4066 WriteLiteral(">"); 4067 Write(i); 4068 WriteLiteral("+</option>\r\n"); 4069 } 4070 else 4071 { 4072 WriteLiteral(" <option"); 4073 BeginWriteAttribute("value", " value=\"", 40432, "\"", 40442, 1); 4074 WriteAttributeValue("", 40440, i, 40440, 2, false); 4075 EndWriteAttribute(); 4076 WriteLiteral(">"); 4077 Write(i); 4078 WriteLiteral("</option>\r\n"); 4079 } 4080 } 4081 WriteLiteral(@" </select> 4082 </div> 4083 </div> 4084 </div> 4085 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4086 <div class=""filter-container row""> 4087 <label class=""d-block col-12"">Antal rum</label> 4088 4089 <div class=""col-6 pr-sm-0 pr-2""> 4090 <select name=""roomsmin"" id=""roomsmin-frontpage"" class=""form-control reverse js-count""> 4091 <option selected=""true"" disabled=""disabled"">"); 4092 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 4093 WriteLiteral(@"</option> 4094 <option value=""1"">1</option> 4095 <option value=""2"">2</option> 4096 <option value=""3"">3</option> 4097 <option value=""4"">4</option> 4098 <option value=""5+"">5+</option> 4099 </select> 4100 </div> 4101 <div class=""col-6 pl-sm-0 pl-2""> 4102 <select name=""roomsmax"" id=""roomsmax-frontpage"" class=""form-control reverse js-count""> 4103 <option selected=""true"" disabled=""disabled"">"); 4104 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 4105 WriteLiteral(@"</option> 4106 <option value=""1"">1</option> 4107 <option value=""2"">2</option> 4108 <option value=""3"">3</option> 4109 <option value=""4"">4</option> 4110 <option value=""5+"">"); 4111 Write(Translate("Smartpage:Rooms.5", "5")); 4112 WriteLiteral(@"</option> 4113 </select> 4114 </div> 4115 </div> 4116 </div> 4117 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4118 <div class=""row""> 4119 <div class=""col-12""> 4120 <div class=""filter-container""> 4121 <label class=""d-block"">Energimærke</label> 4122 <select name=""energylabel"" id=""energylabel-frontpage"" class=""form-control reverse js-count""> 4123 <option disabled selected=""selected"">"); 4124 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 4125 WriteLiteral(@"</option> 4126 <option value=""01"">G</option> 4127 <option value=""02"">F</option> 4128 <option value=""03"">E</option> 4129 <option value=""04"">D</option> 4130 <option value=""05"">C</option> 4131 <option value=""06"">B</option> 4132 <option value=""07"">A</option> 4133 <option value=""08"">A2010</option> 4134 <option value=""09"">A2015</option> 4135 <option value=""10"">A2020+</option> 4136 </select> 4137 </div> 4138 </div> 4139 "); 4140 WriteLiteral(" </div>\r\n </div>\r\n <div class=\"col-12 col-sm-6 col-lg-3 mt-3\">\r\n <h4"); 4141 BeginWriteAttribute("class", " class=\"", 44687, "\"", 44695, 0); 4142 EndWriteAttribute(); 4143 WriteLiteral("><b>"); 4144 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 4145 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 4146 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 4147 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\""); 4148 BeginWriteAttribute("placeholder", " placeholder=\'", 45251, "\'", 45325, 1); 4149 WriteAttributeValue("", 45265, Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK"), 45265, 60, false); 4150 EndWriteAttribute(); 4151 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4152 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 4153 WriteLiteral("</option>\r\n"); 4154 for (var i = 0; i <= 25000; i += 1250) 4155 { 4156 if (i == 25000) 4157 { 4158 WriteLiteral(" <option>"); 4159 Write(Convert.ToInt32(i).ToString("N0")); 4160 WriteLiteral("+</option>\r\n"); 4161 } 4162 else 4163 { 4164 WriteLiteral(" <option>"); 4165 Write(Convert.ToInt32(i).ToString("N0")); 4166 WriteLiteral("</option>\r\n"); 4167 } 4168 } 4169 WriteLiteral(@" </select> 4170 </div> 4171 <div class=""col-6 pl-sm-0 pl-2""> 4172 <input type=""text"" name=""subsidymax"" id=""subsidymax-frontpage"" class=""form-control js-subsidymax-frontpage-input js-count"""); 4173 BeginWriteAttribute("placeholder", " placeholder=\'", 46710, "\'", 46784, 1); 4174 WriteAttributeValue("", 46724, Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK"), 46724, 60, false); 4175 EndWriteAttribute(); 4176 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4177 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 4178 WriteLiteral("</option>\r\n"); 4179 for (var i = 0; i <= 25000; i += 1250) 4180 { 4181 if (i == 25000) 4182 { 4183 WriteLiteral(" <option"); 4184 BeginWriteAttribute("value", " value=\"", 47396, "\"", 47423, 1); 4185 WriteAttributeValue("", 47404, Convert.ToInt32(i), 47404, 19, false); 4186 EndWriteAttribute(); 4187 WriteLiteral(">"); 4188 Write(Convert.ToInt32(i).ToString("N0")); 4189 WriteLiteral("+</option>\r\n"); 4190 } 4191 else 4192 { 4193 WriteLiteral(" <option"); 4194 BeginWriteAttribute("value", " value=\"", 47702, "\"", 47729, 1); 4195 WriteAttributeValue("", 47710, Convert.ToInt32(i), 47710, 19, false); 4196 EndWriteAttribute(); 4197 WriteLiteral(">"); 4198 Write(Convert.ToInt32(i).ToString("N0")); 4199 WriteLiteral("</option>\r\n"); 4200 } 4201 } 4202 WriteLiteral(@" </select> 4203 </div> 4204 </div> 4205 </div> 4206 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0""> 4207 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 4208 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 4209 WriteLiteral(@"</button> 4210 </div> 4211 </div> 4212 </div> 4213 </div> 4214 </div> 4215 4216 <div class=""row d-block d-md-none form-wrapper no-gutters""> 4217 <div class=""col-xs-12 col-md-2""> 4218 <button type=""submit"" class=""btn btn-block btn-search btn-mobile-search"">"); 4219 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig")); 4220 WriteLiteral(@"<i class=""fa fa-search cta-icon""></i></button> 4221 </div> 4222 </div> 4223 </form> 4224 <div class=""front-page-actions d-md-none""> 4225 <div> 4226 <button class=""btn btn-block btn-search btn-mobile-search js-search-mobile"">"); 4227 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig")); 4228 WriteLiteral("<i class=\"fa fa-search cta-icon\"></i></button>\r\n </div>\r\n <div>\r\n"); 4229 4230 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : ""; 4231 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER"); 4232 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\">\r\n <input name=\"id\""); 4233 BeginWriteAttribute("value", " value=\"", 49672, "\"", 49695, 1); 4234 WriteAttributeValue("", 49680, brokerSearchId, 49680, 15, false); 4235 EndWriteAttribute(); 4236 WriteLiteral(@" type=""hidden"" /> 4237 <div class=""icon-wrapper-wclick""> 4238 <i class=""fas fa-search ta-submit-on-icon-click""></i> 4239 <input class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" name=""q"" type=""text"""); 4240 BeginWriteAttribute("placeholder", " placeholder=\"", 49999, "\"", 50021, 1); 4241 WriteAttributeValue("", 50013, ctaText, 50013, 8, false); 4242 EndWriteAttribute(); 4243 WriteLiteral(" onfocus=\"this.placeholder = \'\'\""); 4244 BeginWriteAttribute("onblur", " onblur=\"", 50054, "\"", 50090, 3); 4245 WriteAttributeValue("", 50063, "this.placeholder=\'", 50063, 18, true); 4246 WriteAttributeValue("", 50081, ctaText, 50081, 8, false); 4247 WriteAttributeValue("", 50089, "\'", 50089, 1, true); 4248 EndWriteAttribute(); 4249 WriteLiteral(" />\r\n </div>\r\n </form>\r\n"); 4250 WriteLiteral(" </div>\r\n <div>\r\n <a href=\"javascript:panelSalgsvurdering(\'Hovedmenu\')\" class=\"btn btn-orange btn-block\">"); 4251 Write(Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING")); 4252 WriteLiteral("<i class=\"cta-icon fa fa-angle-right\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n"); 4253 4254 } 4255 Custom.Integration.Brokers.Models.BrokerEmployee GetBrokerFromCurrentProduct() 4256 { 4257 string productId = Dynamicweb.Context.Current.Request["ProductId"]; 4258 4259 if (string.IsNullOrWhiteSpace(productId)) 4260 { 4261 return null; 4262 } 4263 4264 var propertyProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(productId, string.Empty, true); 4265 if (propertyProduct == null) 4266 { 4267 return null; 4268 } 4269 4270 string employee = Dynamicweb.Core.Converter.ToString( 4271 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xAktoererMaeglerKontaktEmail") 4272 ); 4273 string storeId = Dynamicweb.Core.Converter.ToString( 4274 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xButikID") 4275 ); 4276 4277 if (string.IsNullOrWhiteSpace(employee) || string.IsNullOrWhiteSpace(storeId)) 4278 { 4279 return null; 4280 } 4281 4282 return Custom.Integration.Brokers.Search.GetEmployee(storeId, employee); 4283 } 4284 4285 string GetAgentTitleFromCurrentProduct() 4286 { 4287 var propBroker = GetBrokerFromCurrentProduct(); 4288 4289 if (propBroker?.Broker == null) 4290 { 4291 return string.Empty; 4292 } 4293 4294 if (!string.IsNullOrEmpty(propBroker.Broker.CompanyName)) 4295 { 4296 return propBroker.Broker.CompanyName; 4297 } 4298 4299 return propBroker.Broker.Name ?? string.Empty; 4300 } 4301 4302 string GetMasterBrokerUrlFromCurrentProduct() 4303 { 4304 var propBroker = GetBrokerFromCurrentProduct(); 4305 4306 var itemId = propBroker?.Broker?.ItemId; 4307 var itemType = propBroker?.Broker?.ItemType; 4308 4309 if (string.IsNullOrWhiteSpace(itemId) || string.IsNullOrWhiteSpace(itemType)) 4310 { 4311 return string.Empty; 4312 } 4313 var brokerItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(itemType, itemId); 4314 4315 if (brokerItem == null) 4316 { 4317 return string.Empty; 4318 } 4319 4320 var websiteId = Dynamicweb.Core.Converter.ToInt32(brokerItem["WebsiteId"]); 4321 var page = Dynamicweb.Content.Services.Pages.GetFirstPageForArea(websiteId); 4322 return Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?Id=" + page?.ID); 4323 } 4324 4325 // === Video link helpers (used by the property page) === 4326 4327 // True when the link points directly at a video file we can play in a <video> element. Everything else is iframed. 4328 bool IsDirectVideoFile(string url) 4329 { 4330 if (string.IsNullOrWhiteSpace(url)) { return false; } 4331 4332 // Strip query/fragment before checking the file extension. 4333 string path = url.Split('?', '#')[0]; 4334 string[] directExtensions = { ".mp4", ".webm", ".ogg", ".ogv", ".mov", ".m4v" }; 4335 foreach (var ext in directExtensions) 4336 { 4337 if (path.EndsWith(ext, StringComparison.InvariantCultureIgnoreCase)) { return true; } 4338 } 4339 return false; 4340 } 4341 4342 string GetYouTubeId(string url) 4343 { 4344 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 4345 4346 string[] patterns = { @"youtu\.be/([^?&/]+)", @"[?&]v=([^?&]+)", @"/embed/([^?&/]+)", @"/shorts/([^?&/]+)" }; 4347 foreach (var pattern in patterns) 4348 { 4349 var match = System.Text.RegularExpressions.Regex.Match(url, pattern); 4350 if (match.Success) { return match.Groups[1].Value; } 4351 } 4352 4353 return string.Empty; 4354 } 4355 4356 string GetVimeoId(string url) 4357 { 4358 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 4359 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?(\d+)"); 4360 return match.Success ? match.Groups[1].Value : string.Empty; 4361 } 4362 4363 string GetVimeoHash(string url) 4364 { 4365 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 4366 // Unlisted videos carry a privacy hash: vimeo.com/{id}/{hash} 4367 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?\d+/(\w+)"); 4368 return match.Success ? match.Groups[1].Value : string.Empty; 4369 } 4370 4371 // Builds the iframe src for a non-file link. YouTube/Vimeo share links are rewritten to their embeddable form 4372 // (their pages block framing); every other link (Matterport, CR3, already-embeddable pages) is used as-is. 4373 string BuildEmbedUrl(string url, bool background) 4374 { 4375 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 4376 4377 if (url.Contains("youtube", StringComparison.InvariantCultureIgnoreCase) || url.Contains("youtu.be", StringComparison.InvariantCultureIgnoreCase)) 4378 { 4379 string id = GetYouTubeId(url); 4380 if (!string.IsNullOrEmpty(id)) 4381 { 4382 string baseUrl = "https://www.youtube-nocookie.com/embed/" + id; 4383 return background 4384 ? baseUrl + "?autoplay=1&mute=1&loop=1&playlist=" + id + "&controls=0&playsinline=1&rel=0" 4385 : baseUrl + "?rel=0"; 4386 } 4387 } 4388 else if (url.Contains("vimeo", StringComparison.InvariantCultureIgnoreCase)) 4389 { 4390 string id = GetVimeoId(url); 4391 if (!string.IsNullOrEmpty(id)) 4392 { 4393 string baseUrl = "https://player.vimeo.com/video/" + id; 4394 var queryParams = new List<string>(); 4395 string hash = GetVimeoHash(url); 4396 if (!string.IsNullOrEmpty(hash)) { queryParams.Add("h=" + hash); } 4397 if (background) { queryParams.Add("background=1"); } 4398 return queryParams.Count > 0 ? baseUrl + "?" + string.Join("&", queryParams) : baseUrl; 4399 } 4400 } 4401 4402 // Matterport, CR3 and any already-embeddable link frame as-is. 4403 return url; 4404 } 4405 4406 void RenderSlideMenu(bool erhverv, string maeglersoegning) 4407 { 4408 WriteLiteral(" <div id=\"menu\" \r\n class=\"main-menu-slide \"\r\n role=\"navigation\""); 4409 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 56824, "\"", 56940, 1); 4410 WriteAttributeValue("", 56851, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.MainMenu", "Hovedmenu")), 56851, 89, false); 4411 EndWriteAttribute(); 4412 WriteLiteral(@" 4413 aria-modal=""true""> 4414 <div class=""container""> 4415 <div class=""row""> 4416 <div class=""col-12""> 4417 <span class=""menu-headline"">MENU</span> 4418 </div> 4419 <div class=""menu-slide"" 4420 role=""button"" 4421 tabindex=""0"""); 4422 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 57305, "\"", 57433, 1); 4423 WriteAttributeValue("", 57344, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.CloseMenu", "Luk menu")), 57344, 89, false); 4424 EndWriteAttribute(); 4425 WriteLiteral(">\r\n <b aria-hidden=\"true\"></b>\r\n </div>\r\n <div class=\"col-12 main-slidemenu\" role=\"region\""); 4426 BeginWriteAttribute("aria-label", " aria-label=\"", 57585, "\"", 57701, 1); 4427 WriteAttributeValue("", 57598, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.NavigationLinks", "Navigationslinks")), 57598, 103, false); 4428 EndWriteAttribute(); 4429 WriteLiteral(">\r\n"); 4430 4431 var navigationSettings = new NavigationSettings(); 4432 navigationSettings.StartLevel = 1; 4433 navigationSettings.StopLevel = 2; 4434 navigationSettings.ExpandMode = ExpandMode.All; 4435 navigationSettings.RootAreaId = Pageview.Area.ID; 4436 4437 Write(Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings)); 4438 WriteLiteral(" </div>\r\n <div class=\"col-12 bottom-btns\">\r\n\r\n"); 4439 4440 string[] maeglerid; 4441 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0"; 4442 4443 if (erhverv) 4444 { 4445 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None); 4446 } 4447 else 4448 { 4449 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None); 4450 } 4451 4452 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\" role=\"search\">\r\n <input name=\"id\""); 4453 BeginWriteAttribute("value", " value=\"", 59198, "\"", 59219, 1); 4454 WriteAttributeValue("", 59206, maeglerid[1], 59206, 13, false); 4455 EndWriteAttribute(); 4456 WriteLiteral(" type=\"hidden\" />\r\n <div class=\"icon-wrapper-wclick\">\r\n <label for=\"broker-search-menu-vm\" class=\"sr-only\">"); 4457 Write(Translate("Custom:Accessibility.FindBroker", "Find mægler")); 4458 WriteLiteral(@"</label> 4459 <i class=""fas fa-search ta-submit-on-icon-click"" 4460 aria-hidden=""true"" 4461 role=""button"" 4462 tabindex=""0"""); 4463 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 59714, "\"", 59867, 1); 4464 WriteAttributeValue("", 59767, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.SearchBroker", "Søg efter mægler")), 59767, 100, false); 4465 EndWriteAttribute(); 4466 WriteLiteral(@"></i> 4467 <input id=""broker-search-menu-vm"" 4468 class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" 4469 name=""q"" 4470 type=""text"""); 4471 BeginWriteAttribute("placeholder", " \r\n placeholder=\"", 60175, "\"", 60326, 1); 4472 WriteAttributeValue("", 60234, HtmlEncoder.HtmlAttributeEncode(Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER")), 60234, 92, false); 4473 EndWriteAttribute(); 4474 BeginWriteAttribute("aria-label", " \r\n aria-label=\"", 60327, "\"", 60523, 1); 4475 WriteAttributeValue("", 60385, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.BrokerSearchField", "Indtast postnummer eller navn for at finde mægler")), 60385, 138, false); 4476 EndWriteAttribute(); 4477 WriteLiteral("\r\n onfocus=\"this.placeholder = \'FIND MÆGLER\'\" />\r\n </div>\r\n </form>\r\n"); 4478 WriteLiteral(" <br />\r\n"); 4479 4480 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + ""; 4481 WriteLiteral(" <a"); 4482 BeginWriteAttribute("href", " href=\"", 60933, "\"", 61004, 5); 4483 WriteAttributeValue("", 60940, "javascript:panelSalgsvurdering(\'", 60940, 32, true); 4484 WriteAttributeValue("", 60972, dpmaegler, 60972, 10, false); 4485 WriteAttributeValue("", 60982, "\',\'", 60982, 3, true); 4486 WriteAttributeValue("", 60985, Pageview.AreaID, 60985, 16, false); 4487 WriteAttributeValue("", 61001, "\');", 61001, 3, true); 4488 EndWriteAttribute(); 4489 WriteLiteral(" \r\n class=\"btn btn-block btn-default-invert js-close-menu\""); 4490 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 61089, "\"", 61245, 1); 4491 WriteAttributeValue("", 61130, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.FreeSalesAssessment", "Få gratis salgsvurdering")), 61130, 115, false); 4492 EndWriteAttribute(); 4493 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"); 4494 } 4495 4496 void RenderBlockList(List<Block> blocks) 4497 { 4498 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false; 4499 blocks = blocks.OrderBy(item => item.SortId).ToList(); 4500 4501 foreach (Block item in blocks) 4502 { 4503 if (debug) { 4504 WriteLiteral(" <!-- Block START: "); 4505 Write(item.Id); 4506 WriteLiteral(" -->\r\n"); 4507 } 4508 4509 if (item.Design == null) 4510 { 4511 RenderBlock(item); 4512 } 4513 else if (item.Design.RenderType == RenderType.None) { 4514 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : ""; 4515 4516 WriteLiteral(" <div"); 4517 BeginWriteAttribute("class", " class=\"", 62500, "\"", 62524, 2); 4518 WriteAttributeValue("", 62508, cssClass, 62508, 9, false); 4519 WriteAttributeValue(" ", 62517, "dw-mod", 62518, 7, true); 4520 EndWriteAttribute(); 4521 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4522 } 4523 else if (item.Design.RenderType != RenderType.Hide) 4524 { 4525 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : ""; 4526 4527 if (!item.SkipRenderBlocksList) { 4528 if (item.Design.RenderType == RenderType.Row) 4529 { 4530 WriteLiteral(" <div"); 4531 BeginWriteAttribute("class", " class=\"", 62951, "\"", 63006, 4); 4532 WriteAttributeValue("", 62959, "grid", 62959, 4, true); 4533 WriteAttributeValue(" ", 62963, "grid--align-content-start", 62964, 26, true); 4534 WriteAttributeValue(" ", 62989, cssClass, 62990, 9, false); 4535 WriteAttributeValue(" ", 62999, "dw-mod", 63000, 7, true); 4536 EndWriteAttribute(); 4537 BeginWriteAttribute("id", " id=\"", 63007, "\"", 63027, 2); 4538 WriteAttributeValue("", 63012, "Block__", 63012, 7, true); 4539 WriteAttributeValue("", 63019, item.Id, 63019, 8, false); 4540 EndWriteAttribute(); 4541 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4542 } 4543 4544 if (item.Design.RenderType == RenderType.Column) 4545 { 4546 string hidePadding = item.Design.HidePadding ? "u-no-padding" : ""; 4547 string size = item.Design.Size ?? "12"; 4548 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size; 4549 4550 WriteLiteral(" <div"); 4551 BeginWriteAttribute("class", " class=\"", 63523, "\"", 63654, 9); 4552 WriteAttributeValue("", 63531, "grid__col-lg-", 63531, 13, true); 4553 WriteAttributeValue("", 63544, item.Design.Size, 63544, 17, false); 4554 WriteAttributeValue(" ", 63561, "grid__col-md-", 63562, 14, true); 4555 WriteAttributeValue("", 63575, item.Design.Size, 63575, 17, false); 4556 WriteAttributeValue(" ", 63592, "grid__col-sm-12", 63593, 16, true); 4557 WriteAttributeValue(" ", 63608, "grid__col-xs-12", 63609, 16, true); 4558 WriteAttributeValue(" ", 63624, hidePadding, 63625, 12, false); 4559 WriteAttributeValue(" ", 63637, cssClass, 63638, 9, false); 4560 WriteAttributeValue(" ", 63647, "dw-mod", 63648, 7, true); 4561 EndWriteAttribute(); 4562 BeginWriteAttribute("id", " id=\"", 63655, "\"", 63675, 2); 4563 WriteAttributeValue("", 63660, "Block__", 63660, 7, true); 4564 WriteAttributeValue("", 63667, item.Id, 63667, 8, false); 4565 EndWriteAttribute(); 4566 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4567 } 4568 4569 if (item.Design.RenderType == RenderType.Table) 4570 { 4571 WriteLiteral(" <table"); 4572 BeginWriteAttribute("class", " class=\"", 63906, "\"", 63936, 3); 4573 WriteAttributeValue("", 63914, "table", 63914, 5, true); 4574 WriteAttributeValue(" ", 63919, cssClass, 63920, 9, false); 4575 WriteAttributeValue(" ", 63929, "dw-mod", 63930, 7, true); 4576 EndWriteAttribute(); 4577 BeginWriteAttribute("id", " id=\"", 63937, "\"", 63957, 2); 4578 WriteAttributeValue("", 63942, "Block__", 63942, 7, true); 4579 WriteAttributeValue("", 63949, item.Id, 63949, 8, false); 4580 EndWriteAttribute(); 4581 WriteLiteral(">\r\n RenderBlock(item);\r\n </table>\r\n"); 4582 } 4583 4584 if (item.Design.RenderType == RenderType.TableRow) 4585 { 4586 WriteLiteral(" <tr"); 4587 BeginWriteAttribute("class", " class=\"", 64190, "\"", 64214, 2); 4588 WriteAttributeValue("", 64198, cssClass, 64198, 9, false); 4589 WriteAttributeValue(" ", 64207, "dw-mod", 64208, 7, true); 4590 EndWriteAttribute(); 4591 BeginWriteAttribute("id", " id=\"", 64215, "\"", 64235, 2); 4592 WriteAttributeValue("", 64220, "Block__", 64220, 7, true); 4593 WriteAttributeValue("", 64227, item.Id, 64227, 8, false); 4594 EndWriteAttribute(); 4595 WriteLiteral(">\r\n RenderBlock(item);\r\n </tr>\r\n"); 4596 } 4597 4598 if (item.Design.RenderType == RenderType.TableColumn) 4599 { 4600 WriteLiteral(" <td"); 4601 BeginWriteAttribute("class", " class=\"", 64468, "\"", 64492, 2); 4602 WriteAttributeValue("", 64476, cssClass, 64476, 9, false); 4603 WriteAttributeValue(" ", 64485, "dw-mod", 64486, 7, true); 4604 EndWriteAttribute(); 4605 BeginWriteAttribute("id", " id=\"", 64493, "\"", 64513, 2); 4606 WriteAttributeValue("", 64498, "Block__", 64498, 7, true); 4607 WriteAttributeValue("", 64505, item.Id, 64505, 8, false); 4608 EndWriteAttribute(); 4609 WriteLiteral(">\r\n RenderBlock(item);\r\n </td>\r\n"); 4610 } 4611 4612 if (item.Design.RenderType == RenderType.CardHeader) 4613 { 4614 WriteLiteral(" <div"); 4615 BeginWriteAttribute("class", " class=\"", 64746, "\"", 64782, 3); 4616 WriteAttributeValue("", 64754, "card-header", 64754, 11, true); 4617 WriteAttributeValue(" ", 64765, cssClass, 64766, 9, false); 4618 WriteAttributeValue(" ", 64775, "dw-mod", 64776, 7, true); 4619 EndWriteAttribute(); 4620 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4621 } 4622 4623 if (item.Design.RenderType == RenderType.CardBody) 4624 { 4625 WriteLiteral(" <div"); 4626 BeginWriteAttribute("class", " class=\"", 65014, "\"", 65043, 3); 4627 WriteAttributeValue("", 65022, "card", 65022, 4, true); 4628 WriteAttributeValue(" ", 65026, cssClass, 65027, 9, false); 4629 WriteAttributeValue(" ", 65036, "dw-mod", 65037, 7, true); 4630 EndWriteAttribute(); 4631 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4632 } 4633 4634 if (item.Design.RenderType == RenderType.CardFooter) 4635 { 4636 WriteLiteral(" <div"); 4637 BeginWriteAttribute("class", " class=\"", 65277, "\"", 65313, 3); 4638 WriteAttributeValue("", 65285, "card-footer", 65285, 11, true); 4639 WriteAttributeValue(" ", 65296, cssClass, 65297, 9, false); 4640 WriteAttributeValue(" ", 65306, "dw-mod", 65307, 7, true); 4641 EndWriteAttribute(); 4642 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4643 } 4644 } 4645 else 4646 { 4647 RenderBlock(item); 4648 } 4649 } 4650 4651 if (debug) { 4652 WriteLiteral(" <!-- Block END: "); 4653 Write(item.Id); 4654 WriteLiteral(" -->\r\n"); 4655 } 4656 } 4657 } 4658 4659 void RenderBlock(Block item) 4660 { 4661 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false; 4662 4663 if (item.Template != null) 4664 { 4665 Write(BlocksPage.RenderTemplate(item.Template)); 4666 4667 } 4668 4669 if (item.Component != null) 4670 { 4671 string customSufix = "Custom"; 4672 string methodName = item.Component.HelperName; 4673 4674 ComponentBase[] methodParameters = new ComponentBase[1]; 4675 methodParameters[0] = item.Component; 4676 Type methodType = this.GetType(); 4677 4678 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix); 4679 MethodInfo generalMethod = methodType.GetMethod(methodName); 4680 4681 try { 4682 if (debug) { 4683 WriteLiteral(" <!-- Component: "); 4684 Write(methodName.Replace("Render", "")); 4685 WriteLiteral(" -->\r\n"); 4686 } 4687 Write(customMethod.Invoke(this, methodParameters).ToString()); 4688 ; 4689 } catch { 4690 try { 4691 Write(generalMethod.Invoke(this, methodParameters).ToString()); 4692 4693 ; 4694 } catch(Exception ex) { 4695 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex); 4696 } 4697 } 4698 } 4699 4700 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList) 4701 { 4702 RenderBlockList(item.BlocksList); 4703 } 4704 } 4705 4706 void Render(ComponentBase component) 4707 { 4708 if (component != null) 4709 { 4710 Write(component.Render(this)); 4711 4712 } 4713 } 4714 4715 void RenderIcon(Icon settings) 4716 { 4717 if (settings != null) 4718 { 4719 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : ""; 4720 4721 if (settings.Name != null) 4722 { 4723 if (string.IsNullOrEmpty(settings.Label)) 4724 { 4725 WriteLiteral(" <i"); 4726 BeginWriteAttribute("class", " class=\"", 68209, "\"", 68267, 3); 4727 WriteAttributeValue("", 68217, settings.Prefix, 68217, 16, false); 4728 WriteAttributeValue(" ", 68233, settings.Name, 68234, 14, false); 4729 WriteAttributeValue(" ", 68248, settings.CssClass, 68249, 18, false); 4730 EndWriteAttribute(); 4731 WriteLiteral(" "); 4732 Write(color); 4733 WriteLiteral("></i>\r\n"); 4734 } 4735 else 4736 { 4737 if (settings.LabelPosition == IconLabelPosition.Before) 4738 { 4739 WriteLiteral(" <div"); 4740 BeginWriteAttribute("class", " class=\"", 68470, "\"", 68530, 3); 4741 WriteAttributeValue("", 68478, "u-flex", 68478, 6, true); 4742 WriteAttributeValue(" ", 68484, "u-flex--align-items-center", 68485, 27, true); 4743 WriteAttributeValue(" ", 68511, settings.CssClass, 68512, 18, false); 4744 EndWriteAttribute(); 4745 WriteLiteral(">"); 4746 Write(settings.Label); 4747 WriteLiteral(" <i"); 4748 BeginWriteAttribute("class", " class=\"", 68550, "\"", 68603, 3); 4749 WriteAttributeValue("", 68558, settings.Prefix, 68558, 16, false); 4750 WriteAttributeValue(" ", 68574, settings.Name, 68575, 14, false); 4751 WriteAttributeValue(" ", 68589, "u-margin-left", 68590, 14, true); 4752 EndWriteAttribute(); 4753 WriteLiteral(" "); 4754 Write(color); 4755 WriteLiteral("></i></div>\r\n"); 4756 } 4757 else 4758 { 4759 WriteLiteral(" <div"); 4760 BeginWriteAttribute("class", " class=\"", 68724, "\"", 68784, 3); 4761 WriteAttributeValue("", 68732, "u-flex", 68732, 6, true); 4762 WriteAttributeValue(" ", 68738, "u-flex--align-items-center", 68739, 27, true); 4763 WriteAttributeValue(" ", 68765, settings.CssClass, 68766, 18, false); 4764 EndWriteAttribute(); 4765 WriteLiteral("><i"); 4766 BeginWriteAttribute("class", " class=\"", 68788, "\"", 68854, 4); 4767 WriteAttributeValue("", 68796, settings.Prefix, 68796, 16, false); 4768 WriteAttributeValue(" ", 68812, settings.Name, 68813, 14, false); 4769 WriteAttributeValue(" ", 68827, "u-margin-right--lg", 68828, 19, true); 4770 WriteAttributeValue(" ", 68846, "u-w20px", 68847, 8, true); 4771 EndWriteAttribute(); 4772 WriteLiteral(" "); 4773 Write(color); 4774 WriteLiteral("></i>"); 4775 Write(settings.Label); 4776 WriteLiteral("</div>\r\n"); 4777 } 4778 } 4779 } 4780 else if (!string.IsNullOrEmpty(settings.Label)) 4781 { 4782 Write(settings.Label); 4783 4784 } 4785 } 4786 } 4787 4788 void RenderButton(Button settings) 4789 { 4790 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null)) 4791 { 4792 Dictionary<string, string> attributes = new Dictionary<string, string>(); 4793 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>(); 4794 if (settings.Disabled) { 4795 attributes.Add("disabled", "true"); 4796 classList.Add("disabled"); 4797 } 4798 4799 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle)) 4800 { 4801 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N"); 4802 RenderConfirmDialog(settings); 4803 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true"; 4804 } 4805 4806 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 4807 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 4808 if (!string.IsNullOrEmpty(settings.AltText)) 4809 { 4810 attributes.Add("title", settings.AltText); 4811 } 4812 else if (!string.IsNullOrEmpty(settings.Title)) 4813 { 4814 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty); 4815 cleanTitle = cleanTitle.Replace("&nbsp;", " "); 4816 attributes.Add("title", cleanTitle); 4817 } 4818 4819 var onClickEvents = new List<string>(); 4820 if (!string.IsNullOrEmpty(settings.OnClick)) 4821 { 4822 onClickEvents.Add(settings.OnClick); 4823 } 4824 if (!string.IsNullOrEmpty(settings.Href)) 4825 { 4826 if (settings.Href.Contains("javascript")) 4827 { 4828 settings.Href = settings.Href.Replace("http://", ""); 4829 } 4830 onClickEvents.Add("location.href='" + settings.Href + "'"); 4831 } 4832 if (onClickEvents.Count > 0) 4833 { 4834 attributes.Add("onClick", string.Join(";", onClickEvents)); 4835 } 4836 4837 if (settings.ButtonLayout != ButtonLayout.None) 4838 { 4839 classList.Add("btn"); 4840 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower(); 4841 if (btnLayout == "linkclean") 4842 { 4843 btnLayout = "link-clean"; //fix 4844 } 4845 classList.Add("btn--" + btnLayout); 4846 } 4847 4848 if (settings.Icon == null) 4849 { 4850 settings.Icon = new Icon(); 4851 } 4852 4853 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : ""; 4854 settings.Icon.Label = settings.Title; 4855 4856 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower()); 4857 4858 WriteLiteral(" <button"); 4859 BeginWriteAttribute("class", " class=\"", 72447, "\"", 72490, 2); 4860 WriteAttributeValue("", 72455, string.Join(" ", classList), 72455, 28, false); 4861 WriteAttributeValue(" ", 72483, "dw-mod", 72484, 7, true); 4862 EndWriteAttribute(); 4863 WriteLiteral(" "); 4864 Write(ComponentMethods.AddAttributes(attributes)); 4865 WriteLiteral(" "); 4866 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 4867 WriteLiteral(">"); 4868 RenderIcon(settings.Icon);WriteLiteral("</button>\r\n"); 4869 } 4870 } 4871 4872 void RenderConfirmDialog(Button settings) 4873 { 4874 Modal confirmDialog = new Modal { 4875 Id = settings.Id, 4876 Width = ModalWidth.Sm, 4877 Heading = new Heading 4878 { 4879 Level = 2, 4880 Title = settings.ConfirmTitle 4881 }, 4882 BodyText = settings.ConfirmText 4883 }; 4884 4885 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"}); 4886 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick }); 4887 4888 RenderModal(confirmDialog); 4889 } 4890 4891 void RenderLink(Link settings) 4892 { 4893 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null)) 4894 { 4895 Dictionary<string, string> attributes = new Dictionary<string, string>(); 4896 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>(); 4897 if (settings.Disabled) 4898 { 4899 attributes.Add("disabled", "true"); 4900 classList.Add("disabled"); 4901 } 4902 4903 if (!string.IsNullOrEmpty(settings.AltText)) 4904 { 4905 attributes.Add("title", settings.AltText); 4906 } 4907 else if (!string.IsNullOrEmpty(settings.Title)) 4908 { 4909 attributes.Add("title", settings.Title); 4910 } 4911 4912 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 4913 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 4914 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); } 4915 attributes.Add("href", settings.Href); 4916 4917 if (settings.ButtonLayout != ButtonLayout.None) 4918 { 4919 classList.Add("btn"); 4920 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower(); 4921 if (btnLayout == "linkclean") 4922 { 4923 btnLayout = "link-clean"; //fix 4924 } 4925 classList.Add("btn--" + btnLayout); 4926 } 4927 4928 if (settings.Icon == null) 4929 { 4930 settings.Icon = new Icon(); 4931 } 4932 settings.Icon.Label = settings.Title; 4933 4934 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None) 4935 { 4936 settings.Rel = LinkRelType.Noopener; 4937 } 4938 if (settings.Target != LinkTargetType.None) 4939 { 4940 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower()); 4941 } 4942 if (settings.Download) 4943 { 4944 attributes.Add("download", "true"); 4945 } 4946 if (settings.Rel != LinkRelType.None) 4947 { 4948 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower()); 4949 } 4950 4951 WriteLiteral(" <a"); 4952 BeginWriteAttribute("class", " class=\"", 76222, "\"", 76265, 2); 4953 WriteAttributeValue("", 76230, string.Join(" ", classList), 76230, 28, false); 4954 WriteAttributeValue(" ", 76258, "dw-mod", 76259, 7, true); 4955 EndWriteAttribute(); 4956 WriteLiteral(" "); 4957 Write(ComponentMethods.AddAttributes(attributes)); 4958 WriteLiteral(" "); 4959 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 4960 WriteLiteral(">Render(settings.Icon);</a>\r\n"); 4961 } 4962 } 4963 4964 void RenderRating(Rating settings) 4965 { 4966 if (settings.Score > 0) 4967 { 4968 int rating = settings.Score; 4969 string iconType = "fa-star"; 4970 4971 switch (settings.Type.ToString()) { 4972 case "Stars": 4973 iconType = "fa-star"; 4974 break; 4975 case "Hearts": 4976 iconType = "fa-heart"; 4977 break; 4978 case "Lemons": 4979 iconType = "fa-lemon"; 4980 break; 4981 case "Bombs": 4982 iconType = "fa-bomb"; 4983 break; 4984 } 4985 4986 WriteLiteral(" <div class=\"u-ta-right\">\r\n"); 4987 for (int i = 0; i < settings.OutOf; i++) 4988 { 4989 WriteLiteral(" <i"); 4990 BeginWriteAttribute("class", " class=\"", 77399, "\"", 77446, 2); 4991 WriteAttributeValue("", 77407, rating > i ? "fas" : "far", 77407, 29, false); 4992 WriteAttributeValue(" ", 77436, iconType, 77437, 9, false); 4993 EndWriteAttribute(); 4994 WriteLiteral("></i>\r\n"); 4995 } 4996 WriteLiteral(" </div>\r\n"); 4997 } 4998 } 4999 5000 void RenderNavigation(Navigation settings) { 5001 RenderNavigation(new 5002 { 5003 id = settings.Id, 5004 cssclass = settings.CssClass, 5005 startLevel = settings.StartLevel, 5006 endlevel = settings.EndLevel, 5007 expandmode = settings.Expandmode, 5008 sitemapmode = settings.SitemapMode, 5009 template = settings.Template 5010 }); 5011 } 5012 5013 void RenderLeftNavigation(LeftNavigation settings) { 5014 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id; 5015 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template; 5016 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel; 5017 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel; 5018 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode; 5019 5020 WriteLiteral(" <div class=\"grid__cell\">\r\n RenderNavigation(settings);\r\n </div> \r\n"); 5021 } 5022 5023 void RenderHeading(Heading settings) 5024 { 5025 if (settings != null && !string.IsNullOrEmpty(settings.Title)) 5026 { 5027 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : ""; 5028 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div"; 5029 5030 Write("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">"); 5031 5032 if (!string.IsNullOrEmpty(settings.Link)) 5033 { 5034 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None }); 5035 } 5036 else 5037 { 5038 if (settings.Icon == null) 5039 { 5040 settings.Icon = new Icon(); 5041 } 5042 settings.Icon.Label = settings.Title; 5043 RenderIcon(settings.Icon); 5044 } 5045 Write("</" + tagName + ">"); 5046 ; 5047 } 5048 } 5049 5050 void RenderImage(Image settings) 5051 { 5052 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None) 5053 { 5054 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5055 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); } 5056 5057 if (settings.Caption != null) 5058 { 5059 WriteLiteral(" "); 5060 WriteLiteral("<div>\r\n"); 5061 } 5062 5063 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower(); 5064 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower(); 5065 5066 WriteLiteral(" <div"); 5067 BeginWriteAttribute("class", " class=\"", 80927, "\"", 81008, 5); 5068 WriteAttributeValue("", 80935, "image-filter", 80935, 12, true); 5069 WriteAttributeValue(" ", 80947, "image-filter--", 80948, 15, true); 5070 WriteAttributeValue("", 80962, primaryFilterClass, 80962, 19, false); 5071 WriteAttributeValue(" ", 80981, "u-position-relative", 80982, 20, true); 5072 WriteAttributeValue(" ", 81001, "dw-mod", 81002, 7, true); 5073 EndWriteAttribute(); 5074 WriteLiteral(" "); 5075 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5076 WriteLiteral(">\r\n <div"); 5077 BeginWriteAttribute("class", " class=\"", 81088, "\"", 81151, 4); 5078 WriteAttributeValue("", 81096, "image-filter", 81096, 12, true); 5079 WriteAttributeValue(" ", 81108, "image-filter--", 81109, 15, true); 5080 WriteAttributeValue("", 81123, secondaryFilterClass, 81123, 21, false); 5081 WriteAttributeValue(" ", 81144, "dw-mod", 81145, 7, true); 5082 EndWriteAttribute(); 5083 WriteLiteral(">\r\n"); 5084 if (settings.Link != null) 5085 { 5086 WriteLiteral(" <a"); 5087 BeginWriteAttribute("href", " href=\"", 81265, "\"", 81286, 1); 5088 WriteAttributeValue("", 81272, settings.Link, 81272, 14, false); 5089 EndWriteAttribute(); 5090 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n"); 5091 } 5092 else 5093 { 5094 RenderTheImage(settings); 5095 } 5096 WriteLiteral(" </div>\r\n </div>\r\n"); 5097 5098 if (settings.Caption != null) 5099 { 5100 WriteLiteral(" <span class=\"image-caption dw-mod\">"); 5101 Write(settings.Caption); 5102 WriteLiteral("</span>\r\n "); 5103 WriteLiteral("</div>\r\n"); 5104 } 5105 } 5106 else 5107 { 5108 if (settings.Caption != null) 5109 { 5110 WriteLiteral(" "); 5111 WriteLiteral("<div>\r\n"); 5112 } 5113 if (!string.IsNullOrEmpty(settings.Link)) 5114 { 5115 WriteLiteral(" <a"); 5116 BeginWriteAttribute("href", " href=\"", 82029, "\"", 82050, 1); 5117 WriteAttributeValue("", 82036, settings.Link, 82036, 14, false); 5118 EndWriteAttribute(); 5119 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n"); 5120 } 5121 else 5122 { 5123 RenderTheImage(settings); 5124 } 5125 5126 if (settings.Caption != null) 5127 { 5128 WriteLiteral(" <span class=\"image-caption dw-mod\">"); 5129 Write(settings.Caption); 5130 WriteLiteral("</span>\r\n "); 5131 WriteLiteral("</div>\r\n"); 5132 } 5133 } 5134 } 5135 5136 void RenderTheImage(Image settings) 5137 { 5138 if (settings != null) 5139 { 5140 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg"; 5141 string placeholderImage = "/Files/Images/placeholder.gif"; 5142 string imageEngine = "/Admin/Public/GetImage.ashx?"; 5143 5144 string imageStyle = ""; 5145 5146 switch (settings.Style) 5147 { 5148 case ImageStyle.Ball: 5149 imageStyle = "grid__cell-img--ball"; 5150 break; 5151 5152 case ImageStyle.Triangle: 5153 imageStyle = "grid__cell-img--triangle"; 5154 break; 5155 } 5156 5157 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle) 5158 { 5159 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop; 5160 5161 if (settings.ImageDefault != null) 5162 { 5163 settings.ImageDefault.Height = settings.ImageDefault.Width; 5164 } 5165 if (settings.ImageMedium != null) 5166 { 5167 settings.ImageMedium.Height = settings.ImageMedium.Width; 5168 } 5169 if (settings.ImageSmall != null) 5170 { 5171 settings.ImageSmall.Height = settings.ImageSmall.Width; 5172 } 5173 } 5174 5175 string defaultImage = imageEngine; 5176 string imageSmall = ""; 5177 string imageMedium = ""; 5178 5179 if (settings.DisableImageEngine) 5180 { 5181 defaultImage = settings.Path; 5182 } 5183 else 5184 { 5185 if (settings.ImageDefault != null) 5186 { 5187 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault); 5188 5189 if (settings.Path.GetType() != typeof(string)) 5190 { 5191 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5192 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5193 } 5194 else 5195 { 5196 defaultImage += settings.Path != null ? "Image=" + settings.Path : ""; 5197 } 5198 5199 defaultImage += "&AlternativeImage=" + alternativeImage; 5200 } 5201 5202 if (settings.ImageSmall != null) 5203 { 5204 imageSmall = "data-src-small=\"" + imageEngine; 5205 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall); 5206 5207 if (settings.Path.GetType() != typeof(string)) 5208 { 5209 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5210 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5211 } 5212 else 5213 { 5214 imageSmall += settings.Path != null ? "Image=" + settings.Path : ""; 5215 } 5216 5217 imageSmall += "&alternativeImage=" + alternativeImage; 5218 5219 imageSmall += "\""; 5220 } 5221 5222 if (settings.ImageMedium != null) 5223 { 5224 imageMedium = "data-src-medium=\"" + imageEngine; 5225 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium); 5226 5227 if (settings.Path.GetType() != typeof(string)) 5228 { 5229 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5230 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5231 } 5232 else 5233 { 5234 imageMedium += settings.Path != null ? "Image=" + settings.Path : ""; 5235 } 5236 5237 imageMedium += "&alternativeImage=" + alternativeImage; 5238 5239 imageMedium += "\""; 5240 } 5241 } 5242 5243 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5244 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); } 5245 if (!string.IsNullOrEmpty(settings.Title)) 5246 { 5247 optionalAttributes.Add("alt", settings.Title); 5248 optionalAttributes.Add("title", settings.Title); 5249 } 5250 5251 if (settings.DisableLazyLoad) 5252 { 5253 WriteLiteral(" <img"); 5254 BeginWriteAttribute("id", " id=\"", 87529, "\"", 87546, 1); 5255 WriteAttributeValue("", 87534, settings.Id, 87534, 12, false); 5256 EndWriteAttribute(); 5257 BeginWriteAttribute("class", " class=\"", 87547, "\"", 87592, 3); 5258 WriteAttributeValue("", 87555, imageStyle, 87555, 11, false); 5259 WriteAttributeValue(" ", 87566, settings.CssClass, 87567, 18, false); 5260 WriteAttributeValue(" ", 87585, "dw-mod", 87586, 7, true); 5261 EndWriteAttribute(); 5262 BeginWriteAttribute("src", " src=\"", 87593, "\"", 87612, 1); 5263 WriteAttributeValue("", 87599, defaultImage, 87599, 13, false); 5264 EndWriteAttribute(); 5265 WriteLiteral(" "); 5266 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5267 WriteLiteral(" "); 5268 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5269 WriteLiteral(" />\r\n"); 5270 } 5271 else 5272 { 5273 5274 WriteLiteral(" <img"); 5275 BeginWriteAttribute("id", " id=\"", 87810, "\"", 87827, 1); 5276 WriteAttributeValue("", 87815, settings.Id, 87815, 12, false); 5277 EndWriteAttribute(); 5278 BeginWriteAttribute("class", " class=\"", 87828, "\"", 87873, 3); 5279 WriteAttributeValue("", 87836, imageStyle, 87836, 11, false); 5280 WriteAttributeValue(" ", 87847, settings.CssClass, 87848, 18, false); 5281 WriteAttributeValue(" ", 87866, "dw-mod", 87867, 7, true); 5282 EndWriteAttribute(); 5283 WriteLiteral(" loading=\"lazy\""); 5284 BeginWriteAttribute("src", " src=\"", 87889, "\"", 87908, 1); 5285 WriteAttributeValue("", 87895, defaultImage, 87895, 13, false); 5286 EndWriteAttribute(); 5287 WriteLiteral(" "); 5288 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5289 WriteLiteral(" "); 5290 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5291 WriteLiteral(" />\r\n"); 5292 } 5293 } 5294 } 5295 5296 void RenderHiddenField(HiddenField settings) { 5297 var attributes = new Dictionary<string, string>(); 5298 attributes.Add("type", "hidden"); 5299 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5300 if (settings.Value != null) { attributes.Add("value", settings.Value); } 5301 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 5302 5303 WriteLiteral(" <input "); 5304 Write(ComponentMethods.AddAttributes(attributes)); 5305 WriteLiteral(" "); 5306 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5307 WriteLiteral("/>\r\n"); 5308 } 5309 5310 void RenderRadioButtonField(RadioButtonField settings) 5311 { 5312 var attributes = new Dictionary<string, string>(); 5313 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id)) 5314 { 5315 settings.Id = Guid.NewGuid().ToString("N"); 5316 } 5317 5318 /*base settings*/ 5319 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5320 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); } 5321 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); } 5322 if (settings.Disabled) { attributes.Add("disabled", "true"); } 5323 if (settings.Required) { attributes.Add("required", "true"); } 5324 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 5325 /*end*/ 5326 5327 attributes.Add("type", "radio"); 5328 if (settings.Checked) { attributes.Add("checked", "true"); } 5329 settings.CssClass = "form__control " + settings.CssClass; 5330 if (settings.Value != null) { attributes.Add("value", settings.Value); } 5331 5332 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value); 5333 5334 WriteLiteral(" <div"); 5335 BeginWriteAttribute("class", " class=\"", 90228, "\"", 90286, 3); 5336 WriteAttributeValue("", 90236, "form__field-group", 90236, 17, true); 5337 WriteAttributeValue(" ", 90253, settings.WrapperCssClass, 90254, 25, false); 5338 WriteAttributeValue(" ", 90279, "dw-mod", 90280, 7, true); 5339 EndWriteAttribute(); 5340 WriteLiteral(">\r\n <input "); 5341 Write(ComponentMethods.AddAttributes(resultAttributes)); 5342 WriteLiteral(" class=\""); 5343 Write(settings.CssClass); 5344 WriteLiteral(" dw-mod\" />\r\n"); 5345 if (!string.IsNullOrEmpty(settings.Label)) 5346 { 5347 WriteLiteral(" <label"); 5348 BeginWriteAttribute("for", " for=\"", 90491, "\"", 90509, 1); 5349 WriteAttributeValue("", 90497, settings.Id, 90497, 12, false); 5350 EndWriteAttribute(); 5351 WriteLiteral(" class=\"dw-mod\">"); 5352 Write(settings.Label); 5353 WriteLiteral("</label>\r\n"); 5354 } 5355 if (!string.IsNullOrEmpty(settings.HelpText)) 5356 { 5357 WriteLiteral(" <small class=\"form__help-text\">"); 5358 Write(settings.HelpText); 5359 WriteLiteral("</small>\r\n"); 5360 } 5361 WriteLiteral(" Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n"); 5362 } 5363 5364 void RenderRadioButtonListField(RadioButtonListField settings) 5365 { 5366 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; } 5367 5368 WriteLiteral(" <div"); 5369 BeginWriteAttribute("class", " class=\"", 91224, "\"", 91298, 4); 5370 WriteAttributeValue("", 91232, "form__field-group", 91232, 17, true); 5371 WriteAttributeValue(" ", 91249, settings.WrapperCssClass, 91250, 25, false); 5372 WriteAttributeValue(" ", 91275, "u-margin-bottom", 91276, 16, true); 5373 WriteAttributeValue(" ", 91291, "dw-mod", 91292, 7, true); 5374 EndWriteAttribute(); 5375 WriteLiteral(" "); 5376 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5377 WriteLiteral(">\r\n"); 5378 if (!string.IsNullOrEmpty(settings.Label)) 5379 { 5380 WriteLiteral(" <label>"); 5381 Write(settings.Label); 5382 WriteLiteral("</label>\r\n"); 5383 } 5384 if (!string.IsNullOrEmpty(settings.HelpText)) 5385 { 5386 WriteLiteral(" <small class=\"form__help-text\">"); 5387 Write(settings.HelpText); 5388 WriteLiteral("</small>\r\n"); 5389 } 5390 WriteLiteral("\r\n"); 5391 foreach (var item in settings.Options) 5392 { 5393 if (settings.Required) 5394 { 5395 item.Required = true; 5396 } 5397 if (settings.Disabled) 5398 { 5399 item.Disabled = true; 5400 } 5401 if (!string.IsNullOrEmpty(settings.Name)) 5402 { 5403 item.Name = settings.Name; 5404 } 5405 if (settings.Value != null && settings.Value == item.Value) 5406 { 5407 item.Checked = true; 5408 } 5409 if (!string.IsNullOrEmpty(settings.OnClick)) 5410 { 5411 item.OnClick += settings.OnClick; 5412 } 5413 if (!string.IsNullOrEmpty(settings.OnChange)) 5414 { 5415 item.OnChange += settings.OnChange; 5416 } 5417 if (!string.IsNullOrEmpty(settings.CssClass)) 5418 { 5419 item.CssClass += settings.CssClass; 5420 } 5421 Render(item); 5422 } 5423 WriteLiteral("\r\n Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n"); 5424 } 5425 5426 void RenderForm(Form settings) { 5427 if (settings != null) 5428 { 5429 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5430 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); }; 5431 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); }; 5432 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); }; 5433 var enctypes = new Dictionary<string, string> 5434 { 5435 { "multipart", "multipart/form-data" }, 5436 { "text", "text/plain" }, 5437 { "application", "application/x-www-form-urlencoded" } 5438 }; 5439 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); }; 5440 optionalAttributes.Add("method", settings.Method.ToString()); 5441 5442 if (!string.IsNullOrEmpty(settings.FormStartMarkup)) 5443 { 5444 Write(settings.FormStartMarkup); 5445 5446 } 5447 else 5448 { 5449 WriteLiteral(" "); 5450 WriteLiteral("<form class=\""); 5451 Write(settings.CssClass); 5452 WriteLiteral(" u-no-margin dw-mod\" "); 5453 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5454 WriteLiteral(" "); 5455 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5456 WriteLiteral(">\r\n"); 5457 } 5458 5459 foreach (var field in settings.GetFields()) 5460 { 5461 Render(field); 5462 } 5463 5464 WriteLiteral(" "); 5465 WriteLiteral("</form>\r\n"); 5466 } 5467 } 5468 5469 void RenderText(Text settings) 5470 { 5471 Write(settings.Content); 5472 5473 } 5474 5475 void RenderContentModule(ContentModule settings) { 5476 if (!string.IsNullOrEmpty(settings.Content)) 5477 { 5478 Write(settings.Content); 5479 5480 } 5481 } 5482 5483 void RenderModal(Modal settings) { 5484 if (settings != null) 5485 { 5486 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N"); 5487 5488 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : ""; 5489 5490 WriteLiteral(" <input type=\"checkbox\""); 5491 BeginWriteAttribute("id", " id=\"", 95694, "\"", 95721, 2); 5492 WriteAttributeValue("", 95699, modalId, 95699, 10, false); 5493 WriteAttributeValue("", 95709, "ModalTrigger", 95709, 12, true); 5494 EndWriteAttribute(); 5495 WriteLiteral(" class=\"modal-trigger\" "); 5496 Write(onchange); 5497 WriteLiteral(" />\r\n"); 5498 WriteLiteral(" <div class=\"modal-container\">\r\n"); 5499 if (!settings.DisableDarkOverlay) 5500 { 5501 WriteLiteral(" <label"); 5502 BeginWriteAttribute("for", " for=\"", 95901, "\"", 95929, 2); 5503 WriteAttributeValue("", 95907, modalId, 95907, 10, false); 5504 WriteAttributeValue("", 95917, "ModalTrigger", 95917, 12, true); 5505 EndWriteAttribute(); 5506 BeginWriteAttribute("id", " id=\"", 95930, "\"", 95957, 2); 5507 WriteAttributeValue("", 95935, modalId, 95935, 10, false); 5508 WriteAttributeValue("", 95945, "ModalOverlay", 95945, 12, true); 5509 EndWriteAttribute(); 5510 WriteLiteral(" class=\"modal-overlay\"></label>\r\n"); 5511 } 5512 WriteLiteral(" <div"); 5513 BeginWriteAttribute("class", " class=\"", 96030, "\"", 96139, 5); 5514 WriteAttributeValue("", 96038, "modal", 96038, 5, true); 5515 WriteAttributeValue(" ", 96043, "modal--", 96044, 8, true); 5516 WriteAttributeValue("", 96051, settings.Width.ToString().ToLower(), 96051, 36, false); 5517 WriteAttributeValue(" ", 96087, "modal-height--", 96088, 15, true); 5518 WriteAttributeValue("", 96102, settings.Height.ToString().ToLower(), 96102, 37, false); 5519 EndWriteAttribute(); 5520 BeginWriteAttribute("id", " id=\"", 96140, "\"", 96160, 2); 5521 WriteAttributeValue("", 96145, modalId, 96145, 10, false); 5522 WriteAttributeValue("", 96155, "Modal", 96155, 5, true); 5523 EndWriteAttribute(); 5524 WriteLiteral(">\r\n"); 5525 if (settings.Heading != null) 5526 { 5527 if (!string.IsNullOrEmpty(settings.Heading.Title)) 5528 { 5529 WriteLiteral(" <div class=\"modal__header\">\r\n RenderHeading(settings.Heading);\r\n </div>\r\n"); 5530 } 5531 } 5532 WriteLiteral(" <div"); 5533 BeginWriteAttribute("class", " class=\"", 96575, "\"", 96670, 2); 5534 WriteAttributeValue("", 96583, "modal__body", 96583, 11, true); 5535 WriteAttributeValue(" ", 96594, settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "", 96595, 75, false); 5536 EndWriteAttribute(); 5537 WriteLiteral(">\r\n"); 5538 if (!string.IsNullOrEmpty(settings.BodyText)) 5539 { 5540 Write(settings.BodyText); 5541 5542 } 5543 if (settings.BodyTemplate != null) 5544 { 5545 Write(settings.BodyTemplate); 5546 5547 } 5548 5549 var actions = settings.GetActions(); 5550 WriteLiteral(" </div>\r\n"); 5551 if (actions.Length > 0) 5552 { 5553 WriteLiteral(" <div class=\"modal__footer\">\r\n"); 5554 foreach (var action in actions) 5555 { 5556 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") { 5557 action.CssClass += " u-no-margin"; 5558 } else { 5559 action.CssClass += " u-full-width u-margin-bottom"; 5560 } 5561 5562 Render(action); 5563 } 5564 WriteLiteral(" </div>\r\n"); 5565 } 5566 WriteLiteral(" <label class=\"modal__close-btn\""); 5567 BeginWriteAttribute("for", " for=\"", 97914, "\"", 97942, 2); 5568 WriteAttributeValue("", 97920, modalId, 97920, 10, false); 5569 WriteAttributeValue("", 97930, "ModalTrigger", 97930, 12, true); 5570 EndWriteAttribute(); 5571 WriteLiteral("></label>\r\n </div>\r\n </div>\r\n"); 5572 } 5573 } 5574 5575 void RenderMediaListItem(MediaListItem settings) 5576 { 5577 WriteLiteral(" <div"); 5578 BeginWriteAttribute("class", " class=\"", 98180, "\"", 98229, 3); 5579 WriteAttributeValue("", 98188, "media-list-item", 98188, 15, true); 5580 WriteAttributeValue(" ", 98203, settings.CssClass, 98204, 18, false); 5581 WriteAttributeValue(" ", 98222, "dw-mod", 98223, 7, true); 5582 EndWriteAttribute(); 5583 WriteLiteral(" "); 5584 Write(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : ""); 5585 WriteLiteral(">\r\n"); 5586 if (!string.IsNullOrEmpty(settings.Label)) 5587 { 5588 if (!string.IsNullOrEmpty(settings.Link)) 5589 { 5590 Render(new Link 5591 { 5592 Href = settings.Link, 5593 CssClass = "media-list-item__sticker dw-mod", 5594 ButtonLayout = ButtonLayout.None, 5595 Title = settings.Label, 5596 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : "" 5597 }); 5598 } 5599 else if (!string.IsNullOrEmpty(settings.OnClick)) 5600 { 5601 WriteLiteral(" <span class=\"media-list-item__sticker dw-mod\""); 5602 BeginWriteAttribute("onclick", " onclick=\"", 99037, "\"", 99066, 1); 5603 WriteAttributeValue("", 99047, settings.OnClick, 99047, 19, false); 5604 EndWriteAttribute(); 5605 WriteLiteral(">\r\n <span class=\"u-uppercase\">"); 5606 Write(settings.Label); 5607 WriteLiteral("</span>\r\n </span>\r\n"); 5608 } 5609 else 5610 { 5611 WriteLiteral(" <span class=\"media-list-item__sticker media-list-item__sticker--no-link dw-mod\">\r\n <span class=\"u-uppercase\">"); 5612 Write(settings.Label); 5613 WriteLiteral("</span>\r\n </span>\r\n"); 5614 } 5615 } 5616 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"); 5617 if (!string.IsNullOrEmpty(settings.Title)) 5618 { 5619 if (!string.IsNullOrEmpty(settings.Link)) 5620 { 5621 Render(new Link 5622 { 5623 Href = settings.Link, 5624 CssClass = "media-list-item__name dw-mod", 5625 ButtonLayout = ButtonLayout.None, 5626 Title = settings.Title, 5627 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : "" 5628 }); 5629 } 5630 else if (!string.IsNullOrEmpty(settings.OnClick)) 5631 { 5632 WriteLiteral(" <span class=\"media-list-item__name dw-mod\""); 5633 BeginWriteAttribute("onclick", " onclick=\"", 100563, "\"", 100592, 1); 5634 WriteAttributeValue("", 100573, settings.OnClick, 100573, 19, false); 5635 EndWriteAttribute(); 5636 WriteLiteral(">"); 5637 Write(settings.Title); 5638 WriteLiteral("</span>\r\n"); 5639 } 5640 else 5641 { 5642 WriteLiteral(" <span class=\"media-list-item__name media-list-item__name--no-link dw-mod\">"); 5643 Write(settings.Title); 5644 WriteLiteral("</span>\r\n"); 5645 } 5646 } 5647 WriteLiteral("\r\n"); 5648 if (!string.IsNullOrEmpty(settings.Status)) 5649 { 5650 WriteLiteral(" <div class=\"media-list-item__state dw-mod\">"); 5651 Write(settings.Status); 5652 WriteLiteral("</div>\r\n"); 5653 } 5654 WriteLiteral(" </div>\r\n"); 5655 5656 settings.InfoTable.CssClass += " media-list-item__parameters-table"; 5657 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"); 5658 5659 var actions = settings.GetActions(); 5660 5661 foreach (ButtonBase action in actions) 5662 { 5663 action.ButtonLayout = ButtonLayout.None; 5664 action.CssClass += " media-list-item__action link"; 5665 5666 Render(action); 5667 } 5668 WriteLiteral(" </div>\r\n\r\n"); 5669 if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title)) 5670 { 5671 settings.SelectButton.CssClass += " u-no-margin"; 5672 5673 WriteLiteral(" <div class=\"media-list-item__action-button\">\r\n Render(settings.SelectButton);\r\n </div>\r\n"); 5674 } 5675 WriteLiteral(" </div>\r\n </div>\r\n </div>\r\n"); 5676 } 5677 5678 void RenderTable(Table settings) 5679 { 5680 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5681 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5682 5683 var enumToClasses = new Dictionary<TableDesign, string> 5684 { 5685 { TableDesign.Clean, "table--clean" }, 5686 { TableDesign.Bordered, "table--bordered" }, 5687 { TableDesign.Striped, "table--striped" }, 5688 { TableDesign.Hover, "table--hover" }, 5689 { TableDesign.Compact, "table--compact" }, 5690 { TableDesign.Condensed, "table--condensed" }, 5691 { TableDesign.NoTopBorder, "table--no-top-border" } 5692 }; 5693 string tableDesignClass = ""; 5694 if (settings.Design != TableDesign.None) 5695 { 5696 tableDesignClass = enumToClasses[settings.Design]; 5697 } 5698 5699 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); } 5700 5701 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5702 5703 WriteLiteral(" <table "); 5704 Write(ComponentMethods.AddAttributes(resultAttributes)); 5705 WriteLiteral(">\r\n"); 5706 if (settings.Header != null) 5707 { 5708 WriteLiteral(" <thead>\r\n Render(settings.Header);\r\n </thead>\r\n"); 5709 } 5710 WriteLiteral(" <tbody>\r\n"); 5711 foreach (var row in settings.Rows) 5712 { 5713 Render(row); 5714 } 5715 WriteLiteral(" </tbody>\r\n"); 5716 if (settings.Footer != null) 5717 { 5718 WriteLiteral(" <tfoot>\r\n Render(settings.Footer);\r\n </tfoot>\r\n"); 5719 } 5720 WriteLiteral(" </table>\r\n"); 5721 } 5722 5723 void RenderTableRow(TableRow settings) 5724 { 5725 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5726 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5727 5728 var enumToClasses = new Dictionary<TableRowDesign, string> 5729 { 5730 { TableRowDesign.NoBorder, "table__row--no-border" }, 5731 { TableRowDesign.Border, "table__row--border" }, 5732 { TableRowDesign.TopBorder, "table__row--top-line" }, 5733 { TableRowDesign.BottomBorder, "table__row--bottom-line" }, 5734 { TableRowDesign.Solid, "table__row--solid" } 5735 }; 5736 5737 string tableRowDesignClass = ""; 5738 if (settings.Design != TableRowDesign.None) 5739 { 5740 tableRowDesignClass = enumToClasses[settings.Design]; 5741 } 5742 5743 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); } 5744 5745 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5746 5747 WriteLiteral(" <tr "); 5748 Write(ComponentMethods.AddAttributes(resultAttributes)); 5749 WriteLiteral(">\r\n"); 5750 foreach (var cell in settings.Cells) 5751 { 5752 if (settings.IsHeaderRow) 5753 { 5754 cell.IsHeader = true; 5755 } 5756 Render(cell); 5757 } 5758 WriteLiteral(" </tr>\r\n"); 5759 } 5760 5761 void RenderTableCell(TableCell settings) 5762 { 5763 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5764 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5765 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); } 5766 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); } 5767 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); } 5768 5769 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5770 5771 string tagName = settings.IsHeader ? "th" : "td"; 5772 5773 Write("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">"); 5774 Write(settings.Content); 5775 Write("</" + tagName + ">"); 5776 ; 5777 } 5778 5779 BlocksPage articlePage = BlocksPage.GetBlockPage("DynamicArticle"); 5780 5781 public string GetParentSettingsItem(string systemName) 5782 { 5783 string item = null; 5784 5785 Dynamicweb.Content.Page current = Dynamicweb.Services.Pages.GetPage(Model.ID); 5786 while (current != null && current.Parent != current) 5787 { 5788 var temp = current.Item != null ? current.Item[systemName] : ""; 5789 5790 if (temp != null) 5791 { 5792 item = temp.ToString(); 5793 5794 if (!String.IsNullOrEmpty(item) && !String.Equals("default", item, StringComparison.OrdinalIgnoreCase)) 5795 { 5796 break; 5797 } 5798 } 5799 5800 current = current.Parent; 5801 } 5802 5803 return item; 5804 } 5805 5806 public string GetArticleCategory(int pageId) 5807 { 5808 string categoryName = null; 5809 5810 //Secure that the article is not in the root folder = Actual has a category 5811 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null) 5812 { 5813 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null) 5814 { 5815 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType)) 5816 { 5817 categoryName = Dynamicweb.Services.Pages.GetPage(pageId).Parent.GetDisplayName(); 5818 } 5819 } 5820 } 5821 5822 return categoryName; 5823 } 5824 5825 public string GetArticleCategoryColor(int pageId) 5826 { 5827 string categoryColor = ""; 5828 5829 //Secure that the article is not in the root folder = Actual has a category 5830 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null) 5831 { 5832 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null) 5833 { 5834 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType)) 5835 { 5836 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"] != null) 5837 { 5838 var service = new ColorSwatchService(); 5839 categoryColor = Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"].ToString(); 5840 5841 if (!categoryColor.Contains("#")) 5842 { 5843 categoryColor = service.GetHexColor(Converter.ToInt32(Model.Area.ID), categoryColor); 5844 } 5845 } 5846 } 5847 } 5848 } 5849 5850 return categoryColor; 5851 } 5852 } 5853 } 5854 #pragma warning restore 1591 5855

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.Extensibility 3428 @using Dynamicweb.Core 3429 @using Dynamicweb.Rapido.Blocks.Components 3430 @using Dynamicweb.Rapido.Blocks.Components.Articles 3431 @using Dynamicweb.Rapido.Blocks.Components.General 3432 @using Dynamicweb.Rapido.Blocks 3433 @using Dynamicweb.Content.Items 3434 3435 @functions { 3436 BlocksPage articlePage = BlocksPage.GetBlockPage("DynamicArticle"); 3437 3438 public string GetParentSettingsItem(string systemName) 3439 { 3440 string item = null; 3441 3442 Dynamicweb.Content.Page current = Dynamicweb.Services.Pages.GetPage(Model.ID); 3443 while (current != null && current.Parent != current) 3444 { 3445 var temp = current.Item != null ? current.Item[systemName] : ""; 3446 3447 if (temp != null) 3448 { 3449 item = temp.ToString(); 3450 3451 if (!String.IsNullOrEmpty(item) && !String.Equals("default", item, StringComparison.OrdinalIgnoreCase)) 3452 { 3453 break; 3454 } 3455 } 3456 3457 current = current.Parent; 3458 } 3459 3460 return item; 3461 } 3462 3463 public string GetArticleCategory(int pageId) 3464 { 3465 string categoryName = null; 3466 3467 //Secure that the article is not in the root folder = Actual has a category 3468 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null) 3469 { 3470 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null) 3471 { 3472 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType)) 3473 { 3474 categoryName = Dynamicweb.Services.Pages.GetPage(pageId).Parent.GetDisplayName(); 3475 } 3476 } 3477 } 3478 3479 return categoryName; 3480 } 3481 3482 public string GetArticleCategoryColor(int pageId) 3483 { 3484 string categoryColor = ""; 3485 3486 //Secure that the article is not in the root folder = Actual has a category 3487 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null) 3488 { 3489 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null) 3490 { 3491 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType)) 3492 { 3493 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"] != null) 3494 { 3495 var service = new ColorSwatchService(); 3496 categoryColor = Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"].ToString(); 3497 3498 if (!categoryColor.Contains("#")) 3499 { 3500 categoryColor = service.GetHexColor(Converter.ToInt32(Model.Area.ID), categoryColor); 3501 } 3502 } 3503 } 3504 } 3505 } 3506 3507 return categoryColor; 3508 } 3509 } 3510 3511 @{ 3512 string listPageId = Converter.ToString(GetPageIdByNavigationTag("DynamicListFeed")); 3513 string parentPageId = Dynamicweb.Services.Pages.GetPage(Model.ID).Parent.ID.ToString(); 3514 string topLayout = Model.Item.GetList("TopLayout") != null ? Model.Item.GetList("TopLayout").SelectedValue : "default"; 3515 topLayout = topLayout == "default" && GetParentSettingsItem("ArticleTopLayout") != null ? GetParentSettingsItem("ArticleTopLayout").ToString().ToLower() : topLayout; 3516 string textLayout = Model.Item.GetList("TextLayout") != null ? Model.Item.GetList("TextLayout").SelectedValue : "default"; 3517 textLayout = textLayout == "default" && GetParentSettingsItem("ArticleTextLayout") != null ? GetParentSettingsItem("ArticleTextLayout").ToString().ToLower() : textLayout; 3518 string imageLayout = Model.Item.GetList("ImageLayout") != null ? Model.Item.GetList("ImageLayout").SelectedValue : "default"; 3519 imageLayout = imageLayout == "default" && GetParentSettingsItem("ArticleImageLayout") != null ? GetParentSettingsItem("ArticleImageLayout").ToString().ToLower() : imageLayout; 3520 3521 //string imageColumns = imageLayout == "straight" && textLayout != "full" ? "8" : "12"; 3522 //string contentColumns = textLayout != "full" ? "8" : "12"; 3523 string imageColumns = "12"; 3524 string contentColumns = "12"; 3525 3526 int externalParagraphId = Model.Item.GetItem("CTAParagraphLink") != null ? Model.Item.GetItem("CTAParagraphLink").ParagraphID : 0; 3527 3528 ArticleHeaderLayout headerLayout; 3529 3530 switch (topLayout) 3531 { 3532 case "default": 3533 headerLayout = ArticleHeaderLayout.Clean; 3534 break; 3535 case "split": 3536 headerLayout = ArticleHeaderLayout.Split; 3537 break; 3538 case "banner": 3539 headerLayout = ArticleHeaderLayout.Banner; 3540 break; 3541 case "overlay": 3542 headerLayout = ArticleHeaderLayout.Overlay; 3543 break; 3544 default: 3545 headerLayout = ArticleHeaderLayout.Clean; 3546 break; 3547 } 3548 3549 3550 Block articleContainer = new Block 3551 { 3552 Id = "ArticleContainer", 3553 SortId = 10, 3554 Design = new Design 3555 { 3556 RenderType = RenderType.Row 3557 }, 3558 BlocksList = new List<Block> { 3559 new Block { 3560 Id = "ArticleBody", 3561 SortId = 30, 3562 Design = new Design { 3563 RenderType = RenderType.Column, 3564 Size = "12", 3565 HidePadding = true, 3566 CssClass = "margin-top-large" 3567 } 3568 } 3569 } 3570 }; 3571 articlePage.Add(articleContainer); 3572 3573 ButtonLayout topBannerButtonLayout = ButtonLayout.Primary; 3574 3575 switch (Model.Item.GetString("ButtonDesign")) 3576 { 3577 case "primary": 3578 topBannerButtonLayout = ButtonLayout.Primary; 3579 break; 3580 case "secondary": 3581 topBannerButtonLayout = ButtonLayout.Secondary; 3582 break; 3583 case "teritary": 3584 topBannerButtonLayout = ButtonLayout.Tertiary; 3585 break; 3586 case "link": 3587 topBannerButtonLayout = ButtonLayout.Link; 3588 break; 3589 } 3590 3591 ArticleHeader topBanner = new ArticleHeader 3592 { 3593 Layout = headerLayout, 3594 Image = new Image { Path = Model.Item.GetFile("Image"), ImageDefault = new ImageSettings { Width = 1920, Height = 640 } }, 3595 Heading = Model.Item.GetString("Title"), 3596 Subheading = Model.Item.GetString("Summary"), 3597 TextColor = "#fff", 3598 Author = Model.Item.GetString("Author"), 3599 Date = Model.Item.GetString("Date"), 3600 Category = GetArticleCategory(Model.ID), 3601 CategoryColor = GetArticleCategoryColor(Model.ID), 3602 Link = Model.Item.GetString("Link"), 3603 LinkText = Model.Item.GetString("LinkText"), 3604 ButtonLayout = topBannerButtonLayout, 3605 RatingScore = Model.Item.GetString("Rating") != null ? Converter.ToInt32(Model.Item.GetList("Rating").SelectedValue) : 0, 3606 RatingOutOf = Model.Item.GetString("Rating") != null ? Model.Item.GetList("Rating").Options.Count : 0, 3607 ExternalParagraphId = externalParagraphId 3608 }; 3609 3610 Block articleTop = new Block 3611 { 3612 Id = "ArticleHead", 3613 SortId = 20, 3614 Component = topBanner, 3615 Design = new Design 3616 { 3617 RenderType = RenderType.Column, 3618 Size = "12", 3619 HidePadding = true, 3620 CssClass = "article-head" 3621 } 3622 }; 3623 //articlePage.Add("ArticleContainer", articleTop); 3624 3625 3626 Block articleBodyRow = new Block 3627 { 3628 Id = "ArticleBodyRow", 3629 SortId = 10, 3630 SkipRenderBlocksList = true 3631 }; 3632 articlePage.Add("ArticleBody", articleBodyRow); 3633 3634 3635 if (Model.Item.GetString("Paragraphs") != null) 3636 { 3637 int count = 0; 3638 foreach (var paragraph in Model.Item.GetItems("Paragraphs")) 3639 { 3640 if (!paragraph.GetBoolean("RenderAsQuote")) 3641 { 3642 string enableDropCap = Model.Item.GetString("EnableDropCap") != null ? Model.Item.GetList("EnableDropCap").SelectedValue.ToLower() : "default"; 3643 enableDropCap = enableDropCap == "default" && GetParentSettingsItem("EnableDropCap") != null ? GetParentSettingsItem("EnableDropCap").ToString().ToLower() : enableDropCap; 3644 string text = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : ""; 3645 3646 if (!String.IsNullOrEmpty(text) && enableDropCap == "true" && count == 0 && paragraph.GetString("Text").Substring(0, 3) == "<p>") 3647 { 3648 string firstLetter = paragraph.GetString("Text").Substring(3, 1); 3649 text = paragraph.GetString("Text").Remove(3, 1); 3650 text = text.Insert(3, "<span class=\"article__drop-cap\">" + firstLetter + "</span>"); 3651 } 3652 3653 if (!String.IsNullOrEmpty(paragraph.GetString("Heading"))) 3654 { 3655 Block articleParagraphHeader = new Block 3656 { 3657 Id = "ArticleParagraph" + count + "Heading", 3658 SortId = (count * 10) , 3659 Component = new ArticleSubHeader { Title = paragraph.GetString("Heading") }, 3660 Design = new Design 3661 { 3662 RenderType = RenderType.Column, 3663 Size = contentColumns, 3664 CssClass = "u-color-light--bg u-padding--lg" 3665 } 3666 }; 3667 articlePage.Add("ArticleBodyRow", articleParagraphHeader); 3668 } 3669 3670 if (paragraph.GetFile("Image") != null) 3671 { 3672 string imageTitle = !string.IsNullOrEmpty(paragraph.GetString("Heading")) ? paragraph.GetString("Heading") : ""; 3673 3674 Block articleParagraphImage = new Block 3675 { 3676 Id = "ArticleParagraph" + count + "Image", 3677 SortId = (count * 10) + 2, 3678 Design = new Design 3679 { 3680 RenderType = RenderType.Column, 3681 Size = imageColumns, 3682 CssClass = "u-color-light--bg u-padding--lg" 3683 } 3684 }; 3685 3686 if (imageLayout == "banner") 3687 { 3688 ArticleBanner banner = new ArticleBanner 3689 { 3690 Image = new Image { Path = paragraph.GetFile("Image"), ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, Caption = paragraph.GetString("ImageCaption") }, 3691 Heading = imageTitle, 3692 UseFilters = false 3693 }; 3694 articleParagraphImage.Component = banner; 3695 } 3696 else 3697 { 3698 ArticleImage image = new ArticleImage 3699 { 3700 Image = new Image 3701 { 3702 Path = paragraph.GetFile("Image"), 3703 Title = imageTitle, 3704 ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, 3705 Caption = paragraph.GetString("ImageCaption"), 3706 CssClass = "u-full-width" 3707 } 3708 }; 3709 articleParagraphImage.Component = image; 3710 } 3711 3712 articlePage.Add("ArticleBodyRow", articleParagraphImage); 3713 } 3714 3715 if (!String.IsNullOrEmpty(paragraph.GetString("VideoURL"))) 3716 { 3717 Block articleParagraphVideo = new Block 3718 { 3719 Id = "ArticleParagraph" + count + "Video", 3720 SortId = (count * 10) + 3, 3721 Component = new ArticleVideo { Url = paragraph.GetString("VideoURL"), AutoPlay = "false" }, 3722 Design = new Design 3723 { 3724 RenderType = RenderType.Column, 3725 Size = imageColumns, 3726 CssClass = "u-color-light--bg u-padding--lg" 3727 } 3728 }; 3729 articlePage.Add("ArticleBodyRow", articleParagraphVideo); 3730 } 3731 3732 if (!String.IsNullOrEmpty(text)) 3733 { 3734 Block articleParagraphText = new Block 3735 { 3736 Id = "ArticleParagraph" + count + "Text", 3737 SortId = (count * 10) + 3, 3738 Component = new ArticleText { Text = text }, 3739 Design = new Design 3740 { 3741 RenderType = RenderType.Column, 3742 Size = contentColumns, 3743 CssClass = "u-color-light--bg u-padding--lg" 3744 } 3745 }; 3746 3747 articlePage.Add("ArticleBodyRow", articleParagraphText); 3748 } 3749 } 3750 else 3751 { 3752 if (!String.IsNullOrEmpty(paragraph.GetString("Text"))) 3753 { 3754 string quoteText = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : ""; 3755 string quoteAuthor = paragraph.GetString("Heading") != null ? paragraph.GetString("Heading") : ""; 3756 3757 Block articleParagraphQuote = new Block 3758 { 3759 Id = "ArticleParagraph" + count + "Quote", 3760 SortId = (count * 10) + 3, 3761 Component = new ArticleQuote { Image = new Image { Path = paragraph.GetFile("Image") }, Text = quoteText, Author = quoteAuthor }, 3762 Design = new Design 3763 { 3764 RenderType = RenderType.Column, 3765 Size = contentColumns, 3766 CssClass = "u-color-light--bg u-padding--lg" 3767 } 3768 }; 3769 articlePage.Add("ArticleBodyRow", articleParagraphQuote); 3770 } 3771 } 3772 3773 count++; 3774 } 3775 } 3776 3777 articleBodyRow.Component = new ArticleBodyRow { SubBlocks = articleBodyRow.BlocksList, TopLayout = topLayout, TextLayout = textLayout }; 3778 3779 3780 //Related 3781 string showRelatedArtices = Model.Item.GetString("ShowRelatedArticles") != null ? Model.Item.GetList("ShowRelatedArticles").SelectedValue.ToLower() : "default"; 3782 showRelatedArtices = showRelatedArtices == "default" && GetParentSettingsItem("ShowRelatedArticles") != null ? GetParentSettingsItem("ShowRelatedArticles").ToString().ToLower() : showRelatedArtices; 3783 3784 if (showRelatedArtices == "true") 3785 { 3786 Block articleRelated = new Block 3787 { 3788 Id = "ArticleRelated", 3789 SortId = 30, 3790 Component = new ArticleRelated { Title = Translate("Related articles"), FeedPageId = listPageId, Query = "sourceType=Page&sourcePage=" + parentPageId, PageSize = 4, CurrentPageId = Model.ID.ToString() }, 3791 Design = new Design 3792 { 3793 RenderType = RenderType.Column, 3794 Size = "12" 3795 } 3796 }; 3797 articlePage.Add("ArticleContainer", articleRelated); 3798 } 3799 } 3800 3801 3802 @* The @RenderBlockList base helper is included in Components/GridBuilder.cshtml *@ 3803 <section class="center-container content-container dw-mod"> 3804 @RenderBlockList(articlePage.BlocksRoot.BlocksList) 3805 </section> 3806 </div> 3807 3808 @if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true) 3809 { 3810 string bName = MyBroker.Broker.Name; 3811 string bClass = "na"; 3812 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 3813 3814 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName)) 3815 { 3816 bName = MyBroker.Broker.CompanyName; 3817 } 3818 try 3819 { 3820 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl"); 3821 if (!string.IsNullOrEmpty(imgUrl)) 3822 { 3823 bImage = imgUrl; 3824 bClass = ""; 3825 } 3826 } 3827 catch 3828 { 3829 // Ignore 3830 } 3831 3832 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId"); 3833 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 3834 3835 <section class="din-maegler"> 3836 <div class="img-wrapper @bClass" style="background-image:url('@bImage')"></div> 3837 <div class="container"> 3838 <div class="col-12 col-sm-12 col-md-6 offset-md-6"> 3839 <h2>Din personlige mægler</h2> 3840 <div class="row"> 3841 <div class="col-12 col-sm-6"> 3842 <p> 3843 <b class="my-broker-name">@MyBroker.Employee.Name</b><br> 3844 @if (!string.IsNullOrEmpty(MyBroker.Employee.Email)) 3845 { 3846 <text>Mail: <a href="mailto:@(ExtractMaskedEmail(MyBroker.Employee.Email))" class="my-broker-email">@ExtractMaskedEmail(MyBroker.Employee.Email)</a><br></text> 3847 } 3848 @if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile)) 3849 { 3850 <text>Tlf.: <a href="tel:@(MyBroker.Employee.PhoneMobile)" class="my-broker-phone">@FormatPhoneNumber(MyBroker.Employee.PhoneMobile)</a></text> 3851 } 3852 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 3853 { 3854 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-phone">@FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text> 3855 } 3856 </p> 3857 </div> 3858 <div class="col-12 col-sm-6"> 3859 <p> 3860 <b class="my-broker-company-name">@bName</b><br> 3861 <span class="my-broker-company-address">@MyBroker.Broker.Address</span><br> 3862 <span class="my-broker-company-zip">@MyBroker.Broker.ZipCode</span> <span class="my-broker-company-city">@MyBroker.Broker.City</span><br> 3863 @if (!string.IsNullOrEmpty(bEmail)) 3864 { 3865 <text>Mail: <a href="mailto:@(bEmail)" class="my-broker-broker-email">@bEmail</a><br></text> 3866 } 3867 @if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 3868 { 3869 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-broker-phone">@FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text> 3870 } 3871 </p> 3872 </div> 3873 </div> 3874 <div class="row"> 3875 <br /> 3876 <div class="col-12 col-sm-6"> 3877 <a href="/@medlemsnummer.Substring(1)" class="btn btn-primary btn-block my-broker-company-url">Til mæglerens side</a> 3878 </div> 3879 3880 </div> 3881 </div> 3882 </div> 3883 </section> 3884 } 3885 <footer> 3886 <div class="container"> 3887 <div class="row"> 3888 @{ 3889 var navigationSettings = new NavigationSettings(); 3890 navigationSettings.StartLevel = 1; 3891 navigationSettings.StopLevel = 3; 3892 navigationSettings.ExpandMode = ExpandMode.All; 3893 navigationSettings.RootAreaId = 1; 3894 navigationSettings.RootNavigationTag = "footer-nav"; 3895 3896 } 3897 @Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings) 3898 </div> 3899 </div> 3900 </footer> 3901 3902 @if (Model.CurrentUser?.ID <= 0) 3903 { 3904 <div id="panel-login" class="panel panel-form"> 3905 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 3906 <b></b> 3907 </button> 3908 <div class="loginform login"> 3909 @if (loginParagraphId > 0) 3910 { 3911 <text> 3912 @RenderParagraphContent(loginParagraphId) 3913 </text> 3914 } 3915 </div> 3916 <div class="loginform register js-register-form-wrapper" style="display: none;"> 3917 @if (createUserParagraphId > 0) 3918 { 3919 <text> 3920 @RenderParagraphContent(createUserParagraphId) 3921 </text> 3922 } 3923 </div> 3924 <div class="loginform forgotpw" style="display: none;"> 3925 <h2 class="forgotpw-reg">@Translate("forgot-pw-reg-title", "Glemt adgangskode")</h2> 3926 <h2 class="forgotpw-broker">@Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")</h2> 3927 <form id="forgotPwForm" class="form-body" method="post" action=""> 3928 <input type="hidden" id="AccessUserShopID" name="AccessUserShopID" value="SHOP6" /> 3929 <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> 3930 <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> 3931 <div class="form-group"> 3932 <input id="AccessUserEmail" name="AccessUserEmail" type="email" pattern="[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$" placeholder="E-mail" class="form-control" required /> 3933 </div> 3934 <button class="btn btn-primary btn-block" type="submit">@Translate("forgot-pw-cta", "Nulstil adgangskode")</button> 3935 <br /> 3936 <div id="submitMessage"></div> 3937 </form> 3938 </div> 3939 </div> 3940 } 3941 3942 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 3943 @using Dynamicweb.Security.UserManagement 3944 3945 @{ 3946 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"); 3947 } 3948 3949 <div id="panel-kontakt-koeberraadgivning" class="panel panel-form"> 3950 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 3951 <b></b> 3952 </button> 3953 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2> 3954 <form id="form-koeberraadgivning" method="POST" action="/InboxHandler"> 3955 <div class="form-group"> 3956 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 3957 <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 /> 3958 </div> 3959 <div class="form-group"> 3960 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 3961 <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 /> 3962 </div> 3963 <div class="form-group row mb-4"> 3964 <div class="col-6"> 3965 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 3966 <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 /> 3967 </div> 3968 <div class="col-6"> 3969 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 3970 <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' /> 3971 </div> 3972 </div> 3973 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 3974 <div class="form-group row"> 3975 <div class="col-4"> 3976 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 3977 <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 /> 3978 <input type="hidden" class="js-postnummer-validation" /> 3979 </div> 3980 <div class="col-8"> 3981 <label><strong>@Translate("form-city", "By")*</strong></label> 3982 <input class="form-control js-city" type="text" readonly /> 3983 </div> 3984 </div> 3985 <div class="form-group overflow-unset"> 3986 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 3987 <input class="form-control js-validate-address" type="text" name="adresse" tabindex="6" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' required /> 3988 3989 <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> 3990 </div> 3991 <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"> 3992 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 3993 </button> 3994 <div class="collapse" id="kontaktkoeberrradgiver-collapse"> 3995 <div class="form-group"> 3996 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 3997 </div> 3998 </div> 3999 4000 <div class="form-group"> 4001 <div class="row"> 4002 <div class="col-12"> 4003 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button> 4004 </div> 4005 </div> 4006 </div> 4007 <div class="form-group mt-3"> 4008 <div class="checkbox"> 4009 <label> 4010 <input type="checkbox" name="kontaktmigok" required /> 4011 4012 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 4013 4014 </label> 4015 </div> 4016 </div> 4017 <div class="form-group form-group-terms"> 4018 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 4019 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 4020 </div> 4021 4022 <input type="hidden" name="fn" value="krk" /> 4023 <input type="hidden" name="origin" value="" /> 4024 <input type="hidden" name="brugerId" value="" /> 4025 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 4026 <input type="hidden" name="butikId" value="@butikId" /> 4027 <input type="hidden" name="ejendomstype" value="" /> 4028 <input type="hidden" name="salgspris" value="" /> 4029 <input type="hidden" name="modtager" value="" /> 4030 </form> 4031 <div id="tak-kontakt-advisor" style="display:none;"> 4032 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 4033 <div class="row"> 4034 <div class="col-6"> 4035 <img src="" class="img-fluid js-maegler-img" /> 4036 </div> 4037 <div class="col-6"> 4038 <p class="js-maegler-name"></p> 4039 <p class="js-maegler-address"></p> 4040 <p class="js-maegler-phone"></p> 4041 <p class="js-maegler-mail"></p> 4042 </div> 4043 </div> 4044 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 4045 </div> 4046 </div> 4047 4048 <!--ÅBENT HUS--> 4049 <div id="panel-aabenthus" class="panel panel-form"> 4050 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 4051 <b></b> 4052 </button> 4053 4054 4055 <form id="form-aabenthus" method="POST" action="/InboxHandler"> 4056 <h2>@Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")</h2> 4057 <div class="d-block"> 4058 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label> 4059 </div> 4060 <div class="d-block"> 4061 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label> 4062 </div> 4063 <div class="d-block mb-4"> 4064 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label> 4065 </div> 4066 <h3>@Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")</h3> 4067 <div class="form-group"> 4068 <label for="aabenthus-name"><strong>@Translate("form-navn", "Navn")*</strong></label> 4069 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current?.User?.Name' required /> 4070 </div> 4071 <div class="form-group"> 4072 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 4073 <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 /> 4074 </div> 4075 <div class="form-group row"> 4076 <div class="col-6"> 4077 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 4078 <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 /> 4079 </div> 4080 <div class="col-6"> 4081 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 4082 <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' /> 4083 </div> 4084 </div> 4085 <div class="form-group"> 4086 <div class="row"> 4087 <div class="col-12"> 4088 <button type="submit" class="btn btn-block btn-green">@Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")</button> 4089 </div> 4090 </div> 4091 </div> 4092 <div class="form-group"> 4093 <div class="checkbox"> 4094 <label> 4095 <input type="checkbox" name="kontaktmigok" required /> 4096 4097 <span class="base-color">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 4098 4099 </label> 4100 </div> 4101 </div> 4102 <div class="form-group"> 4103 @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>") 4104 4105 </div> 4106 <input type="hidden" name="fn" value="ah" /> 4107 <input type="hidden" name="origin" value="" /> 4108 <input type="hidden" name="brugerId" value="@userID" /> 4109 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 4110 <input type="hidden" name="butikId" value="@butikId" /> 4111 <input type="hidden" name="sagsaddresse" value="" class="js-aabenthus-address-input" /> 4112 <input type="hidden" name="ejendomstype" value="" /> 4113 <input type="hidden" name="salgspris" value="" /> 4114 <input type="hidden" name="modtager" value="" /> 4115 <input type="hidden" name="employee" value="" /> 4116 <input type="hidden" name="sagsnr" value="" class="js-sagsnr" /> 4117 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 4118 <input type="hidden" name="aftaleid" value="" class="js-aftaleid" /> 4119 4120 <input type="hidden" name="dateMail" class="js-aabenthus-date-input" /> 4121 <input type="hidden" name="timeMail" class="js-aabenthus-time-input" /> 4122 <input type="hidden" name="brokerImageMail" class="property-broker-image-input" /> 4123 <input type="hidden" name="employeeNameMail" class="js-maegler-employee-name-input" /> 4124 <input type="hidden" name="employeeTitleMail" class="js-maegler-employee-title-input" /> 4125 <input type="hidden" name="employeeMailMail" class="js-maegler-mail-input" /> 4126 <input type="hidden" name="employeeMobileMail" class="js-maegler-mobile-input" /> 4127 <input type="hidden" name="employeePhoneMail" class="js-maegler-phone-input" /> 4128 4129 <input type="hidden" name="brokerNameMail" class="js-broker-name-input" /> 4130 <input type="hidden" name="brokerAddressMail" class="js-broker-address-input" /> 4131 <input type="hidden" name="brokerPhoneMail" class="js-broker-phone-input" /> 4132 </form> 4133 <div id="tak-aabenthus" style="display:none;"> 4134 <h2>@Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")</h2> 4135 <div class="d-block"> 4136 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label> 4137 </div> 4138 <div class="d-block"> 4139 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label> 4140 4141 </div> 4142 <div class="d-block mb-4"> 4143 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label> 4144 4145 </div> 4146 4147 <div class="js-employee"> 4148 <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> 4149 </div> 4150 <div class="js-not-employee"> 4151 <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> 4152 </div> 4153 4154 <div class="row"> 4155 <div class="js-employee"> 4156 <div class="col-12 js-maegler-img aabenthus-image"> 4157 <div class="property-broker-image" style=""></div> 4158 4159 </div> 4160 </div> 4161 <div class="col-12"> 4162 <div class="bg-base"> 4163 4164 <div class="js-employee"> 4165 <h4 class="js-maegler-employee-name"></h4> 4166 <div class="icon-container"> 4167 <i class="fas fa-envelope"></i> <span class="js-maegler-mail"></span> 4168 </div> 4169 <div class="icon-container"> 4170 <i class="fas fa-phone"></i> <span class="js-maegler-mobile"></span> 4171 </div> 4172 </div> 4173 4174 4175 <h4 class="js-maegler-name"></h4> 4176 <div class="icon-container"> 4177 <i class="fas fa-map-marker-alt"></i> <span class="js-maegler-address"></span> 4178 </div> 4179 <div class="icon-container"> 4180 <i class="fas fa-phone"></i> <span class="js-maegler-phone"></span> 4181 4182 </div> 4183 <a class="btn btn-border" onclick="panelKontaktmaeglerGuldkoeber()">KONTAKT MÆGLER</a> 4184 </div> 4185 </div> 4186 </div> 4187 </div> 4188 </div> 4189 4190 <!-- KONTAKT GULDKØBER --> 4191 <div id="panel-kontakt-guldkoeber" class="panel panel-form"> 4192 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 4193 <b></b> 4194 </button> 4195 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2> 4196 <form id="form-kontaktmaegler" method="POST" action="/InboxHandler"> 4197 <div class="form-group"> 4198 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 4199 <input class="form-control" type="text" name="navn" placeholder='@Translate("form-navn", "Navn")' value='@UserContext.Current.User?.Name' required /> 4200 </div> 4201 <div class="form-group"> 4202 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 4203 <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 /> 4204 </div> 4205 <div class="form-group row mb-4"> 4206 <div class="col-6"> 4207 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 4208 <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 /> 4209 </div> 4210 <div class="col-6"> 4211 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 4212 <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' /> 4213 </div> 4214 </div> 4215 <div class="form-group row"> 4216 <div class="col-4"> 4217 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 4218 <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 /> 4219 <input type="hidden" class="js-postnummer-validation" /> 4220 </div> 4221 <div class="col-8"> 4222 <label><strong>@Translate("form-city", "By")*</strong></label> 4223 <input class="form-control js-city" type="text" readonly /> 4224 </div> 4225 </div> 4226 4227 <div class="form-group overflow-unset"> 4228 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 4229 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 4230 <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> 4231 </div> 4232 <div class="form-group"> 4233 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 4234 </div> 4235 <div class="form-group"> 4236 <div class="checkbox"> 4237 <label> 4238 <input type="checkbox" name="kontaktmigok" required /> 4239 4240 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 4241 4242 </label> 4243 </div> 4244 </div> 4245 <div class="form-group"> 4246 <div class="row"> 4247 <div class="col-12"> 4248 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button> 4249 </div> 4250 </div> 4251 </div> 4252 <div class="form-group form-group-terms"> 4253 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 4254 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 4255 </div> 4256 <input type="hidden" name="fn" value="gk" /> 4257 <input type="hidden" name="origin" value="" /> 4258 <input type="hidden" name="brugerId" value="@userID" /> 4259 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 4260 <input type="hidden" name="butikId" value="@butikId" /> 4261 <input type="hidden" name="ejendomstype" value="" /> 4262 <input type="hidden" name="salgspris" value="" /> 4263 <input type="hidden" name="modtager" value="" /> 4264 <input type="hidden" name="employee" value="" /> 4265 </form> 4266 <div id="tak-kontakt-maegler-guldkoeber" style="display:none;"> 4267 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 4268 <p>@Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")</p> 4269 <div class="row"> 4270 <div class="col-6"> 4271 <img src="" class="img-fluid js-maegler-img" /> 4272 </div> 4273 <div class="col-6"> 4274 <p class="js-maegler-name"></p> 4275 <p class="js-maegler-address"></p> 4276 <p class="js-maegler-phone"></p> 4277 <p class="js-maegler-mail"></p> 4278 </div> 4279 </div> 4280 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 4281 </div> 4282 </div> 4283 4284 <!-- BESTIL SALGSVURDERING --> 4285 <div id="panel-salgsvurdering" class="panel panel-form"> 4286 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 4287 <b></b> 4288 </button> 4289 4290 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler"> 4291 <h2 class="js-buyer-advisor-header">@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2> 4292 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p> 4293 <div class="form-group"> 4294 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 4295 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required /> 4296 </div> 4297 <div class="form-group"> 4298 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 4299 <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 /> 4300 </div> 4301 <div class="form-group row mb-4"> 4302 <div class="col-6"> 4303 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 4304 <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 /> 4305 </div> 4306 <div class="col-6"> 4307 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 4308 <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' /> 4309 </div> 4310 4311 </div> 4312 4313 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 4314 <div class="form-group row"> 4315 <div class="col-4"> 4316 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 4317 <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 /> 4318 <input type="hidden" class="js-postnummer-validation" /> 4319 </div> 4320 <div class="col-8"> 4321 <label><strong>@Translate("form-city", "By")*</strong></label> 4322 <input class="form-control js-city" type="text" readonly /> 4323 </div> 4324 </div> 4325 <div class="form-group overflow-unset"> 4326 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 4327 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 4328 <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> 4329 </div> 4330 4331 <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"> 4332 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 4333 </button> 4334 <div class="collapse" id="salgsvurdering-collapse"> 4335 <div class="form-group"> 4336 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 4337 </div> 4338 </div> 4339 4340 4341 <div class="salgsvurdering-precheck"> 4342 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3> 4343 <div class="col-12"> 4344 <div class="choose-broker row align-items-center active"> 4345 <div class="col-2"> 4346 <input class="js-broker-radio" type="radio" id="" name="choose-broker" value="" checked> 4347 <label class="js-broker-label" for=""></label><div class="check"> 4348 <div class="inside"> 4349 </div> 4350 </div> 4351 </div> 4352 <div class="col-4"> 4353 <img src="" class="img-fluid js-broker-image"> 4354 </div> 4355 <div class="col-6"> 4356 <span class="d-block"> 4357 <strong class="js-choose-broker-name"></strong> 4358 </span> 4359 <span class="js-choose-broker-address"></span> 4360 <input type="hidden" class="js-choose-broker-phone" value="" /> 4361 <input type="hidden" class="js-choose-broker-email" value="" /> 4362 </div> 4363 </div> 4364 </div> 4365 </div> 4366 <div class="salgsvurdering-broker"> 4367 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3> 4368 <div class="js-choose-broker col-12"> 4369 </div> 4370 4371 </div> 4372 4373 <div class="form-group mt-4"> 4374 <div class="checkbox"> 4375 <label> 4376 <input type="checkbox" name="kontaktmigok" required /> 4377 4378 <span class="consent-checkbox">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 4379 4380 </label> 4381 </div> 4382 </div> 4383 <div class="form-group"> 4384 <div class="row"> 4385 <div class="col-12"> 4386 <button type="submit" class="btn btn-green btn-block js-buyer-advisor-button">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button> 4387 </div> 4388 </div> 4389 </div> 4390 <div class="form-group form-group-terms"> 4391 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 4392 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 4393 </div> 4394 <input type="hidden" name="fn" value="bsv" /> 4395 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" /> 4396 <input type="hidden" name="brugerId" value="@userID" /> 4397 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 4398 <input type="hidden" id="boligvisning" name="boligvisning" value="" /> 4399 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="" /> 4400 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" /> 4401 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 4402 <input type="hidden" name="ejendomstype" value="" /> 4403 <input type="hidden" name="salgspris" value="" /> 4404 <input type="hidden" name="employee" value="" /> 4405 <input type="hidden" name="modtager" value="" /> 4406 <input class="js-value-check" type="hidden" name="valueCheck" value="" /> 4407 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" /> 4408 </form> 4409 <div id="tak-salgsvurdering" style="display:none;"> 4410 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 4411 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p> 4412 <div class="row"> 4413 <div class="col-6"> 4414 <img src="" class="img-fluid js-maegler-img" /> 4415 </div> 4416 <div class="col-6"> 4417 <p class="js-maegler-name"></p> 4418 <p class="js-maegler-address"></p> 4419 <p class="js-maegler-phone"></p> 4420 <p class="js-maegler-mail"></p> 4421 </div> 4422 </div> 4423 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 4424 </div> 4425 </div> 4426 4427 <!-- BESTIL SALGSVURDERING GULDKØBER --> 4428 <div id="panel-salgsvurdering-guldkoeber" class="panel panel-form"> 4429 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 4430 <b></b> 4431 </button> 4432 4433 <form id="bestil-salgsvurdering-guldkoeber" method="POST" action="/InboxHandler"> 4434 <h2>@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2> 4435 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p> 4436 <div class="form-group"> 4437 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 4438 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required /> 4439 </div> 4440 <div class="form-group"> 4441 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 4442 <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 /> 4443 </div> 4444 <div class="form-group row mb-4"> 4445 <div class="col-6"> 4446 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 4447 <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' /> 4448 </div> 4449 <div class="col-6"> 4450 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 4451 <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 /> 4452 </div> 4453 </div> 4454 4455 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 4456 4457 <div class="form-group row"> 4458 <div class="col-4"> 4459 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 4460 <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 /> 4461 <input type="hidden" class="js-postnummer-validation" /> 4462 </div> 4463 <div class="col-8"> 4464 <label><strong>@Translate("form-city", "By")*</strong></label> 4465 <input class="form-control js-city" type="text" readonly /> 4466 </div> 4467 </div> 4468 <div class="form-group overflow-unset"> 4469 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 4470 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 4471 <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> 4472 </div> 4473 4474 <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"> 4475 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 4476 </button> 4477 <div class="collapse" id="salgsvurdering-collapse"> 4478 <div class="form-group"> 4479 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 4480 </div> 4481 </div> 4482 4483 <div class="salgsvurdering-precheck"> 4484 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3> 4485 <div class="col-12"> 4486 <div class="choose-broker row align-items-center active"> 4487 <div class="col-2"> 4488 <input class="js-broker-radio" type="radio" id="" name="choose-broker-gk" value="" checked> 4489 <label class="js-broker-label" for=""></label><div class="check"> 4490 <div class="inside"> 4491 </div> 4492 </div> 4493 </div> 4494 <div class="col-4"> 4495 <img src="" class="img-fluid js-broker-image"> 4496 </div> 4497 <div class="col-6"> 4498 <span class="d-block"> 4499 <strong class="js-choose-broker-name"></strong> 4500 </span> 4501 <span class="js-choose-broker-address"></span> 4502 <input type="hidden" class="js-choose-broker-phone" value="" /> 4503 <input type="hidden" class="js-choose-broker-email" value="" /> 4504 </div> 4505 </div> 4506 </div> 4507 </div> 4508 <div class="salgsvurdering-broker"> 4509 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3> 4510 <div class="js-choose-broker col-12"> 4511 </div> 4512 4513 </div> 4514 4515 4516 <div class="form-group"> 4517 <div class="row"> 4518 <div class="col-12"> 4519 <button type="submit" class="btn btn-green btn-block">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button> 4520 </div> 4521 </div> 4522 </div> 4523 <div class="form-group"> 4524 <div class="checkbox"> 4525 <label> 4526 <input type="checkbox" name="kontaktmigok" required /> 4527 4528 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 4529 4530 </label> 4531 </div> 4532 </div> 4533 <div class="form-group form-group-terms"> 4534 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 4535 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 4536 </div> 4537 <input type="hidden" name="fn" value="bsg" /> 4538 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" /> 4539 <input type="hidden" name="brugerId" value="@userID" /> 4540 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 4541 <input type="hidden" id="boligvisning-gk" name="boligvisning" value="" /> 4542 <input type="hidden" id="panel-salgsvurdering-gk-butikid" name="butikId" value="" /> 4543 <input type="hidden" id="panel-salgsvurdering-gk-sagsnr" name="sagsnr" value="" /> 4544 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 4545 <input type="hidden" name="ejendomstype" value="" /> 4546 <input type="hidden" name="salgspris" value="" /> 4547 <input type="hidden" name="employee" value="" /> 4548 <input type="hidden" name="modtager" value="" /> 4549 </form> 4550 <div id="tak-salgsvurdering" style="display:none;"> 4551 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 4552 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p> 4553 <div class="row"> 4554 <div class="col-6"> 4555 <img src="" class="img-fluid js-maegler-img" /> 4556 </div> 4557 <div class="col-6"> 4558 <p class="js-maegler-name"></p> 4559 <p class="js-maegler-address"></p> 4560 <p class="js-maegler-phone"></p> 4561 <p class="js-maegler-mail"></p> 4562 </div> 4563 </div> 4564 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 4565 </div> 4566 </div> 4567 4568 4569 <div class="overlay-wrapper"></div> 4570 <div class="dropdown-overlay"></div> 4571 <div class="loader-inner ball-pulse"></div> 4572 4573 @{ 4574 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js")); 4575 <script type="text/javascript" src='@(TemplateUrl)assets/webpack/js/3rdparty/viamapstrap.js?@(viamapstrapFileInfo.LastWriteTime.Ticks)' async></script> 4576 4577 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js")); 4578 <script type="text/javascript" src='@(TemplateUrl)assets/dist/bundle.app.min.js?@(bundleFileInfo.LastWriteTime.Ticks)' async></script> 4579 } 4580 4581 @RenderSnippet("JavaScriptBottom") 4582 4583 @if (Context.Current.Request.QueryString["ShowLogin"] == "true") 4584 { 4585 <input class="js-showLogin" value="true" /> 4586 } 4587 4588 @if (!string.IsNullOrEmpty(settings_ConduzeId)) 4589 { 4590 <script type="text/javascript" id="conduze-sdk" src="https://cdn.conduze.com/@settings_ConduzeId/tracking.js" async></script> 4591 } 4592 4593 @if (!string.IsNullOrEmpty(settings_Weply)) 4594 { 4595 <script src="https://app.weply.chat/widget/@settings_Weply" async></script> 4596 } 4597 4598 </body> 4599 </html> 4600 4601