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 1680: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 1681: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1683: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1685: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1772: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1773: 'ListViewModel.Options' is obsolete: 'Use the GetAllOptions extension method instead'
Line 1809: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1948: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1968: Argument 1: cannot convert from 'void' to 'object'
Line 5101: The variable 'placeholderImage' is assigned but its value is never used
Line 5745: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5771: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5773: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5775: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5777: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5790: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5792: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5794: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5796: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5799: 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_2d889dfe4dee492f922660143585766e : 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\r\n\r\n"); 114 WriteLiteral("\r\n"); 115 WriteLiteral("\r\n"); 116 WriteLiteral("\r\n"); 117 WriteLiteral("\r\n"); 118 WriteLiteral("\r\n"); 119 WriteLiteral("\r\n"); 120 WriteLiteral("\r\n"); 121 WriteLiteral("\r\n"); 122 WriteLiteral("\r\n"); 123 WriteLiteral("\r\n"); 124 WriteLiteral("\r\n"); 125 WriteLiteral("\r\n"); 126 WriteLiteral("\r\n"); 127 WriteLiteral("\r\n\r\n"); 128 WriteLiteral("\r\n"); 129 WriteLiteral("\r\n"); 130 WriteLiteral("\r\n"); 131 WriteLiteral("\r\n"); 132 WriteLiteral("\r\n"); 133 WriteLiteral("\r\n"); 134 WriteLiteral("\r\n"); 135 WriteLiteral("\r\n"); 136 WriteLiteral("\r\n"); 137 WriteLiteral("\r\n"); 138 WriteLiteral("\r\n"); 139 WriteLiteral("\r\n"); 140 WriteLiteral("\r\n"); 141 WriteLiteral("\r\n"); 142 WriteLiteral("\r\n"); 143 WriteLiteral("\r\n"); 144 WriteLiteral("\r\n"); 145 WriteLiteral("\r\n"); 146 WriteLiteral("\r\n"); 147 WriteLiteral("\r\n"); 148 WriteLiteral("\r\n"); 149 WriteLiteral("\r\n"); 150 WriteLiteral("\r\n"); 151 WriteLiteral("\r\n\r\n"); 152 WriteLiteral("\r\n"); 153 WriteLiteral("\r\n"); 154 WriteLiteral("\r\n\r\n"); 155 WriteLiteral("\r\n"); 156 WriteLiteral("\r\n"); 157 WriteLiteral("\r\n"); 158 WriteLiteral("\r\n\r\n"); 159 WriteLiteral("\r\n"); 160 WriteLiteral("\r\n"); 161 WriteLiteral("\r\n"); 162 WriteLiteral("\r\n"); 163 164 Context.Current.Response.AddHeader("access-control-allow-origin", "*"); 165 166 string bodyClass = ""; 167 string template = "real"; 168 string TemplateUrl = "/Files/Templates/Designs/rm/"; 169 string MetaTitle = Model.Title; 170 string MetaDescription = Model.Description; 171 string MetaKeywords = Model.Keywords; 172 string searchClass = ""; 173 174 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css")); 175 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}"; 176 177 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg"; 178 179 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2"); 180 181 // Indstillinger 182 var settings_Frontpage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : ""; 183 var settings_Boligside = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : ""; 184 var settings_Maeglersogning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : ""; 185 var settings_MinSide = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : ""; 186 var settings_Sibling_Site = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : ""; 187 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : ""; 188 var settings_Product_Group = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : ""; 189 var settings_Boligagent = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : ""; 190 var settings_Persondatapolitik = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : ""; 191 192 // API 193 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : ""; 194 var settings_BoligListFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : ""; 195 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : ""; 196 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : ""; 197 var settings_BoligCountFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : ""; 198 var settings_BoligMapFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : ""; 199 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"]; 200 201 // Forside 202 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : ""; 203 var settings_FrontpageVideo = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : ""; 204 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : ""; 205 206 // Tracking 207 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : ""; 208 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]))) 209 { 210 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]); 211 } 212 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : ""; 213 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : ""; 214 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : ""; 215 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]); 216 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]); 217 var settings_Google_Optimize_Id = Converter.ToString(SettingsItem["Google_Optimize_Id"]); 218 219 // Indstillinger for brugerfunktioner 220 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : ""; 221 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : ""; 222 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : ""; 223 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : ""; 224 225 int createUserParagraphId = 0; 226 int loginParagraphId = 0; 227 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId); 228 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId); 229 230 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv. 231 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv) 232 int searchPageId = GetPageSettingsPageId("Boligside"); 233 if (searchPageId == 0) 234 { 235 searchPageId = GetWebsiteSettingsPageId("Boligside"); 236 } 237 238 int boligsideId = GetPageSettingsPageId("Boligside"); 239 if (boligsideId == 0) 240 { 241 boligsideId = GetWebsiteSettingsPageId("Boligside"); 242 } 243 244 string productGroupFilter = String.Empty; 245 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null) 246 { 247 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString(); 248 } 249 250 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"])) 251 { 252 searchClass = "is-frontpage"; 253 } 254 255 bool isErhverv = false; 256 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null) 257 { 258 var s = Pageview.Page.PropertyItem["Erhverv"].ToString(); 259 Boolean.TryParse(s, out isErhverv); 260 } 261 262 bool isBrokerPage = false; 263 if (!string.IsNullOrEmpty(Model.Area.Item.GetString("M_glerGruppeId"))) 264 { 265 isBrokerPage = true; 266 bodyClass = ""; // Get rid of transparent header on brokerPage 267 } 268 269 string callTrackingId = Model.Item.GetString("CallTrackingId"); 270 271 RealEstate.User.Model.BrokerEmployee MyBroker = null; 272 try 273 { 274 var MyB = new RealEstate.User.MyBroker(); 275 MyBroker = MyB.GetMyBroker(); 276 } 277 catch 278 { 279 // Ignore 280 } 281 282 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : ""); 283 string querySearchNameAttr = "search"; 284 285 // Overwrite search with zipcodeinterval if set 286 if (Context.Current.Request.QueryString["zipcodeinterval"] != null) 287 { 288 querySearch = Context.Current.Request.QueryString["zipcodeinterval"]; 289 querySearchNameAttr = "zipcodeinterval"; 290 } 291 292 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : ""); 293 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : ""); 294 295 Dynamicweb.Security.UserManagement.User user = null; 296 int userID = 0; 297 string userName = ""; 298 string userEmail = ""; 299 string userPhone = ""; 300 string userZip = ""; 301 string userAddress = ""; 302 303 if (Dynamicweb.Security.UserManagement.UserContext.Current.IsLoggedOn) 304 { 305 user = Dynamicweb.Security.UserManagement.UserContext.Current.User; 306 userName = user.Name; 307 userEmail = user.Email; 308 userPhone = user.Phone; 309 userZip = user.Zip; 310 userAddress = user.Address; 311 userID = user.ID; 312 } 313 314 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode"); 315 string forgotPwTemplate = ""; 316 string forgotPwSender = ""; 317 string markerColor = ""; 318 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png"; 319 320 // Important - e-mail templates for forgotPw must be placed in "UserManagement/Login" folder 321 forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml"; 322 forgotPwSender = "noreply@mailreal.dk"; 323 markerColor = "#213960"; 324 325 var butikId = string.Empty; 326 string bEmail = string.Empty; 327 if (MyBroker != null && MyBroker.Broker != null) 328 { 329 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 330 bEmail = MyBroker.Broker.Item().GetString("Email"); 331 } 332 333 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment")); 334 335 var termsMail = "info@realmaeglerne.dk"; 336 WriteLiteral("\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta charset=\"utf-8\">\r\n <title>"); 337 Write(MetaTitle); 338 WriteLiteral("</title>\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1\">\r\n <meta name=\"description\""); 339 BeginWriteAttribute("content", " content=\"", 116098, "\"", 116124, 1); 340 WriteAttributeValue("", 116108, MetaDescription, 116108, 16, false); 341 EndWriteAttribute(); 342 WriteLiteral(">\r\n <meta name=\"keywords\""); 343 BeginWriteAttribute("content", " content=\"", 116153, "\"", 116176, 1); 344 WriteAttributeValue("", 116163, MetaKeywords, 116163, 13, false); 345 EndWriteAttribute(); 346 WriteLiteral(">\r\n <meta name=\"format-detection\" content=\"telephone=no\">\r\n <meta http-equiv=\"Expires\" content=\"60\">\r\n <meta name=\"robots\""); 347 BeginWriteAttribute("content", " content=\"", 116308, "\"", 116414, 3); 348 WriteAttributeValue("", 116318, Pageview.Area.Noindex ? "noindex" : "index", 116318, 46, false); 349 WriteAttributeValue("", 116364, ",", 116364, 1, true); 350 WriteAttributeValue("", 116365, Pageview.Area.Nofollow ? "nofollow" : "follow", 116365, 49, false); 351 EndWriteAttribute(); 352 WriteLiteral(">\r\n\r\n"); 353 WriteLiteral("\r\n "); 354 Write(RenderSnippet("OpenGraphTags")); 355 WriteLiteral("\r\n"); 356 if (!string.IsNullOrEmpty(settings_Google_Optimize_Id)) 357 { 358 WriteLiteral(" <!-- Google optimize script-->\r\n <script"); 359 BeginWriteAttribute("src", " src=\"", 116606, "\"", 116686, 2); 360 WriteAttributeValue("", 116612, "https://www.googleoptimize.com/optimize.js?id=", 116612, 46, true); 361 WriteAttributeValue("", 116658, settings_Google_Optimize_Id, 116658, 28, false); 362 EndWriteAttribute(); 363 WriteLiteral("></script>\r\n"); 364 } 365 WriteLiteral(@" <!-- TrustBox script --> 366 <script type=""text/javascript"" src=""//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js"" async></script> 367 <!-- End TrustBox script --> 368 369 <script type=""application/ld+json""> 370 { 371 ""context"": ""https://schema.org/"", 372 """); 373 WriteLiteral(@"@type"": ""WebSite"", 374 ""name"": ""RealMæglerne"", 375 ""url"": ""https://www.realmaeglerne.dk/"", 376 ""potentialAction"": { 377 ""type"": ""SearchAction"", 378 ""target"": ""https://www.realmaeglerne.dk/find-maegler?q={search_term_string}"", 379 ""query-input"": ""required name=search_term_string"" 380 } 381 } 382 </script> 383 384 <script type=""application/ld+json""> 385 { 386 ""context"": ""https://schema.org"", 387 """); 388 WriteLiteral(@"@type"": ""Corporation"", 389 ""name"": ""RealMæglerne"", 390 ""alternateName"": ""R&B Mægler A/S"", 391 ""url"": ""https://www.realmaeglerne.dk"", 392 ""logo"": ""https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png"", 393 ""contactPoint"": { 394 ""type"": ""ContactPoint"", 395 ""telephone"": ""+4570237153"", 396 ""contactType"": ""sales"", 397 ""areaServed"": ""DK"", 398 ""availableLanguage"": ""Danish"" 399 }, 400 ""sameAs"": [ 401 ""https://www.facebook.com/realmaeglerne/"", 402 ""https://www.linkedin.com/company/realmæglerne/"", 403 ""https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g"", 404 ""https://www.realmaeglerne.dk/"" 405 ] 406 } 407 </script> 408 "); 409 Write(RenderSnippet("StructuredData")); 410 WriteLiteral("\r\n"); 411 WriteLiteral("\r\n"); 412 WriteLiteral(" <link rel=\"stylesheet\""); 413 BeginWriteAttribute("href", " href=\"", 118308, "\"", 118359, 2); 414 WriteAttributeValue("", 118315, TemplateUrl, 118315, 14, false); 415 WriteAttributeValue("", 118329, "assets/fontawesome/css/all.css", 118329, 30, true); 416 EndWriteAttribute(); 417 WriteLiteral(" async />\r\n <link rel=\"stylesheet\""); 418 BeginWriteAttribute("href", " href=\"", 118401, "\"", 118416, 1); 419 WriteAttributeValue("", 118408, mainCSS, 118408, 8, false); 420 EndWriteAttribute(); 421 WriteLiteral(" async />\r\n"); 422 423 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"])) 424 { 425 var cssErhvervFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/erhverv.min.css")); 426 string erhvervCSS = TemplateUrl + $"assets/dist/css/erhverv.min.css?{cssErhvervFileInfo.LastWriteTime.Ticks}"; 427 WriteLiteral(" <link rel=\"stylesheet\""); 428 BeginWriteAttribute("href", " href=\"", 118820, "\"", 118838, 1); 429 WriteAttributeValue("", 118827, erhvervCSS, 118827, 11, false); 430 EndWriteAttribute(); 431 WriteLiteral(" async>\r\n"); 432 } 433 WriteLiteral("\r\n\r\n <link rel=\"icon\" type=\"image/ico\""); 434 BeginWriteAttribute("href", " href=\"", 118907, "\"", 118971, 2); 435 WriteAttributeValue("", 118914, TemplateUrl, 118914, 14, false); 436 WriteAttributeValue("", 118928, "assets/images/favicons/favicon-real.ico?v=1", 118928, 43, true); 437 EndWriteAttribute(); 438 WriteLiteral(">\r\n <link rel=\"icon\" type=\"image/png\""); 439 BeginWriteAttribute("href", " href=\"", 119012, "\"", 119078, 2); 440 WriteAttributeValue("", 119019, TemplateUrl, 119019, 14, false); 441 WriteAttributeValue("", 119033, "assets/images/favicons/favicon-real-16x16.png", 119033, 45, true); 442 EndWriteAttribute(); 443 WriteLiteral(" sizes=\"16x16\">\r\n <link rel=\"icon\" type=\"image/png\""); 444 BeginWriteAttribute("href", " href=\"", 119133, "\"", 119199, 2); 445 WriteAttributeValue("", 119140, TemplateUrl, 119140, 14, false); 446 WriteAttributeValue("", 119154, "assets/images/favicons/favicon-real-32x32.png", 119154, 45, true); 447 EndWriteAttribute(); 448 WriteLiteral(" sizes=\"32x32\">\r\n <link rel=\"icon\" type=\"image/png\""); 449 BeginWriteAttribute("href", " href=\"", 119254, "\"", 119320, 2); 450 WriteAttributeValue("", 119261, TemplateUrl, 119261, 14, false); 451 WriteAttributeValue("", 119275, "assets/images/favicons/favicon-real-96x96.png", 119275, 45, true); 452 EndWriteAttribute(); 453 WriteLiteral(" sizes=\"96x96\">\r\n <meta name=\"google-site-verification\" content=\"hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg\" />\r\n\r\n"); 454 if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString())) 455 { 456 WriteLiteral(@" <script> 457 window.dataLayer = window.dataLayer || []; // must be placed above GTM script 458 </script> 459 <!-- Google Tag Manager --> 460 <script> 461 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 462 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 463 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 464 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 465 })(window,document,'script','dataLayer','"); 466 Write(settings_Google_Tag_Manager_ID); 467 WriteLiteral("\');</script>\r\n <!-- End Google Tag Manager -->\r\n"); 468 } 469 WriteLiteral("\r\n"); 470 if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId)) 471 { 472 WriteLiteral(" <script type=\"text/javascript\""); 473 BeginWriteAttribute("src", " src=\"", 120302, "\"", 120374, 2); 474 WriteAttributeValue("", 120308, "https://call.call-tracking.dk/getJavascript?custid=", 120308, 51, true); 475 WriteAttributeValue("", 120359, callTrackingId, 120359, 15, false); 476 EndWriteAttribute(); 477 WriteLiteral("></script>\r\n"); 478 } 479 WriteLiteral("\r\n"); 480 if (!String.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString())) 481 { 482 WriteLiteral(@" <!-- Begin Leadhub Pixel Code --> 483 <script> 484 (function(w,d,x,n,u,t,f,s,o){ 485 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){ 486 (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) 487 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '"); 488 Write(settings_Leadhub_Pixel_ID); 489 WriteLiteral("\');\r\n lhi(\'pageview\');\r\n </script>\r\n <!-- End Leadhub Pixel Code -->\r\n"); 490 } 491 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 + \""); 492 Write(settings_BoligCountFeed); 493 WriteLiteral("\";\r\n RMAPI.BoligListFeed = ApiPreFix + \""); 494 Write(settings_BoligListFeed); 495 WriteLiteral("\" + \"&refpageid="); 496 Write(Pageview.Page.ID); 497 WriteLiteral("\";\r\n RMAPI.BoligListFeedErhverv = \""); 498 Write(settings_BoligListFeedErhverv); 499 WriteLiteral("\";\r\n RMAPI.BoligListFeedMaegler = ApiPreFix + \""); 500 Write(settings_BoligListFeedMaegler); 501 WriteLiteral("\" + \"&refpageid="); 502 Write(Pageview.Page.ID); 503 WriteLiteral("\";\r\n RMAPI.BoligSearchFeed = ApiPreFix + \""); 504 Write(settings_BoligSearchFeed); 505 WriteLiteral("\";\r\n RMAPI.BoligMapFeed = ApiPreFix + \""); 506 Write(settings_BoligMapFeed); 507 WriteLiteral("\";\r\n RMAPI.Boligagent = \""); 508 Write(settings_Boligagent); 509 WriteLiteral("\";\r\n RMAPI.IsErhverv = "); 510 Write(isErhverv.ToString().ToLower()); 511 WriteLiteral(";\r\n RMAPI.ProductGroupFilter = \""); 512 Write(productGroupFilter); 513 WriteLiteral("\";\r\n RMAPI.ButikId = \""); 514 Write(butikId); 515 WriteLiteral("\";\r\n RMAPI.Boligvisning = false;\r\n RMAPI.RefPageId = \""); 516 Write(Pageview.Page.ID); 517 WriteLiteral("\";\r\n RMAPI.Template = \""); 518 Write(template); 519 WriteLiteral("\";\r\n RMAPI.SliderSettings = "); 520 Write(JsonConvert.SerializeObject(Settings.Site)); 521 WriteLiteral(";\r\n RMAPI.AdvisorSearchFeed = \""); 522 Write(settings_AdvisorSearchFeed); 523 WriteLiteral("\";\r\n RMAPI.LoadingIcon = \""); 524 Write(loadingIcon); 525 WriteLiteral("\";\r\n RMAPI.MarkerColor = \""); 526 Write(markerColor); 527 WriteLiteral("\";\r\n RMAPI.mapMarkerUrl = \""); 528 Write(mapMarkerUrl); 529 WriteLiteral("\";\r\n RMAPI.settings_ForgotPwPage = \""); 530 Write(settings_ForgotPwPage); 531 WriteLiteral("\";\r\n </script>\r\n\r\n"); 532 if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString())) 533 { 534 WriteLiteral(@" <!-- Facebook Pixel Code --> 535 <script> 536 !function (f, b, e, v, n, t, s) { 537 if (f.fbq) return; n = f.fbq = function () { 538 n.callMethod ? 539 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 540 }; 541 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; 542 n.queue = []; t = b.createElement(e); t.async = !0; 543 t.src = v; s = b.getElementsByTagName(e)[0]; 544 s.parentNode.insertBefore(t, s) 545 }(window, document, 'script', 546 'https://connect.facebook.net/en_US/fbevents.js'); 547 fbq('init', '"); 548 Write(settings_Facebook_App_ID); 549 WriteLiteral("\');\r\n fbq(\'track\', \'PageView\');\r\n </script>\r\n <noscript>\r\n <img height=\"1\" width=\"1\""); 550 BeginWriteAttribute("src", " src=\"", 123277, "\"", 123362, 3); 551 WriteAttributeValue("", 123283, "https://www.facebook.com/tr?id=", 123283, 31, true); 552 WriteAttributeValue("", 123314, settings_Facebook_App_ID, 123314, 25, false); 553 WriteAttributeValue("", 123339, "&ev=PageView&noscript=1", 123339, 23, true); 554 EndWriteAttribute(); 555 WriteLiteral(" />\r\n </noscript>\r\n <!-- End Facebook Pixel Code -->\r\n"); 556 } 557 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"); 558 BeginWriteAttribute("class", " class=\"", 123638, "\"", 123665, 2); 559 WriteAttributeValue("", 123646, template, 123646, 9, false); 560 WriteAttributeValue("", 123655, bodyClass, 123655, 10, false); 561 EndWriteAttribute(); 562 WriteLiteral(" data-spforgotpwtemplate=\""); 563 Write(forgotPwTemplate); 564 WriteLiteral("\" data-spforgotpwsender=\""); 565 Write(forgotPwSender); 566 WriteLiteral("\" data-spforgotpwsubject=\""); 567 Write(forgotPwSubject); 568 WriteLiteral("\" data-spsalesassesmentid=\""); 569 Write(salesAssessmentPageId); 570 WriteLiteral("\">\r\n"); 571 572 string logoUrl = TemplateUrl + (!Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg"); 573 WriteLiteral("\r\n"); 574 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) && GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID) 575 { 576 WriteLiteral(" <div class=\"top-search\">\r\n <div class=\"header logo\">\r\n <div class=\"logo\">\r\n <a href=\"/erhverv\">\r\n <img"); 577 BeginWriteAttribute("src", " src=\"", 124337, "\"", 124351, 1); 578 WriteAttributeValue("", 124343, logoUrl, 124343, 8, false); 579 EndWriteAttribute(); 580 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"); 581 582 583 var settings_BoligListErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : ""; 584 WriteLiteral(" <input type=\"hidden\" name=\"ID\""); 585 BeginWriteAttribute("value", " value=\'", 124918, "\'", 124952, 1); 586 WriteAttributeValue("", 124926, settings_BoligListErhverv, 124926, 26, false); 587 EndWriteAttribute(); 588 WriteLiteral(" id=\"searchPageId-top\" disabled=\"disabled\" />\r\n\r\n"); 589 if (Context.Current.Request["type"] == "egetforbrug") 590 { 591 WriteLiteral(" <input name=\"type\" type=\"hidden\" value=\"egetforbrug\" />\r\n <input name=\"investeringsejendom\" type=\"hidden\" value=\"0\" />\r\n"); 592 } 593 WriteLiteral(@" <div class=""row form-wrapper no-gutters""> 594 <div class=""col-xs-12 col-md-4 col-lg-5 col-searchbar""> 595 <div class=""searchbar float-label-container text-left""> 596 <label class=""float-label"">"); 597 Write(Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer")); 598 WriteLiteral("</label>\r\n <input type=\"text\""); 599 BeginWriteAttribute("name", " name=\"", 125746, "\"", 125773, 1); 600 WriteAttributeValue("", 125753, querySearchNameAttr, 125753, 20, false); 601 EndWriteAttribute(); 602 WriteLiteral(" id=\"searchfield-top\" class=\"search-input js-float-label js-getdata\" tabindex=\"1\""); 603 BeginWriteAttribute("value", " value=\"", 125855, "\"", 125933, 1); 604 WriteAttributeValue("", 125863, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 125863, 70, false); 605 EndWriteAttribute(); 606 WriteLiteral(@" /> 607 </div> 608 </div> 609 <div class=""col-xs-12 col-md-5""> 610 <div class=""row no-gutters""> 611 <div class=""col-xs-12 col-md-6 input-col""> 612 <div class=""dropdown w-overlay float-label-container""> 613 <label class=""float-label"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">"); 614 Write(Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype")); 615 WriteLiteral(@"</label> 616 <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> 617 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 618 <ul class=""bolig-dropdown list-unstyled""> 619 "); 620 621 RenderBoligTypeErhverv(); 622 WriteLiteral(@" </ul> 623 <span class=""border-fat""></span> 624 <div class=""d-none d-md-block""> 625 <button class=""btn btn-primary js-close-dropdown"">"); 626 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 627 WriteLiteral(@"</button> 628 </div> 629 <div class=""d-flex row d-md-none""> 630 <div class=""col-6""> 631 <button class=""btn btn-danger js-remove-filter"">"); 632 Write(Translate("Smartpage:Search.Annuller", "Annuller")); 633 WriteLiteral("</button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 634 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 635 WriteLiteral(@"</button> 636 </div> 637 </div> 638 </div> 639 640 </div> 641 </div> 642 <div class=""col-xs-12 col-md-6 input-col""> 643 <div class=""btn-dropdown p-3 border-top-bottom-right""> 644 <ul class=""two-column list-unstyled""> 645 <li> 646 <label class=""checkbox-container""> 647 "); 648 Write(Translate("Smartpage:Search.Erhverv.Leje", "Leje")); 649 WriteLiteral(@" 650 <input type=""checkbox"" name=""propertytype"" value=""leje"" class=""js-input-check"" /> 651 <span class=""checkmark""></span> 652 </label> 653 </li> 654 <li> 655 <label class=""checkbox-container""> 656 "); 657 Write(Translate("Smartpage:Search.Erhverv.Køb", "Køb")); 658 WriteLiteral(@" 659 <input type=""checkbox"" name=""propertytype"" value=""kob"" class=""js-input-check"" /> 660 <span class=""checkmark""></span> 661 </label> 662 </li> 663 </ul> 664 </div> 665 666 </div> 667 </div> 668 </div> 669 <div class=""col-xs-12 col-md-3 col-lg-2 d-none d-md-block""> 670 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 671 Write(Translate("Smartpage:Search.Søg", "Søg")); 672 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n"); 673 } 674 WriteLiteral("\r\n"); 675 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"])) 676 { 677 WriteLiteral(" <div class=\"header shortcuts\">\r\n <div class=\"header-shortcuts float-right\">\r\n"); 678 if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID) 679 { 680 WriteLiteral(" <a"); 681 BeginWriteAttribute("href", " href=\'", 130636, "\'", 130643, 0); 682 EndWriteAttribute(); 683 BeginWriteAttribute("class", " class=\"", 130644, "\"", 130760, 9); 684 WriteAttributeValue("", 130652, "search-menu", 130652, 11, true); 685 WriteAttributeValue(" ", 130663, "d-none", 130664, 7, true); 686 WriteAttributeValue(" ", 130670, "d-xl-flex", 130671, 10, true); 687 WriteAttributeValue(" ", 130680, "align-items-center", 130681, 19, true); 688 WriteAttributeValue(" ", 130699, "float-left", 130700, 11, true); 689 WriteAttributeValue(" ", 130710, "border-right", 130711, 13, true); 690 WriteAttributeValue(" ", 130723, "js-mainsearch", 130724, 14, true); 691 WriteAttributeValue(" ", 130737, "topsearch", 130738, 10, true); 692 WriteAttributeValue(" ", 130747, searchClass, 130748, 12, false); 693 EndWriteAttribute(); 694 WriteLiteral(">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i><span class=\"search-menu-text hidden d-md-block\"> "); 695 Write(Translate("Smartpage:Search.Søg", "Søg")); 696 WriteLiteral("</span>\r\n </a>\r\n"); 697 } 698 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"); 699 } 700 else 701 { 702 int mainSiteAreaId = Custom.Navigation.Config.GetMainSiteAreaId(); 703 704 var myAccountPage = Dynamicweb.Content.Services.Pages.GetPageByNavigationTag(mainSiteAreaId, "MyAccount"); 705 706 WriteLiteral(" <div class=\"header__container container\">\r\n <div class=\"header__logo\">\r\n <a href=\"/\""); 707 BeginWriteAttribute("title", " title=\"", 131562, "\"", 131570, 0); 708 EndWriteAttribute(); 709 WriteLiteral(">\r\n <img"); 710 BeginWriteAttribute("src", " src=\"", 131598, "\"", 131614, 1); 711 WriteAttributeValue("", 131604, logoUrl, 131604, 10, false); 712 EndWriteAttribute(); 713 BeginWriteAttribute("alt", " alt=\"", 131615, "\"", 131621, 0); 714 EndWriteAttribute(); 715 WriteLiteral(" />\r\n </a>\r\n </div>\r\n <div class=\"header__title\">\r\n <span>"); 716 Write(Translate("Custom:Header.Title", "Realmæglerne")); 717 WriteLiteral("</span> \r\n </div>\r\n"); 718 if (myAccountPage is object) 719 { 720 WriteLiteral(@" <div class=""header__navigation d-none d-md-flex""> 721 <div class=""header__navigation""> 722 <div class=""header__Link""> 723 <ul> 724 <li class=""d-flex align-items-center""> 725 <svg xmlns=""http://www.w3.org/2000/svg"" width=""20"" height=""20"" viewBox=""0 0 20 20"" fill=""none""> 726 <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"" /> 727 "); 728 WriteLiteral(" </svg>\r\n <a class=\"ml-2\""); 729 BeginWriteAttribute("href", " href=\"", 132992, "\"", 133033, 2); 730 WriteAttributeValue("", 132999, "/Default.aspx?ID=", 132999, 17, true); 731 WriteAttributeValue("", 133016, myAccountPage.ID, 133016, 17, false); 732 EndWriteAttribute(); 733 WriteLiteral(" target=\"_blank\">"); 734 Write(Translate("Mit RealMæglerne")); 735 WriteLiteral("</a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n"); 736 737 } 738 WriteLiteral(" <div class=\"header__search flex-column flex-md-row js-mainsearch\">\r\n "); 739 Write(Translate("Søg bolig")); 740 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 "); 741 Write(Translate("Menu")); 742 WriteLiteral("\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n"); 743 } 744 WriteLiteral("\r\n <div class=\"search-modal\">\r\n\r\n"); 745 if (Converter.ToString(Pageview.Area.Item["Type"]) == "real") 746 { 747 WriteLiteral(@" <div class=""main-search-form""> 748 <i class=""fal fa-times float-right fa-2x js-close-search close-search""></i> 749 <div class=""row mb-3 align-items-center""> 750 <div class=""col-xs-12 col-md-3 border-right""> 751 <h3>"); 752 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 753 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\">"); 754 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 755 WriteLiteral(@"<span class=""loader js-loader""></span></span> 756 757 </div> 758 </div> 759 760 <form id=""main-search"" class=""searchbar-wrapper"" action=""/Default.aspx"" method=""GET""> 761 <input type=""hidden"" name=""ID"""); 762 BeginWriteAttribute("value", " value=\'", 134724, "\'", 134745, 1); 763 WriteAttributeValue("", 134732, searchPageId, 134732, 13, false); 764 EndWriteAttribute(); 765 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" /> 766 <div class=""row form-wrapper no-gutters""> 767 768 <div class=""col-xs-12 col-md-5 col-searchbar""> 769 <div class=""searchbar""> 770 <input type=""text"""); 771 BeginWriteAttribute("name", " name=\"", 135029, "\"", 135056, 1); 772 WriteAttributeValue("", 135036, querySearchNameAttr, 135036, 20, false); 773 EndWriteAttribute(); 774 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 775 BeginWriteAttribute("value", " value=\"", 135159, "\"", 135237, 1); 776 WriteAttributeValue("", 135167, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 135167, 70, false); 777 EndWriteAttribute(); 778 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\""); 779 BeginWriteAttribute("value", " value=\"", 135331, "\"", 135414, 1); 780 WriteAttributeValue("", 135339, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 135339, 75, false); 781 EndWriteAttribute(); 782 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\""); 783 BeginWriteAttribute("value", " value=\"", 135504, "\"", 135585, 1); 784 WriteAttributeValue("", 135512, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 135512, 73, false); 785 EndWriteAttribute(); 786 WriteLiteral(@" /> 787 </div> 788 </div> 789 <div class=""col-xs-12 col-md-5""> 790 <div class=""row no-gutters""> 791 <div class=""col-xs-12 col-md-6 input-col""> 792 <div class=""dropdown""> 793 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 794 "); 795 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 796 WriteLiteral(@" 797 </button> 798 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 799 <ul class=""bolig-dropdown list-unstyled""> 800 "); 801 802 RenderBoligtypeCheckboxesDropdown(); 803 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 804 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 805 WriteLiteral(@"</button> 806 </div> 807 808 </div> 809 810 </div> 811 <div class=""col-xs-12 col-md-6 input-col""> 812 <div class=""dropdown""> 813 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 814 "); 815 Write(Translate("Smartpage:Search.Pris", "Pris")); 816 WriteLiteral(@" 817 </button> 818 <div class=""dropdown-menu box-shadow dropdown-price js-dropdown-price"" aria-labelledby=""Pris""> 819 <input name=""pricemin"" type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 820 BeginWriteAttribute("placeholder", " placeholder=\'", 137836, "\'", 137913, 1); 821 WriteAttributeValue("", 137850, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 137850, 63, false); 822 EndWriteAttribute(); 823 BeginWriteAttribute("value", " value=\'", 137914, "\'", 138050, 1); 824 WriteAttributeValue("", 137922, !string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemin"]) ? Context.Current.Request.QueryString["pricemin"] : "", 137922, 128, false); 825 EndWriteAttribute(); 826 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 827 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 828 WriteLiteral("</option>\r\n"); 829 for (var i = 0; i <= 10000000; i += 100000) 830 { 831 if (i == 10000000) 832 { 833 WriteLiteral(" <option"); 834 BeginWriteAttribute("value", " value=\"", 138687, "\"", 138697, 1); 835 WriteAttributeValue("", 138695, i, 138695, 2, false); 836 EndWriteAttribute(); 837 WriteLiteral(" data-value=\'"); 838 Write(Converter.ToInt32(i).ToString("N0")); 839 WriteLiteral("+\'>"); 840 Write(Convert.ToInt32(i).ToString("N0")); 841 WriteLiteral("+</option>\r\n"); 842 } 843 else 844 { 845 WriteLiteral(" <option"); 846 BeginWriteAttribute("value", " value=\"", 139027, "\"", 139037, 1); 847 WriteAttributeValue("", 139035, i, 139035, 2, false); 848 EndWriteAttribute(); 849 WriteLiteral(" data-value=\'"); 850 Write(Converter.ToInt32(i).ToString("N0")); 851 WriteLiteral("\'>"); 852 Write(Convert.ToInt32(i).ToString("N0")); 853 WriteLiteral("</option>\r\n"); 854 } 855 } 856 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\""); 857 BeginWriteAttribute("placeholder", " placeholder=\'", 139441, "\'", 139518, 1); 858 WriteAttributeValue("", 139455, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 139455, 63, false); 859 EndWriteAttribute(); 860 BeginWriteAttribute("value", " value=\'", 139519, "\'", 139655, 1); 861 WriteAttributeValue("", 139527, !string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemax"]) ? Context.Current.Request.QueryString["pricemax"] : "", 139527, 128, false); 862 EndWriteAttribute(); 863 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 864 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 865 WriteLiteral("</option>\r\n"); 866 for (var i = 0; i <= 10000000; i += 100000) 867 { 868 if (i == 10000000) 869 { 870 WriteLiteral(" <option"); 871 BeginWriteAttribute("value", " value=\"", 140286, "\"", 140296, 1); 872 WriteAttributeValue("", 140294, i, 140294, 2, false); 873 EndWriteAttribute(); 874 WriteLiteral(" data-value=\'"); 875 Write(Converter.ToInt32(i).ToString("N0")); 876 WriteLiteral("+\'>"); 877 Write(Convert.ToInt32(i).ToString("N0")); 878 WriteLiteral("+</option>\r\n"); 879 } 880 else 881 { 882 WriteLiteral(" <option"); 883 BeginWriteAttribute("value", " value=\"", 140626, "\"", 140636, 1); 884 WriteAttributeValue("", 140634, i, 140634, 2, false); 885 EndWriteAttribute(); 886 WriteLiteral(" data-value=\'"); 887 Write(Converter.ToInt32(i).ToString("N0")); 888 WriteLiteral("\'>"); 889 Write(Convert.ToInt32(i).ToString("N0")); 890 WriteLiteral("</option>\r\n"); 891 } 892 } 893 WriteLiteral(@" </select> 894 </div> 895 </div> 896 </div> 897 </div> 898 </div> 899 <div class=""col-xs-12 col-md-2 d-none d-md-block""> 900 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 901 Write(Translate("Smartpage:Search.Søg", "Søg")); 902 WriteLiteral(@"</button> 903 </div> 904 </div> 905 906 <div class=""row moresearch-btn no-gutters""> 907 <div class=""col-sm-12""> 908 <div class=""row align-items-center no-gutters""> 909 <div class=""col-12 col-md-4""> 910 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch""> 911 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open white"">"); 912 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 913 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> "); 914 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 915 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\">"); 916 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 917 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>"); 918 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 919 WriteLiteral(@"</b></h4> 920 <div class=""row align-items-end mb-30""> 921 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 922 <div class=""filter-container row""> 923 <label class=""d-block col-12"">"); 924 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 925 WriteLiteral(@"</label> 926 <div class=""col-6 pr-sm-0 pr-2""> 927 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 928 BeginWriteAttribute("placeholder", " placeholder=\'", 143398, "\'", 143471, 1); 929 WriteAttributeValue("", 143412, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 143412, 59, false); 930 EndWriteAttribute(); 931 BeginWriteAttribute("value", " value=\'", 143472, "\'", 143618, 1); 932 WriteAttributeValue("", 143480, !string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmin"]) ? Context.Current.Request.QueryString["boligarealmin"] : "", 143480, 138, false); 933 EndWriteAttribute(); 934 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 935 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 936 WriteLiteral("</option>\r\n"); 937 for (var i = 0; i <= 300; i += 10) 938 { 939 if (i == 300) 940 { 941 WriteLiteral(" <option>"); 942 Write(i); 943 WriteLiteral("+</option>\r\n"); 944 } 945 else 946 { 947 WriteLiteral(" <option>"); 948 Write(i); 949 WriteLiteral("</option>\r\n"); 950 } 951 } 952 WriteLiteral(@" </select> 953 954 </div> 955 <div class=""col-6 pl-sm-0 pl-2""> 956 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 957 BeginWriteAttribute("placeholder", " placeholder=\'", 145003, "\'", 145076, 1); 958 WriteAttributeValue("", 145017, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 145017, 59, false); 959 EndWriteAttribute(); 960 BeginWriteAttribute("value", " value=\'", 145077, "\'", 145223, 1); 961 WriteAttributeValue("", 145085, !string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmax"]) ? Context.Current.Request.QueryString["boligarealmax"] : "", 145085, 138, false); 962 EndWriteAttribute(); 963 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 964 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 965 WriteLiteral("</option>\r\n"); 966 for (var i = 0; i <= 300; i += 10) 967 { 968 if (i == 300) 969 { 970 WriteLiteral(" <option>"); 971 Write(i); 972 WriteLiteral("+</option>\r\n"); 973 } 974 else 975 { 976 WriteLiteral(" <option>"); 977 Write(i); 978 WriteLiteral("</option>\r\n"); 979 } 980 } 981 WriteLiteral(@" </select> 982 983 </div> 984 </div> 985 </div> 986 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 987 <div class=""filter-container row""> 988 <label class=""d-block col-12"">"); 989 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 990 WriteLiteral(@"</label> 991 <div class=""col-6 pr-sm-0 pr-2""> 992 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 993 BeginWriteAttribute("placeholder", " placeholder=\'", 147004, "\'", 147077, 1); 994 WriteAttributeValue("", 147018, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 147018, 59, false); 995 EndWriteAttribute(); 996 BeginWriteAttribute("value", " value=\'", 147078, "\'", 147225, 1); 997 WriteAttributeValue("", 147086, !string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmin"]) ? Context.Current.Request.QueryString["grundarealmin"] : "", 147086, 139, false); 998 EndWriteAttribute(); 999 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1000 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 1001 WriteLiteral("</option>\r\n"); 1002 for (var i = 0; i <= 10000; i += 100) 1003 { 1004 if (i == 10000) 1005 { 1006 WriteLiteral(" <option>"); 1007 Write(i); 1008 WriteLiteral("+</option>\r\n"); 1009 } 1010 else 1011 { 1012 WriteLiteral(" <option>"); 1013 Write(i); 1014 WriteLiteral("</option>\r\n"); 1015 } 1016 } 1017 WriteLiteral(@" </select> 1018 </div> 1019 <div class=""col-6 pl-sm-0 pl-2""> 1020 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 1021 BeginWriteAttribute("placeholder", " placeholder=\'", 148613, "\'", 148686, 1); 1022 WriteAttributeValue("", 148627, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 148627, 59, false); 1023 EndWriteAttribute(); 1024 BeginWriteAttribute("value", " value=\'", 148687, "\'", 148834, 1); 1025 WriteAttributeValue("", 148695, !string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmax"]) ? Context.Current.Request.QueryString["grundarealmax"] : "", 148695, 139, false); 1026 EndWriteAttribute(); 1027 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">"); 1028 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 1029 WriteLiteral("</option>\r\n"); 1030 for (var i = 0; i <= 10000; i += 100) 1031 { 1032 if (i == 10000) 1033 { 1034 WriteLiteral(" <option>"); 1035 Write(i); 1036 WriteLiteral("+</option>\r\n"); 1037 } 1038 else 1039 { 1040 WriteLiteral(" <option>"); 1041 Write(i); 1042 WriteLiteral("</option>\r\n"); 1043 } 1044 } 1045 WriteLiteral(@" </select> 1046 </div> 1047 </div> 1048 </div> 1049 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 1050 <div class=""filter-container row""> 1051 <label class=""d-block col-12"">Antal rum</label> 1052 <div class=""col-6 pr-sm-0 pr-2""> 1053 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count""> 1054 <option selected=""selected"" disabled=""disabled"">"); 1055 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 1056 WriteLiteral("</option>\r\n"); 1057 1058 RenderSelectValue("1", "1", "roomsmin"); 1059 RenderSelectValue("2", "2", "roomsmin"); 1060 RenderSelectValue("3", "3", "roomsmin"); 1061 RenderSelectValue("4", "4", "roomsmin"); 1062 RenderSelectValue("5+", "5", "roomsmin"); 1063 WriteLiteral(@" </select> 1064 </div> 1065 <div class=""col-6 pl-sm-0 pl-2""> 1066 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count""> 1067 <option selected=""selected"" disabled=""disabled"">"); 1068 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 1069 WriteLiteral("</option>\r\n"); 1070 1071 RenderSelectValue("1", "1", "roomsmax"); 1072 RenderSelectValue("2", "2", "roomsmax"); 1073 RenderSelectValue("3", "3", "roomsmax"); 1074 RenderSelectValue("4", "4", "roomsmax"); 1075 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax"); 1076 WriteLiteral(@" </select> 1077 </div> 1078 </div> 1079 </div> 1080 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 1081 <div class=""row""> 1082 <div class=""col-12 pr-2""> 1083 <div class=""filter-container""> 1084 <label class=""d-block"">Energimærke</label> 1085 <select name=""energylabel"" id=""energylabel"" class=""form-control reverse js-energylabel-select js-count""> 1086 <option selected=""selected"" disabled=""disabled"">"); 1087 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 1088 WriteLiteral(@"</option> 1089 <option value=""01"">G</option> 1090 <option value=""02"">F</option> 1091 <option value=""03"">E</option> 1092 <option value=""04"">D</option> 1093 <option value=""05"">C</option> 1094 <option value=""06"">B</option> 1095 <option value=""07"">A</option> 1096 <option value=""08"">A2010</option> 1097 <option value=""09"">A2015</option> 1098 <option value=""10"">A2020+</option> 1099 </select> 1100 </div> 1101 "); 1102 WriteLiteral(@" </div> 1103 </div> 1104 </div> 1105 <div class=""col-12 col-sm-6 col-lg-3 mt-3""> 1106 <h4"); 1107 BeginWriteAttribute("class", " class=\"", 154633, "\"", 154641, 0); 1108 EndWriteAttribute(); 1109 WriteLiteral("><b>"); 1110 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 1111 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 1112 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 1113 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\""); 1114 BeginWriteAttribute("placeholder", " placeholder=\'", 155203, "\'", 155278, 1); 1115 WriteAttributeValue("", 155217, Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"), 155217, 61, false); 1116 EndWriteAttribute(); 1117 BeginWriteAttribute("value", " value=\'", 155279, "\'", 155420, 1); 1118 WriteAttributeValue("", 155287, !string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymin"]) ? Context.Current.Request.QueryString["subsidymin"] : "", 155287, 133, false); 1119 EndWriteAttribute(); 1120 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">"); 1121 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 1122 WriteLiteral("</option>\r\n"); 1123 for (var i = 0; i <= 25000; i += 1250) 1124 { 1125 if (i == 25000) 1126 { 1127 WriteLiteral(" <option"); 1128 BeginWriteAttribute("value", " value=\"", 156064, "\"", 156093, 1); 1129 WriteAttributeValue("", 156072, Converter.ToInt32(i), 156072, 21, false); 1130 EndWriteAttribute(); 1131 WriteLiteral(">"); 1132 Write(Converter.ToInt32(i).ToString("N0")); 1133 WriteLiteral("+</option>\r\n"); 1134 } 1135 else 1136 { 1137 WriteLiteral(" <option"); 1138 BeginWriteAttribute("value", " value=\"", 156390, "\"", 156419, 1); 1139 WriteAttributeValue("", 156398, Converter.ToInt32(i), 156398, 21, false); 1140 EndWriteAttribute(); 1141 WriteLiteral(">"); 1142 Write(Converter.ToInt32(i).ToString("N0")); 1143 WriteLiteral("</option>\r\n"); 1144 } 1145 } 1146 WriteLiteral(@" </select> 1147 </div> 1148 <div class=""col-6 pl-sm-0 pl-2""> 1149 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count"""); 1150 BeginWriteAttribute("placeholder", " placeholder=\'", 156931, "\'", 157006, 1); 1151 WriteAttributeValue("", 156945, Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"), 156945, 61, false); 1152 EndWriteAttribute(); 1153 BeginWriteAttribute("value", " value=\'", 157007, "\'", 157148, 1); 1154 WriteAttributeValue("", 157015, !string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymax"]) ? Context.Current.Request.QueryString["subsidymax"] : "", 157015, 133, false); 1155 EndWriteAttribute(); 1156 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1157 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 1158 WriteLiteral("</option>\r\n"); 1159 for (var i = 0; i <= 25000; i += 1250) 1160 { 1161 if (i == 25000) 1162 { 1163 WriteLiteral(" <option"); 1164 BeginWriteAttribute("value", " value=\"", 157788, "\"", 157817, 1); 1165 WriteAttributeValue("", 157796, Converter.ToInt32(i), 157796, 21, false); 1166 EndWriteAttribute(); 1167 WriteLiteral(">"); 1168 Write(Convert.ToInt32(i).ToString("N0")); 1169 WriteLiteral("+</option>\r\n"); 1170 } 1171 else 1172 { 1173 WriteLiteral(" <option"); 1174 BeginWriteAttribute("value", " value=\"", 158112, "\"", 158141, 1); 1175 WriteAttributeValue("", 158120, Converter.ToInt32(i), 158120, 21, false); 1176 EndWriteAttribute(); 1177 WriteLiteral(">"); 1178 Write(Convert.ToInt32(i).ToString("N0")); 1179 WriteLiteral("</option>\r\n"); 1180 } 1181 } 1182 WriteLiteral(@" </select> 1183 </div> 1184 </div> 1185 </div> 1186 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0""> 1187 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1188 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 1189 WriteLiteral(@"</button> 1190 </div> 1191 </div> 1192 </div> 1193 </div> 1194 </div> 1195 <div class=""row d-block d-md-none form-wrapper no-gutters""> 1196 <div class=""col-xs-12 col-md-2""> 1197 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1198 Write(Translate("Smartpage:Search.Søg", "Søg")); 1199 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n"); 1200 } 1201 else 1202 { 1203 WriteLiteral(@" <div class=""main-search-form center""> 1204 <i class=""fal fa-times float-right fa-2x js-close-search""></i> 1205 <div class=""row mb-3 align-items-center""> 1206 <div class=""col-xs-12 col-md-5 border-right""> 1207 <h3>"); 1208 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 1209 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>"); 1210 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 1211 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\""); 1212 BeginWriteAttribute("value", " value=\'", 160255, "\'", 160276, 1); 1213 WriteAttributeValue("", 160263, searchPageId, 160263, 13, false); 1214 EndWriteAttribute(); 1215 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" /> 1216 <div class=""row form-wrapper no-gutters""> 1217 1218 <div class=""col-12 mb-10""> 1219 <div class=""searchbar""> 1220 <input type=""text"""); 1221 BeginWriteAttribute("name", " name=\"", 160540, "\"", 160567, 1); 1222 WriteAttributeValue("", 160547, querySearchNameAttr, 160547, 20, false); 1223 EndWriteAttribute(); 1224 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 1225 BeginWriteAttribute("value", " value=\'", 160670, "\'", 160690, 1); 1226 WriteAttributeValue("", 160678, querySearch, 160678, 12, false); 1227 EndWriteAttribute(); 1228 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\""); 1229 BeginWriteAttribute("value", " value=\'", 160784, "\'", 160809, 1); 1230 WriteAttributeValue("", 160792, queryZipCodeFrom, 160792, 17, false); 1231 EndWriteAttribute(); 1232 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\""); 1233 BeginWriteAttribute("value", " value=\'", 160899, "\'", 160922, 1); 1234 WriteAttributeValue("", 160907, queryZipCodeTo, 160907, 15, false); 1235 EndWriteAttribute(); 1236 WriteLiteral(@" /> 1237 </div> 1238 </div> 1239 <div class=""col-xs-12 col-md-8""> 1240 <div class=""row no-gutters""> 1241 <div class=""col-xs-12 col-md-6 input-col""> 1242 <div class=""dropdown""> 1243 <button class=""btn btn-dropdown dropdown-toggle reverse js-count"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 1244 "); 1245 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 1246 WriteLiteral(@" 1247 </button> 1248 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 1249 <ul class=""bolig-dropdown list-unstyled""> 1250 "); 1251 1252 RenderBoligtypeCheckboxesDropdown(); 1253 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 1254 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 1255 WriteLiteral(@"</button> 1256 </div> 1257 1258 </div> 1259 1260 </div> 1261 <div class=""col-xs-12 col-md-6 input-col""> 1262 <div class=""dropdown""> 1263 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 1264 "); 1265 Write(Translate("Smartpage:Search.Pris", "Pris")); 1266 WriteLiteral(@" 1267 </button> 1268 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris""> 1269 <input type=""text"" name=""pricemin"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 1270 BeginWriteAttribute("placeholder", " placeholder=\'", 163164, "\'", 163241, 1); 1271 WriteAttributeValue("", 163178, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 163178, 63, false); 1272 EndWriteAttribute(); 1273 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1274 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 1275 WriteLiteral("</option>\r\n"); 1276 for (var i = 0; i <= 10000000; i += 100000) 1277 { 1278 if (i == 10000000) 1279 { 1280 WriteLiteral(" <option"); 1281 BeginWriteAttribute("value", " value=\"", 163878, "\"", 163888, 1); 1282 WriteAttributeValue("", 163886, i, 163886, 2, false); 1283 EndWriteAttribute(); 1284 WriteLiteral(" data-value=\'"); 1285 Write(Converter.ToInt32(i).ToString("N0")); 1286 WriteLiteral("+\'>"); 1287 Write(Converter.ToInt32(i).ToString("N0")); 1288 WriteLiteral("+</option>\r\n"); 1289 } 1290 else 1291 { 1292 WriteLiteral(" <option"); 1293 BeginWriteAttribute("value", " value=\"", 164220, "\"", 164230, 1); 1294 WriteAttributeValue("", 164228, i, 164228, 2, false); 1295 EndWriteAttribute(); 1296 WriteLiteral(" data-value=\'"); 1297 Write(Converter.ToInt32(i).ToString("N0")); 1298 WriteLiteral("\'>"); 1299 Write(Converter.ToInt32(i).ToString("N0")); 1300 WriteLiteral("</option>\r\n"); 1301 } 1302 } 1303 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\""); 1304 BeginWriteAttribute("placeholder", " placeholder=\'", 164636, "\'", 164713, 1); 1305 WriteAttributeValue("", 164650, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 164650, 63, false); 1306 EndWriteAttribute(); 1307 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1308 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 1309 WriteLiteral("</option>\r\n"); 1310 for (var i = 0; i <= 10000000; i += 100000) 1311 { 1312 if (i == 10000000) 1313 { 1314 WriteLiteral(" <option"); 1315 BeginWriteAttribute("value", " value=\"", 165344, "\"", 165354, 1); 1316 WriteAttributeValue("", 165352, i, 165352, 2, false); 1317 EndWriteAttribute(); 1318 WriteLiteral(" data-value=\'"); 1319 Write(Converter.ToInt32(i).ToString("N0")); 1320 WriteLiteral("+\'>"); 1321 Write(Converter.ToInt32(i).ToString("N0")); 1322 WriteLiteral("+</option>\r\n"); 1323 } 1324 else 1325 { 1326 WriteLiteral(" <option"); 1327 BeginWriteAttribute("value", " value=\"", 165686, "\"", 165696, 1); 1328 WriteAttributeValue("", 165694, i, 165694, 2, false); 1329 EndWriteAttribute(); 1330 WriteLiteral(" data-value=\'"); 1331 Write(Converter.ToInt32(i).ToString("N0")); 1332 WriteLiteral("\'>"); 1333 Write(Converter.ToInt32(i).ToString("N0")); 1334 WriteLiteral("</option>\r\n"); 1335 } 1336 } 1337 WriteLiteral(@" </select> 1338 </div> 1339 </div> 1340 </div> 1341 </div> 1342 </div> 1343 <div class=""col-xs-12 col-md-4 d-none d-md-block""> 1344 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1345 Write(Translate("Smartpage:Search.Søg", "Søg")); 1346 WriteLiteral(@"</button> 1347 </div> 1348 </div> 1349 1350 <div class=""row moresearch-btn no-gutters""> 1351 <div class=""col-sm-12""> 1352 <div class=""row align-items-center no-gutters""> 1353 <div class=""col-12 col-md-5""> 1354 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch-master""> 1355 <span class=""moreSearch-text""><i class=""fas fa-plus open-close white""></i> <span class=""not-open white"">"); 1356 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 1357 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> "); 1358 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 1359 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\">"); 1360 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 1361 WriteLiteral(@"</a> 1362 </div> 1363 <div class=""col-6 col-md-4 mb-xs-4""> 1364 <div class=""parent-purchases""> 1365 <label class=""checkbox-container white""> 1366 "); 1367 Write(Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet")); 1368 WriteLiteral(@" 1369 <input type=""checkbox"" name=""foraeldrekoebegnet"" value=""true"" class=""js-input-check""> 1370 <span class=""checkmark grey""></span> 1371 </label> 1372 </div> 1373 </div> 1374 </div> 1375 1376 <div class=""collapse"" id=""moreSearch-master""> 1377 1378 <h4 class=""mt-20""><b>"); 1379 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 1380 WriteLiteral(@"</b></h4> 1381 <div class=""row align-items-end mb-30""> 1382 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1383 <div class=""filter-container row""> 1384 <label class=""d-block col-12"">"); 1385 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 1386 WriteLiteral(@"</label> 1387 <div class=""col-6 pr-sm-0 pr-2""> 1388 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 1389 BeginWriteAttribute("placeholder", " placeholder=\'", 169153, "\'", 169226, 1); 1390 WriteAttributeValue("", 169167, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 169167, 59, false); 1391 EndWriteAttribute(); 1392 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1393 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 1394 WriteLiteral("</option>\r\n"); 1395 for (var i = 0; i <= 300; i += 10) 1396 { 1397 if (i == 300) 1398 { 1399 WriteLiteral(" <option>"); 1400 Write(i); 1401 WriteLiteral("+</option>\r\n"); 1402 } 1403 else 1404 { 1405 WriteLiteral(" <option>"); 1406 Write(i); 1407 WriteLiteral("</option>\r\n"); 1408 } 1409 } 1410 WriteLiteral(@" </select> 1411 </div> 1412 <div class=""col-6 pl-sm-0 pl-2""> 1413 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 1414 BeginWriteAttribute("placeholder", " placeholder=\'", 170609, "\'", 170682, 1); 1415 WriteAttributeValue("", 170623, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 170623, 59, false); 1416 EndWriteAttribute(); 1417 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1418 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 1419 WriteLiteral("</option>\r\n"); 1420 for (var i = 0; i <= 300; i += 10) 1421 { 1422 if (i == 300) 1423 { 1424 WriteLiteral(" <option>"); 1425 Write(i); 1426 WriteLiteral("+</option>\r\n"); 1427 } 1428 else 1429 { 1430 WriteLiteral(" <option>"); 1431 Write(i); 1432 WriteLiteral("</option>\r\n"); 1433 } 1434 } 1435 WriteLiteral(@" </select> 1436 </div> 1437 </div> 1438 </div> 1439 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1440 <div class=""filter-container row""> 1441 <label class=""d-block col-12"">"); 1442 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 1443 WriteLiteral(@"</label> 1444 <div class=""col-6 pr-sm-0 pr-2""> 1445 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 1446 BeginWriteAttribute("placeholder", " placeholder=\'", 172461, "\'", 172534, 1); 1447 WriteAttributeValue("", 172475, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 172475, 59, false); 1448 EndWriteAttribute(); 1449 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1450 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 1451 WriteLiteral("</option>\r\n"); 1452 for (var i = 0; i <= 10000; i += 100) 1453 { 1454 if (i == 10000) 1455 { 1456 WriteLiteral(" <option"); 1457 BeginWriteAttribute("value", " value=\"", 173174, "\"", 173203, 1); 1458 WriteAttributeValue("", 173182, Converter.ToInt32(i), 173182, 21, false); 1459 EndWriteAttribute(); 1460 WriteLiteral(">"); 1461 Write(Converter.ToInt32(i).ToString("N0")); 1462 WriteLiteral("+</option>\r\n"); 1463 } 1464 else 1465 { 1466 WriteLiteral(" <option"); 1467 BeginWriteAttribute("value", " value=\"", 173500, "\"", 173529, 1); 1468 WriteAttributeValue("", 173508, Converter.ToInt32(i), 173508, 21, false); 1469 EndWriteAttribute(); 1470 WriteLiteral(">"); 1471 Write(Converter.ToInt32(i).ToString("N0")); 1472 WriteLiteral("</option>\r\n"); 1473 } 1474 } 1475 WriteLiteral(@" </select> 1476 </div> 1477 <div class=""col-6 pl-sm-0 pl-2""> 1478 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 1479 BeginWriteAttribute("placeholder", " placeholder=\'", 174050, "\'", 174123, 1); 1480 WriteAttributeValue("", 174064, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 174064, 59, false); 1481 EndWriteAttribute(); 1482 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1483 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 1484 WriteLiteral("</option>\r\n"); 1485 for (var i = 0; i <= 10000; i += 100) 1486 { 1487 if (i == 10000) 1488 { 1489 WriteLiteral(" <option"); 1490 BeginWriteAttribute("value", " value=\"", 174754, "\"", 174783, 1); 1491 WriteAttributeValue("", 174762, Converter.ToInt32(i), 174762, 21, false); 1492 EndWriteAttribute(); 1493 WriteLiteral(">"); 1494 Write(Converter.ToInt32(i).ToString("N0")); 1495 WriteLiteral("+</option>\r\n"); 1496 } 1497 else 1498 { 1499 WriteLiteral(" <option"); 1500 BeginWriteAttribute("value", " value=\"", 175080, "\"", 175109, 1); 1501 WriteAttributeValue("", 175088, Converter.ToInt32(i), 175088, 21, false); 1502 EndWriteAttribute(); 1503 WriteLiteral(">"); 1504 Write(Converter.ToInt32(i).ToString("N0")); 1505 WriteLiteral("</option>\r\n"); 1506 } 1507 } 1508 WriteLiteral(@" </select> 1509 </div> 1510 </div> 1511 </div> 1512 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1513 <div class=""filter-container row""> 1514 <label class=""d-block col-12"">Antal rum</label> 1515 1516 <div class=""col-6 pr-sm-0 pr-2""> 1517 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count""> 1518 <option selected=""selected"" disabled=""disabled"">"); 1519 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 1520 WriteLiteral(@"</option> 1521 <option value=""1"">1</option> 1522 <option value=""2"">2</option> 1523 <option value=""3"">3</option> 1524 <option value=""4"">4</option> 1525 <option value=""5"">5+</option> 1526 </select> 1527 </div> 1528 <div class=""col-6 pl-sm-0 pl-2""> 1529 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count""> 1530 <option selected=""selected"" disabled=""disabled"">"); 1531 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 1532 WriteLiteral(@"</option> 1533 <option value=""1"">1</option> 1534 <option value=""2"">2</option> 1535 <option value=""3"">3</option> 1536 <option value=""4"">4</option> 1537 <option value=""5"">5+</option> 1538 </select> 1539 </div> 1540 </div> 1541 </div> 1542 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1543 <div class=""row""> 1544 <div class=""col-12 pr-2""> 1545 <div class=""filter-container""> 1546 <label class=""d-block"">Energimærke</label> 1547 "); 1548 WriteLiteral(" <select name=\"energylabel\" id=\"energylabel\" class=\"form-control reverse js-energylabel-select js-count\">\r\n <option disabled selected=\"selected\">"); 1549 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 1550 WriteLiteral(@"</option> 1551 <option value=""01"">G</option> 1552 <option value=""02"">F</option> 1553 <option value=""03"">E</option> 1554 <option value=""04"">D</option> 1555 <option value=""05"">C</option> 1556 <option value=""06"">B</option> 1557 <option value=""07"">A</option> 1558 <option value=""08"">A2010</option> 1559 <option value=""09"">A2015</option> 1560 <option value=""10"">A2020+</option> 1561 </select> 1562 </div> 1563 "); 1564 WriteLiteral(@" </div> 1565 </div> 1566 </div> 1567 <div class=""col-12 col-sm-6 col-lg-6 mt-3""> 1568 <h4"); 1569 BeginWriteAttribute("class", " class=\"", 179615, "\"", 179623, 0); 1570 EndWriteAttribute(); 1571 WriteLiteral("><b>"); 1572 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 1573 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 1574 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 1575 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\""); 1576 BeginWriteAttribute("placeholder", " placeholder=\'", 180185, "\'", 180252, 1); 1577 WriteAttributeValue("", 180199, Translate("Smartpage:Search.Placeholder.Min", "Min"), 180199, 53, false); 1578 EndWriteAttribute(); 1579 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">"); 1580 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 1581 WriteLiteral("</option>\r\n"); 1582 for (var i = 0; i <= 25000; i += 1250) 1583 { 1584 if (i == 25000) 1585 { 1586 WriteLiteral(" <option"); 1587 BeginWriteAttribute("value", " value=\"", 180896, "\"", 180925, 1); 1588 WriteAttributeValue("", 180904, Converter.ToInt32(i), 180904, 21, false); 1589 EndWriteAttribute(); 1590 WriteLiteral(">"); 1591 Write(Converter.ToInt32(i).ToString("N0")); 1592 WriteLiteral("+</option>\r\n"); 1593 } 1594 else 1595 { 1596 WriteLiteral(" <option"); 1597 BeginWriteAttribute("value", " value=\"", 181222, "\"", 181251, 1); 1598 WriteAttributeValue("", 181230, Converter.ToInt32(i), 181230, 21, false); 1599 EndWriteAttribute(); 1600 WriteLiteral(">"); 1601 Write(Converter.ToInt32(i).ToString("N0")); 1602 WriteLiteral("</option>\r\n"); 1603 } 1604 } 1605 WriteLiteral(@" </select> 1606 </div> 1607 <div class=""col-6 pl-sm-0 pl-2""> 1608 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count"""); 1609 BeginWriteAttribute("placeholder", " placeholder=\'", 181763, "\'", 181830, 1); 1610 WriteAttributeValue("", 181777, Translate("Smartpage:Search.Placeholder.Max", "Max"), 181777, 53, false); 1611 EndWriteAttribute(); 1612 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1613 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 1614 WriteLiteral("</option>\r\n"); 1615 for (var i = 0; i <= 25000; i += 1250) 1616 { 1617 if (i == 25000) 1618 { 1619 WriteLiteral(" <option"); 1620 BeginWriteAttribute("value", " value=\"", 182470, "\"", 182499, 1); 1621 WriteAttributeValue("", 182478, Converter.ToInt32(i), 182478, 21, false); 1622 EndWriteAttribute(); 1623 WriteLiteral(">"); 1624 Write(Converter.ToInt32(i).ToString("N0")); 1625 WriteLiteral("+</option>\r\n"); 1626 } 1627 else 1628 { 1629 WriteLiteral(" <option"); 1630 BeginWriteAttribute("value", " value=\"", 182796, "\"", 182825, 1); 1631 WriteAttributeValue("", 182804, Converter.ToInt32(i), 182804, 21, false); 1632 EndWriteAttribute(); 1633 WriteLiteral(">"); 1634 Write(Converter.ToInt32(i).ToString("N0")); 1635 WriteLiteral("</option>\r\n"); 1636 } 1637 } 1638 WriteLiteral(@" </select> 1639 </div> 1640 </div> 1641 </div> 1642 <div class=""col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0""> 1643 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1644 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 1645 WriteLiteral(@"</button> 1646 </div> 1647 </div> 1648 </div> 1649 </div> 1650 </div> 1651 <div class=""row d-block d-md-none form-wrapper no-gutters""> 1652 <div class=""col-xs-12 col-md-2""> 1653 <button type=""submit"" class=""btn btn-block btn-search dark-red""><i class=""fa fa-search""></i> "); 1654 Write(Translate("Smartpage:Search.Søg", "Søg")); 1655 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n"); 1656 } 1657 WriteLiteral(" </div>\r\n\r\n"); 1658 1659 RenderSlideMenu(false, Convert.ToString(settings_Maeglersogning)); 1660 WriteLiteral("\r\n"); 1661 if (isBrokerPage) 1662 { 1663 WriteLiteral(" <section class=\"maegler-navbar\">\r\n "); 1664 Write(RenderNavigation(new 1665 { 1666 id = "navbar-main", 1667 cssclass = "dwnavigation", 1668 template = "ul_li.xslt", 1669 StartLevel = 1, 1670 EndLevel = 1 1671 })); 1672 WriteLiteral("\r\n </section>\r\n"); 1673 } 1674 WriteLiteral("\r\n <div class=\"visual-editor\">\r\n"); 1675 WriteLiteral("\r\n\r\n"); 1676 WriteLiteral("\r\n"); 1677 WriteLiteral("\r\n"); 1678 1679 string listPageId = Converter.ToString(GetPageIdByNavigationTag("DynamicListFeed")); 1680 string parentPageId = Dynamicweb.Services.Pages.GetPage(Model.ID).Parent.ID.ToString(); 1681 string topLayout = Model.Item.GetList("TopLayout") != null ? Model.Item.GetList("TopLayout").SelectedValue : "default"; 1682 topLayout = topLayout == "default" && GetParentSettingsItem("ArticleTopLayout") != null ? GetParentSettingsItem("ArticleTopLayout").ToString().ToLower() : topLayout; 1683 string textLayout = Model.Item.GetList("TextLayout") != null ? Model.Item.GetList("TextLayout").SelectedValue : "default"; 1684 textLayout = textLayout == "default" && GetParentSettingsItem("ArticleTextLayout") != null ? GetParentSettingsItem("ArticleTextLayout").ToString().ToLower() : textLayout; 1685 string imageLayout = Model.Item.GetList("ImageLayout") != null ? Model.Item.GetList("ImageLayout").SelectedValue : "default"; 1686 imageLayout = imageLayout == "default" && GetParentSettingsItem("ArticleImageLayout") != null ? GetParentSettingsItem("ArticleImageLayout").ToString().ToLower() : imageLayout; 1687 1688 //string imageColumns = imageLayout == "straight" && textLayout != "full" ? "8" : "12"; 1689 //string contentColumns = textLayout != "full" ? "8" : "12"; 1690 string imageColumns = "12"; 1691 string contentColumns = "12"; 1692 1693 int externalParagraphId = Model.Item.GetItem("CTAParagraphLink") != null ? Model.Item.GetItem("CTAParagraphLink").ParagraphID : 0; 1694 1695 ArticleHeaderLayout headerLayout; 1696 1697 switch (topLayout) 1698 { 1699 case "default": 1700 headerLayout = ArticleHeaderLayout.Clean; 1701 break; 1702 case "split": 1703 headerLayout = ArticleHeaderLayout.Split; 1704 break; 1705 case "banner": 1706 headerLayout = ArticleHeaderLayout.Banner; 1707 break; 1708 case "overlay": 1709 headerLayout = ArticleHeaderLayout.Overlay; 1710 break; 1711 default: 1712 headerLayout = ArticleHeaderLayout.Clean; 1713 break; 1714 } 1715 1716 1717 Block articleContainer = new Block 1718 { 1719 Id = "ArticleContainer", 1720 SortId = 10, 1721 Design = new Design 1722 { 1723 RenderType = RenderType.Row 1724 }, 1725 BlocksList = new List<Block> { 1726 new Block { 1727 Id = "ArticleBody", 1728 SortId = 30, 1729 Design = new Design { 1730 RenderType = RenderType.Column, 1731 Size = "12", 1732 HidePadding = true, 1733 CssClass = "margin-top-large" 1734 } 1735 } 1736 } 1737 }; 1738 articlePage.Add(articleContainer); 1739 1740 ButtonLayout topBannerButtonLayout = ButtonLayout.Primary; 1741 1742 switch (Model.Item.GetString("ButtonDesign")) 1743 { 1744 case "primary": 1745 topBannerButtonLayout = ButtonLayout.Primary; 1746 break; 1747 case "secondary": 1748 topBannerButtonLayout = ButtonLayout.Secondary; 1749 break; 1750 case "teritary": 1751 topBannerButtonLayout = ButtonLayout.Tertiary; 1752 break; 1753 case "link": 1754 topBannerButtonLayout = ButtonLayout.Link; 1755 break; 1756 } 1757 1758 ArticleHeader topBanner = new ArticleHeader 1759 { 1760 Layout = headerLayout, 1761 Image = new Image { Path = Model.Item.GetFile("Image"), ImageDefault = new ImageSettings { Width = 1920, Height = 640 } }, 1762 Heading = Model.Item.GetString("Title"), 1763 Subheading = Model.Item.GetString("Summary"), 1764 TextColor = "#fff", 1765 Author = Model.Item.GetString("Author"), 1766 Date = Model.Item.GetString("Date"), 1767 Category = GetArticleCategory(Model.ID), 1768 CategoryColor = GetArticleCategoryColor(Model.ID), 1769 Link = Model.Item.GetString("Link"), 1770 LinkText = Model.Item.GetString("LinkText"), 1771 ButtonLayout = topBannerButtonLayout, 1772 RatingScore = Model.Item.GetString("Rating") != null ? Converter.ToInt32(Model.Item.GetList("Rating").SelectedValue) : 0, 1773 RatingOutOf = Model.Item.GetString("Rating") != null ? Model.Item.GetList("Rating").Options.Count : 0, 1774 ExternalParagraphId = externalParagraphId 1775 }; 1776 1777 Block articleTop = new Block 1778 { 1779 Id = "ArticleHead", 1780 SortId = 20, 1781 Component = topBanner, 1782 Design = new Design 1783 { 1784 RenderType = RenderType.Column, 1785 Size = "12", 1786 HidePadding = true, 1787 CssClass = "article-head" 1788 } 1789 }; 1790 //articlePage.Add("ArticleContainer", articleTop); 1791 1792 1793 Block articleBodyRow = new Block 1794 { 1795 Id = "ArticleBodyRow", 1796 SortId = 10, 1797 SkipRenderBlocksList = true 1798 }; 1799 articlePage.Add("ArticleBody", articleBodyRow); 1800 1801 1802 if (Model.Item.GetString("Paragraphs") != null) 1803 { 1804 int count = 0; 1805 foreach (var paragraph in Model.Item.GetItems("Paragraphs")) 1806 { 1807 if (!paragraph.GetBoolean("RenderAsQuote")) 1808 { 1809 string enableDropCap = Model.Item.GetString("EnableDropCap") != null ? Model.Item.GetList("EnableDropCap").SelectedValue.ToLower() : "default"; 1810 enableDropCap = enableDropCap == "default" && GetParentSettingsItem("EnableDropCap") != null ? GetParentSettingsItem("EnableDropCap").ToString().ToLower() : enableDropCap; 1811 string text = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : ""; 1812 1813 if (!String.IsNullOrEmpty(text) && enableDropCap == "true" && count == 0 && paragraph.GetString("Text").Substring(0, 3) == "<p>") 1814 { 1815 string firstLetter = paragraph.GetString("Text").Substring(3, 1); 1816 text = paragraph.GetString("Text").Remove(3, 1); 1817 text = text.Insert(3, "<span class=\"article__drop-cap\">" + firstLetter + "</span>"); 1818 } 1819 1820 if (!String.IsNullOrEmpty(paragraph.GetString("Heading"))) 1821 { 1822 Block articleParagraphHeader = new Block 1823 { 1824 Id = "ArticleParagraph" + count + "Heading", 1825 SortId = (count * 10) , 1826 Component = new ArticleSubHeader { Title = paragraph.GetString("Heading") }, 1827 Design = new Design 1828 { 1829 RenderType = RenderType.Column, 1830 Size = contentColumns, 1831 CssClass = "u-color-light--bg u-padding--lg" 1832 } 1833 }; 1834 articlePage.Add("ArticleBodyRow", articleParagraphHeader); 1835 } 1836 1837 if (paragraph.GetFile("Image") != null) 1838 { 1839 string imageTitle = !string.IsNullOrEmpty(paragraph.GetString("Heading")) ? paragraph.GetString("Heading") : ""; 1840 1841 Block articleParagraphImage = new Block 1842 { 1843 Id = "ArticleParagraph" + count + "Image", 1844 SortId = (count * 10) + 2, 1845 Design = new Design 1846 { 1847 RenderType = RenderType.Column, 1848 Size = imageColumns, 1849 CssClass = "u-color-light--bg u-padding--lg" 1850 } 1851 }; 1852 1853 if (imageLayout == "banner") 1854 { 1855 ArticleBanner banner = new ArticleBanner 1856 { 1857 Image = new Image { Path = paragraph.GetFile("Image"), ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, Caption = paragraph.GetString("ImageCaption") }, 1858 Heading = imageTitle, 1859 UseFilters = false 1860 }; 1861 articleParagraphImage.Component = banner; 1862 } 1863 else 1864 { 1865 ArticleImage image = new ArticleImage 1866 { 1867 Image = new Image 1868 { 1869 Path = paragraph.GetFile("Image"), 1870 Title = imageTitle, 1871 ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, 1872 Caption = paragraph.GetString("ImageCaption"), 1873 CssClass = "u-full-width" 1874 } 1875 }; 1876 articleParagraphImage.Component = image; 1877 } 1878 1879 articlePage.Add("ArticleBodyRow", articleParagraphImage); 1880 } 1881 1882 if (!String.IsNullOrEmpty(paragraph.GetString("VideoURL"))) 1883 { 1884 Block articleParagraphVideo = new Block 1885 { 1886 Id = "ArticleParagraph" + count + "Video", 1887 SortId = (count * 10) + 3, 1888 Component = new ArticleVideo { Url = paragraph.GetString("VideoURL"), AutoPlay = "false" }, 1889 Design = new Design 1890 { 1891 RenderType = RenderType.Column, 1892 Size = imageColumns, 1893 CssClass = "u-color-light--bg u-padding--lg" 1894 } 1895 }; 1896 articlePage.Add("ArticleBodyRow", articleParagraphVideo); 1897 } 1898 1899 if (!String.IsNullOrEmpty(text)) 1900 { 1901 Block articleParagraphText = new Block 1902 { 1903 Id = "ArticleParagraph" + count + "Text", 1904 SortId = (count * 10) + 3, 1905 Component = new ArticleText { Text = text }, 1906 Design = new Design 1907 { 1908 RenderType = RenderType.Column, 1909 Size = contentColumns, 1910 CssClass = "u-color-light--bg u-padding--lg" 1911 } 1912 }; 1913 1914 articlePage.Add("ArticleBodyRow", articleParagraphText); 1915 } 1916 } 1917 else 1918 { 1919 if (!String.IsNullOrEmpty(paragraph.GetString("Text"))) 1920 { 1921 string quoteText = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : ""; 1922 string quoteAuthor = paragraph.GetString("Heading") != null ? paragraph.GetString("Heading") : ""; 1923 1924 Block articleParagraphQuote = new Block 1925 { 1926 Id = "ArticleParagraph" + count + "Quote", 1927 SortId = (count * 10) + 3, 1928 Component = new ArticleQuote { Image = new Image { Path = paragraph.GetFile("Image") }, Text = quoteText, Author = quoteAuthor }, 1929 Design = new Design 1930 { 1931 RenderType = RenderType.Column, 1932 Size = contentColumns, 1933 CssClass = "u-color-light--bg u-padding--lg" 1934 } 1935 }; 1936 articlePage.Add("ArticleBodyRow", articleParagraphQuote); 1937 } 1938 } 1939 1940 count++; 1941 } 1942 } 1943 1944 articleBodyRow.Component = new ArticleBodyRow { SubBlocks = articleBodyRow.BlocksList, TopLayout = topLayout, TextLayout = textLayout }; 1945 1946 1947 //Related 1948 string showRelatedArtices = Model.Item.GetString("ShowRelatedArticles") != null ? Model.Item.GetList("ShowRelatedArticles").SelectedValue.ToLower() : "default"; 1949 showRelatedArtices = showRelatedArtices == "default" && GetParentSettingsItem("ShowRelatedArticles") != null ? GetParentSettingsItem("ShowRelatedArticles").ToString().ToLower() : showRelatedArtices; 1950 1951 if (showRelatedArtices == "true") 1952 { 1953 Block articleRelated = new Block 1954 { 1955 Id = "ArticleRelated", 1956 SortId = 30, 1957 Component = new ArticleRelated { Title = Translate("Related articles"), FeedPageId = listPageId, Query = "sourceType=Page&sourcePage=" + parentPageId, PageSize = 4, CurrentPageId = Model.ID.ToString() }, 1958 Design = new Design 1959 { 1960 RenderType = RenderType.Column, 1961 Size = "12" 1962 } 1963 }; 1964 articlePage.Add("ArticleContainer", articleRelated); 1965 } 1966 WriteLiteral("\r\n\r\n"); 1967 WriteLiteral("<section class=\"center-container content-container dw-mod\">\r\n "); 1968 Write(RenderBlockList(articlePage.BlocksRoot.BlocksList)); 1969 WriteLiteral("\r\n</section>\r\n </div>\r\n\r\n"); 1970 if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true) 1971 { 1972 string bName = MyBroker.Broker.Name; 1973 string bClass = "na"; 1974 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 1975 1976 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName)) 1977 { 1978 bName = MyBroker.Broker.CompanyName; 1979 } 1980 try 1981 { 1982 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl"); 1983 if (!string.IsNullOrEmpty(imgUrl)) 1984 { 1985 bImage = imgUrl; 1986 bClass = ""; 1987 } 1988 } 1989 catch 1990 { 1991 // Ignore 1992 } 1993 1994 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId"); 1995 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 1996 1997 WriteLiteral(" <section class=\"din-maegler\">\r\n <div"); 1998 BeginWriteAttribute("class", " class=\"", 201619, "\"", 201646, 2); 1999 WriteAttributeValue("", 201627, "img-wrapper", 201627, 11, true); 2000 WriteAttributeValue(" ", 201638, bClass, 201639, 7, false); 2001 EndWriteAttribute(); 2002 BeginWriteAttribute("style", " style=\"", 201647, "\"", 201686, 3); 2003 WriteAttributeValue("", 201655, "background-image:url(\'", 201655, 22, true); 2004 WriteAttributeValue("", 201677, bImage, 201677, 7, false); 2005 WriteAttributeValue("", 201684, "\')", 201684, 2, true); 2006 EndWriteAttribute(); 2007 WriteLiteral(@"></div> 2008 <div class=""container""> 2009 <div class=""col-12 col-sm-12 col-md-6 offset-md-6""> 2010 <h2>Din personlige mægler</h2> 2011 <div class=""row""> 2012 <div class=""col-12 col-sm-6""> 2013 <p> 2014 <b class=""my-broker-name"">"); 2015 Write(MyBroker.Employee.Name); 2016 WriteLiteral("</b><br>\r\n"); 2017 if (!string.IsNullOrEmpty(MyBroker.Employee.Email)) 2018 { 2019 WriteLiteral("Mail: <a"); 2020 BeginWriteAttribute("href", " href=\"", 202243, "\"", 202303, 2); 2021 WriteAttributeValue("", 202250, "mailto:", 202250, 7, true); 2022 WriteAttributeValue("", 202257, ExtractMaskedEmail(MyBroker.Employee.Email), 202257, 46, false); 2023 EndWriteAttribute(); 2024 WriteLiteral(" class=\"my-broker-email\">"); 2025 Write(ExtractMaskedEmail(MyBroker.Employee.Email)); 2026 WriteLiteral("</a><br>"); 2027 2028 } 2029 if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile)) 2030 { 2031 WriteLiteral("Tlf.: <a"); 2032 BeginWriteAttribute("href", " href=\"", 202602, "\"", 202645, 2); 2033 WriteAttributeValue("", 202609, "tel:", 202609, 4, true); 2034 WriteAttributeValue("", 202613, MyBroker.Employee.PhoneMobile, 202613, 32, false); 2035 EndWriteAttribute(); 2036 WriteLiteral(" class=\"my-broker-phone\">"); 2037 Write(FormatPhoneNumber(MyBroker.Employee.PhoneMobile)); 2038 WriteLiteral("</a>"); 2039 2040 } 2041 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2042 { 2043 WriteLiteral("Tlf.: <a"); 2044 BeginWriteAttribute("href", " href=\"", 202945, "\"", 202984, 2); 2045 WriteAttributeValue("", 202952, "tel:", 202952, 4, true); 2046 WriteAttributeValue("", 202956, MyBroker.Broker.Telephone, 202956, 28, false); 2047 EndWriteAttribute(); 2048 WriteLiteral(" class=\"my-broker-phone\">"); 2049 Write(FormatPhoneNumber(MyBroker.Broker.Telephone)); 2050 WriteLiteral("</a>"); 2051 2052 } 2053 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\">"); 2054 Write(bName); 2055 WriteLiteral("</b><br>\r\n <span class=\"my-broker-company-address\">"); 2056 Write(MyBroker.Broker.Address); 2057 WriteLiteral("</span><br>\r\n <span class=\"my-broker-company-zip\">"); 2058 Write(MyBroker.Broker.ZipCode); 2059 WriteLiteral("</span> <span class=\"my-broker-company-city\">"); 2060 Write(MyBroker.Broker.City); 2061 WriteLiteral("</span><br>\r\n"); 2062 if (!string.IsNullOrEmpty(bEmail)) 2063 { 2064 WriteLiteral("Mail: <a"); 2065 BeginWriteAttribute("href", " href=\"", 203773, "\"", 203796, 2); 2066 WriteAttributeValue("", 203780, "mailto:", 203780, 7, true); 2067 WriteAttributeValue("", 203787, bEmail, 203787, 9, false); 2068 EndWriteAttribute(); 2069 WriteLiteral(" class=\"my-broker-broker-email\">"); 2070 Write(bEmail); 2071 WriteLiteral("</a><br>"); 2072 2073 } 2074 if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2075 { 2076 WriteLiteral("Tlf.: <a"); 2077 BeginWriteAttribute("href", " href=\"", 204061, "\"", 204100, 2); 2078 WriteAttributeValue("", 204068, "tel:", 204068, 4, true); 2079 WriteAttributeValue("", 204072, MyBroker.Broker.Telephone, 204072, 28, false); 2080 EndWriteAttribute(); 2081 WriteLiteral(" class=\"my-broker-broker-phone\">"); 2082 Write(FormatPhoneNumber(MyBroker.Broker.Telephone)); 2083 WriteLiteral("</a>"); 2084 2085 } 2086 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"); 2087 BeginWriteAttribute("href", " href=\"", 204476, "\"", 204511, 2); 2088 WriteAttributeValue("", 204483, "/", 204483, 1, true); 2089 WriteAttributeValue("", 204484, medlemsnummer.Substring(1), 204484, 27, false); 2090 EndWriteAttribute(); 2091 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"); 2092 } 2093 WriteLiteral(" <footer>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n"); 2094 2095 var navigationSettings = new NavigationSettings(); 2096 navigationSettings.StartLevel = 1; 2097 navigationSettings.StopLevel = 3; 2098 navigationSettings.ExpandMode = ExpandMode.All; 2099 navigationSettings.RootAreaId = 1; 2100 navigationSettings.RootNavigationTag = "footer-nav"; 2101 2102 WriteLiteral(" "); 2103 Write(Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings)); 2104 WriteLiteral("\r\n </div>\r\n </div>\r\n </footer>\r\n\r\n"); 2105 if (Model.CurrentUser?.ID <= 0) 2106 { 2107 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"); 2108 if (loginParagraphId > 0) 2109 { 2110 WriteLiteral("\r\n "); 2111 Write(RenderParagraphContent(loginParagraphId)); 2112 WriteLiteral("\r\n "); 2113 2114 } 2115 WriteLiteral(" </div>\r\n <div class=\"loginform register js-register-form-wrapper\" style=\"display: none;\">\r\n"); 2116 if (createUserParagraphId > 0) 2117 { 2118 WriteLiteral("\r\n "); 2119 Write(RenderParagraphContent(createUserParagraphId)); 2120 WriteLiteral("\r\n "); 2121 2122 } 2123 WriteLiteral(" </div>\r\n <div class=\"loginform forgotpw\" style=\"display: none;\">\r\n <h2 class=\"forgotpw-reg\">"); 2124 Write(Translate("forgot-pw-reg-title", "Glemt adgangskode")); 2125 WriteLiteral("</h2>\r\n <h2 class=\"forgotpw-broker\">"); 2126 Write(Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")); 2127 WriteLiteral("</h2>\r\n <form id=\"forgotPwForm\" class=\"form-body\" method=\"post\""); 2128 BeginWriteAttribute("action", " action=\"", 206574, "\"", 206583, 0); 2129 EndWriteAttribute(); 2130 WriteLiteral(">\r\n <input type=\"hidden\" id=\"AccessUserShopID\" name=\"AccessUserShopID\" value=\"SHOP6\" />\r\n <p class=\"forgotpw-reg\">"); 2131 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.")); 2132 WriteLiteral("</p>\r\n <p class=\"forgotpw-broker\">"); 2133 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.")); 2134 WriteLiteral(@"</p> 2135 <div class=""form-group""> 2136 <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 /> 2137 </div> 2138 <button class=""btn btn-primary btn-block"" type=""submit"">"); 2139 Write(Translate("forgot-pw-cta", "Nulstil adgangskode")); 2140 WriteLiteral("</button>\r\n <br />\r\n <div id=\"submitMessage\"></div>\r\n </form>\r\n </div>\r\n </div>\r\n"); 2141 } 2142 WriteLiteral("\r\n"); 2143 WriteLiteral("\r\n"); 2144 2145 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"); 2146 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>"); 2147 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")); 2148 WriteLiteral("</h2>\r\n <form id=\"form-koeberraadgivning\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>"); 2149 Write(Translate("form-navn", "Navn")); 2150 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\" tabindex=\"1\""); 2151 BeginWriteAttribute("placeholder", " placeholder=\'", 208823, "\'", 208905, 1); 2152 WriteAttributeValue("", 208837, Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn"), 208837, 68, false); 2153 EndWriteAttribute(); 2154 BeginWriteAttribute("value", " value=\'", 208906, "\'", 208945, 1); 2155 WriteAttributeValue("", 208914, UserContext.Current.User?.Name, 208914, 31, false); 2156 EndWriteAttribute(); 2157 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2158 Write(Translate("form-email", "E-mail")); 2159 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\""); 2160 BeginWriteAttribute("placeholder", " placeholder=\'", 209222, "\'", 209307, 1); 2161 WriteAttributeValue("", 209236, Translate("Smartpage:Kontakt.Placeholder.Email", "Indtast din e-mail"), 209236, 71, false); 2162 EndWriteAttribute(); 2163 BeginWriteAttribute("value", " value=\'", 209308, "\'", 209348, 1); 2164 WriteAttributeValue("", 209316, UserContext.Current.User?.Email, 209316, 32, false); 2165 EndWriteAttribute(); 2166 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2167 Write(Translate("form-mobile", "Mobil nr.")); 2168 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"3\" maxlength=\"20\" name=\"mobile\""); 2169 BeginWriteAttribute("placeholder", " placeholder=\'", 209659, "\'", 209744, 1); 2170 WriteAttributeValue("", 209673, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 209673, 71, false); 2171 EndWriteAttribute(); 2172 BeginWriteAttribute("value", " value=\'", 209745, "\'", 209785, 1); 2173 WriteAttributeValue("", 209753, UserContext.Current.User?.Phone, 209753, 32, false); 2174 EndWriteAttribute(); 2175 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2176 Write(Translate("form-telephone", "Telefon nr.")); 2177 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"4\" maxlength=\"20\" name=\"telefonnummer\""); 2178 BeginWriteAttribute("placeholder", " placeholder=\'", 210068, "\'", 210152, 1); 2179 WriteAttributeValue("", 210082, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 210082, 70, false); 2180 EndWriteAttribute(); 2181 BeginWriteAttribute("value", " value=\'", 210153, "\'", 210194, 1); 2182 WriteAttributeValue("", 210161, UserContext.Current?.User?.Phone, 210161, 33, false); 2183 EndWriteAttribute(); 2184 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <h3>"); 2185 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2186 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2187 Write(Translate("form-zip", "Post nr")); 2188 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\" tabindex=\"5\""); 2189 BeginWriteAttribute("placeholder", " placeholder=\'", 210602, "\'", 210680, 1); 2190 WriteAttributeValue("", 210616, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 210616, 64, false); 2191 EndWriteAttribute(); 2192 BeginWriteAttribute("value", " value=\"", 210681, "\"", 210697, 1); 2193 WriteAttributeValue("", 210689, userZip, 210689, 8, false); 2194 EndWriteAttribute(); 2195 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2196 Write(Translate("form-city", "By")); 2197 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>"); 2198 Write(Translate("form-adresse", "Adresse")); 2199 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\" tabindex=\"6\""); 2200 BeginWriteAttribute("placeholder", " placeholder=\'", 211264, "\'", 211354, 1); 2201 WriteAttributeValue("", 211278, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 211278, 76, false); 2202 EndWriteAttribute(); 2203 WriteLiteral(" required />\r\n\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2204 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2205 WriteLiteral(@"</label> 2206 </div> 2207 <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""> 2208 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2209 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2210 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\""); 2211 BeginWriteAttribute("placeholder", " placeholder=\'", 212148, "\'", 212226, 1); 2212 WriteAttributeValue("", 212162, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 212162, 64, false); 2213 EndWriteAttribute(); 2214 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\">"); 2215 Write(Translate("KontaktMægler", "Kontakt Mægler")); 2216 WriteLiteral(@"</button> 2217 </div> 2218 </div> 2219 </div> 2220 <div class=""form-group mt-3""> 2221 <div class=""checkbox""> 2222 <label> 2223 <input type=""checkbox"" name=""kontaktmigok"" required /> 2224 2225 <span>"); 2226 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2227 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2228 Write(privacyPolicyText); 2229 WriteLiteral(" <a"); 2230 BeginWriteAttribute("href", " href=\"", 213039, "\"", 213063, 2); 2231 WriteAttributeValue("", 213046, "mailto:", 213046, 7, true); 2232 WriteAttributeValue("", 213053, termsMail, 213053, 10, false); 2233 EndWriteAttribute(); 2234 WriteLiteral(">"); 2235 Write(termsMail); 2236 WriteLiteral("</a>.\r\n Læs mere på <a"); 2237 BeginWriteAttribute("href", " href=\"", 213108, "\"", 213142, 1); 2238 WriteAttributeValue("", 213115, settings_Persondatapolitik, 213115, 27, false); 2239 EndWriteAttribute(); 2240 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n\r\n <input type=\"hidden\" name=\"fn\" value=\"krk\" />\r\n <input type=\"hidden\" name=\"origin\""); 2241 BeginWriteAttribute("value", " value=\"", 213288, "\"", 213296, 0); 2242 EndWriteAttribute(); 2243 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2244 BeginWriteAttribute("value", " value=\"", 213346, "\"", 213354, 0); 2245 EndWriteAttribute(); 2246 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2247 BeginWriteAttribute("value", " value=\"", 213402, "\"", 213426, 1); 2248 WriteAttributeValue("", 213410, Pageview.AreaID, 213410, 16, false); 2249 EndWriteAttribute(); 2250 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2251 BeginWriteAttribute("value", " value=\"", 213475, "\"", 213491, 1); 2252 WriteAttributeValue("", 213483, butikId, 213483, 8, false); 2253 EndWriteAttribute(); 2254 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2255 BeginWriteAttribute("value", " value=\"", 213545, "\"", 213553, 0); 2256 EndWriteAttribute(); 2257 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2258 BeginWriteAttribute("value", " value=\"", 213604, "\"", 213612, 0); 2259 EndWriteAttribute(); 2260 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2261 BeginWriteAttribute("value", " value=\"", 213662, "\"", 213670, 0); 2262 EndWriteAttribute(); 2263 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-advisor\" style=\"display:none;\">\r\n <h2>"); 2264 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2265 WriteLiteral("</h2>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2266 BeginWriteAttribute("src", " src=\"", 213903, "\"", 213909, 0); 2267 EndWriteAttribute(); 2268 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2269 </div> 2270 <div class=""col-6""> 2271 <p class=""js-maegler-name""></p> 2272 <p class=""js-maegler-address""></p> 2273 <p class=""js-maegler-phone""></p> 2274 <p class=""js-maegler-mail""></p> 2275 </div> 2276 </div> 2277 <p>"); 2278 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2279 WriteLiteral(@"</p> 2280 </div> 2281 </div> 2282 2283 <!--ÅBENT HUS--> 2284 <div id=""panel-aabenthus"" class=""panel panel-form""> 2285 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2286 <b></b> 2287 </button> 2288 2289 2290 <form id=""form-aabenthus"" method=""POST"" action=""/InboxHandler""> 2291 <h2>"); 2292 Write(Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")); 2293 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>"); 2294 Write(Translate("Smarptage:Adresse", "Adresse:")); 2295 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>"); 2296 Write(Translate("Smarptage:Date", "Dato:")); 2297 WriteLiteral("</strong> <label class=\"js-aabenthus-date mb-0\"></label>\r\n </div>\r\n <div class=\"d-block mb-4\">\r\n <strong>"); 2298 Write(Translate("Smarptage:Time", "Tidspunkt:")); 2299 WriteLiteral("</strong> <label class=\"js-aabenthus-time mb-0\"></label>\r\n </div>\r\n <h3>"); 2300 Write(Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")); 2301 WriteLiteral("</h3>\r\n <div class=\"form-group\">\r\n <label for=\"aabenthus-name\"><strong>"); 2302 Write(Translate("form-navn", "Navn")); 2303 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2304 BeginWriteAttribute("placeholder", " placeholder=\'", 215527, "\'", 215611, 1); 2305 WriteAttributeValue("", 215541, Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn"), 215541, 70, false); 2306 EndWriteAttribute(); 2307 BeginWriteAttribute("value", " value=\'", 215612, "\'", 215652, 1); 2308 WriteAttributeValue("", 215620, UserContext.Current?.User?.Name, 215620, 32, false); 2309 EndWriteAttribute(); 2310 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2311 Write(Translate("form-email", "E-mail")); 2312 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\""); 2313 BeginWriteAttribute("placeholder", " placeholder=\'", 215916, "\'", 216003, 1); 2314 WriteAttributeValue("", 215930, Translate("Smartpage:Aabenthus.Placeholder.Email", "Indtast din e-mail"), 215930, 73, false); 2315 EndWriteAttribute(); 2316 BeginWriteAttribute("value", " value=\'", 216004, "\'", 216044, 1); 2317 WriteAttributeValue("", 216012, UserContext.Current.User?.Email, 216012, 32, false); 2318 EndWriteAttribute(); 2319 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2320 Write(Translate("form-mobile", "Mobil nr.")); 2321 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2322 BeginWriteAttribute("placeholder", " placeholder=\'", 216337, "\'", 216424, 1); 2323 WriteAttributeValue("", 216351, Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr."), 216351, 73, false); 2324 EndWriteAttribute(); 2325 BeginWriteAttribute("value", " value=\'", 216425, "\'", 216465, 1); 2326 WriteAttributeValue("", 216433, UserContext.Current.User?.Phone, 216433, 32, false); 2327 EndWriteAttribute(); 2328 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2329 Write(Translate("form-telephone", "Telefon nr.")); 2330 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2331 BeginWriteAttribute("placeholder", " placeholder=\'", 216735, "\'", 216821, 1); 2332 WriteAttributeValue("", 216749, Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr."), 216749, 72, false); 2333 EndWriteAttribute(); 2334 BeginWriteAttribute("value", " value=\'", 216822, "\'", 216862, 1); 2335 WriteAttributeValue("", 216830, UserContext.Current.User?.Phone, 216830, 32, false); 2336 EndWriteAttribute(); 2337 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\">"); 2338 Write(Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")); 2339 WriteLiteral(@"</button> 2340 </div> 2341 </div> 2342 </div> 2343 <div class=""form-group""> 2344 <div class=""checkbox""> 2345 <label> 2346 <input type=""checkbox"" name=""kontaktmigok"" required /> 2347 2348 <span class=""base-color"">"); 2349 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2350 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n "); 2351 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>")); 2352 WriteLiteral("\r\n\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"ah\" />\r\n <input type=\"hidden\" name=\"origin\""); 2353 BeginWriteAttribute("value", " value=\"", 218025, "\"", 218033, 0); 2354 EndWriteAttribute(); 2355 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2356 BeginWriteAttribute("value", " value=\"", 218083, "\"", 218098, 1); 2357 WriteAttributeValue("", 218091, userID, 218091, 7, false); 2358 EndWriteAttribute(); 2359 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2360 BeginWriteAttribute("value", " value=\"", 218146, "\"", 218170, 1); 2361 WriteAttributeValue("", 218154, Pageview.AreaID, 218154, 16, false); 2362 EndWriteAttribute(); 2363 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2364 BeginWriteAttribute("value", " value=\"", 218219, "\"", 218235, 1); 2365 WriteAttributeValue("", 218227, butikId, 218227, 8, false); 2366 EndWriteAttribute(); 2367 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsaddresse\""); 2368 BeginWriteAttribute("value", " value=\"", 218289, "\"", 218297, 0); 2369 EndWriteAttribute(); 2370 WriteLiteral(" class=\"js-aabenthus-address-input\" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2371 BeginWriteAttribute("value", " value=\"", 218386, "\"", 218394, 0); 2372 EndWriteAttribute(); 2373 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2374 BeginWriteAttribute("value", " value=\"", 218445, "\"", 218453, 0); 2375 EndWriteAttribute(); 2376 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2377 BeginWriteAttribute("value", " value=\"", 218503, "\"", 218511, 0); 2378 EndWriteAttribute(); 2379 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2380 BeginWriteAttribute("value", " value=\"", 218561, "\"", 218569, 0); 2381 EndWriteAttribute(); 2382 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsnr\""); 2383 BeginWriteAttribute("value", " value=\"", 218617, "\"", 218625, 0); 2384 EndWriteAttribute(); 2385 WriteLiteral(" class=\"js-sagsnr\" />\r\n <input type=\"hidden\" name=\"productId\""); 2386 BeginWriteAttribute("value", " value=\"", 218694, "\"", 218750, 1); 2387 WriteAttributeValue("", 218702, Dynamicweb.Context.Current.Request["ProductId"], 218702, 48, false); 2388 EndWriteAttribute(); 2389 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"aftaleid\""); 2390 BeginWriteAttribute("value", " value=\"", 218800, "\"", 218808, 0); 2391 EndWriteAttribute(); 2392 WriteLiteral(@" class=""js-aftaleid"" /> 2393 2394 <input type=""hidden"" name=""dateMail"" class=""js-aabenthus-date-input"" /> 2395 <input type=""hidden"" name=""timeMail"" class=""js-aabenthus-time-input"" /> 2396 <input type=""hidden"" name=""brokerImageMail"" class=""property-broker-image-input"" /> 2397 <input type=""hidden"" name=""employeeNameMail"" class=""js-maegler-employee-name-input"" /> 2398 <input type=""hidden"" name=""employeeTitleMail"" class=""js-maegler-employee-title-input"" /> 2399 <input type=""hidden"" name=""employeeMailMail"" class=""js-maegler-mail-input"" /> 2400 <input type=""hidden"" name=""employeeMobileMail"" class=""js-maegler-mobile-input"" /> 2401 <input type=""hidden"" name=""employeePhoneMail"" class=""js-maegler-phone-input"" /> 2402 2403 <input type=""hidden"" name=""brokerNameMail"" class=""js-broker-name-input"" /> 2404 <input type=""hidden"" name=""brokerAddressMail"" class=""js-broker-address-input"" /> 2405 <input type=""hidden"" name=""brokerPhoneMail"" class=""js-broker-phone-input"" /> 2406 </form> 2407 <di"); 2408 WriteLiteral("v id=\"tak-aabenthus\" style=\"display:none;\">\r\n <h2>"); 2409 Write(Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")); 2410 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>"); 2411 Write(Translate("Smarptage:Adresse", "Adresse:")); 2412 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>"); 2413 Write(Translate("Smarptage:Date", "Dato:")); 2414 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>"); 2415 Write(Translate("Smarptage:Time", "Tidspunkt:")); 2416 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>"); 2417 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>")); 2418 WriteLiteral("</p>\r\n </div>\r\n <div class=\"js-not-employee\">\r\n <p>"); 2419 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")); 2420 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\""); 2421 BeginWriteAttribute("style", " style=\"", 221200, "\"", 221208, 0); 2422 EndWriteAttribute(); 2423 WriteLiteral(@"></div> 2424 2425 </div> 2426 </div> 2427 <div class=""col-12""> 2428 <div class=""bg-base""> 2429 2430 <div class=""js-employee""> 2431 <h4 class=""js-maegler-employee-name""></h4> 2432 <div class=""icon-container""> 2433 <i class=""fas fa-envelope""></i> <span class=""js-maegler-mail""></span> 2434 </div> 2435 <div class=""icon-container""> 2436 <i class=""fas fa-phone""></i> <span class=""js-maegler-mobile""></span> 2437 </div> 2438 </div> 2439 2440 2441 <h4 class=""js-maegler-name""></h4> 2442 <div class=""icon-container""> 2443 <i class=""fas fa-map-marker-alt""></i> <span class=""js-maegler-address""></span> 2444 </div> 2445 <div class=""icon-container""> 2446 <i class=""fas fa-phone""></i> <span class=""js-maegler-phone""></span>"); 2447 WriteLiteral(@" 2448 2449 </div> 2450 <a class=""btn btn-border"" onclick=""panelKontaktmaeglerGuldkoeber()"">KONTAKT MÆGLER</a> 2451 </div> 2452 </div> 2453 </div> 2454 </div> 2455 </div> 2456 2457 <!-- KONTAKT GULDKØBER --> 2458 <div id=""panel-kontakt-guldkoeber"" class=""panel panel-form""> 2459 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2460 <b></b> 2461 </button> 2462 <h2>"); 2463 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")); 2464 WriteLiteral("</h2>\r\n <form id=\"form-kontaktmaegler\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>"); 2465 Write(Translate("form-navn", "Navn")); 2466 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2467 BeginWriteAttribute("placeholder", " placeholder=\'", 222993, "\'", 223038, 1); 2468 WriteAttributeValue("", 223007, Translate("form-navn", "Navn"), 223007, 31, false); 2469 EndWriteAttribute(); 2470 BeginWriteAttribute("value", " value=\'", 223039, "\'", 223078, 1); 2471 WriteAttributeValue("", 223047, UserContext.Current.User?.Name, 223047, 31, false); 2472 EndWriteAttribute(); 2473 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2474 Write(Translate("form-email", "E-mail")); 2475 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\""); 2476 BeginWriteAttribute("placeholder", " placeholder=\'", 223342, "\'", 223390, 1); 2477 WriteAttributeValue("", 223356, Translate("form-email", "E-mail"), 223356, 34, false); 2478 EndWriteAttribute(); 2479 BeginWriteAttribute("value", " value=\'", 223391, "\'", 223431, 1); 2480 WriteAttributeValue("", 223399, UserContext.Current.User?.Email, 223399, 32, false); 2481 EndWriteAttribute(); 2482 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2483 Write(Translate("form-mobile", "Mobil nr.")); 2484 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2485 BeginWriteAttribute("placeholder", " placeholder=\'", 223729, "\'", 223814, 1); 2486 WriteAttributeValue("", 223743, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 223743, 71, false); 2487 EndWriteAttribute(); 2488 BeginWriteAttribute("value", " value=\'", 223815, "\'", 223855, 1); 2489 WriteAttributeValue("", 223823, UserContext.Current.User?.Phone, 223823, 32, false); 2490 EndWriteAttribute(); 2491 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2492 Write(Translate("form-telephone", "Telefon nr.")); 2493 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2494 BeginWriteAttribute("placeholder", " placeholder=\'", 224125, "\'", 224209, 1); 2495 WriteAttributeValue("", 224139, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 224139, 70, false); 2496 EndWriteAttribute(); 2497 BeginWriteAttribute("value", " value=\'", 224210, "\'", 224250, 1); 2498 WriteAttributeValue("", 224218, UserContext.Current.User?.Phone, 224218, 32, false); 2499 EndWriteAttribute(); 2500 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2501 Write(Translate("form-zip", "Post nr")); 2502 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2503 BeginWriteAttribute("placeholder", " placeholder=\'", 224566, "\'", 224644, 1); 2504 WriteAttributeValue("", 224580, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 224580, 64, false); 2505 EndWriteAttribute(); 2506 BeginWriteAttribute("value", " value=\"", 224645, "\"", 224661, 1); 2507 WriteAttributeValue("", 224653, userZip, 224653, 8, false); 2508 EndWriteAttribute(); 2509 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2510 Write(Translate("form-city", "By")); 2511 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>"); 2512 Write(Translate("form-adresse", "Adresse")); 2513 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2514 BeginWriteAttribute("placeholder", " placeholder=\'", 225217, "\'", 225307, 1); 2515 WriteAttributeValue("", 225231, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 225231, 76, false); 2516 EndWriteAttribute(); 2517 BeginWriteAttribute("value", " value=\"", 225308, "\"", 225328, 1); 2518 WriteAttributeValue("", 225316, userAddress, 225316, 12, false); 2519 EndWriteAttribute(); 2520 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2521 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2522 WriteLiteral("</label>\r\n </div>\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\""); 2523 BeginWriteAttribute("placeholder", " placeholder=\'", 225654, "\'", 225732, 1); 2524 WriteAttributeValue("", 225668, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 225668, 64, false); 2525 EndWriteAttribute(); 2526 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>"); 2527 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2528 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\">"); 2529 Write(Translate("KontaktMægler", "Kontakt Mægler")); 2530 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2531 Write(privacyPolicyText); 2532 WriteLiteral(" <a"); 2533 BeginWriteAttribute("href", " href=\"", 226518, "\"", 226542, 2); 2534 WriteAttributeValue("", 226525, "mailto:", 226525, 7, true); 2535 WriteAttributeValue("", 226532, termsMail, 226532, 10, false); 2536 EndWriteAttribute(); 2537 WriteLiteral(">"); 2538 Write(termsMail); 2539 WriteLiteral("</a>.\r\n Læs mere på <a"); 2540 BeginWriteAttribute("href", " href=\"", 226587, "\"", 226621, 1); 2541 WriteAttributeValue("", 226594, settings_Persondatapolitik, 226594, 27, false); 2542 EndWriteAttribute(); 2543 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"gk\" />\r\n <input type=\"hidden\" name=\"origin\""); 2544 BeginWriteAttribute("value", " value=\"", 226764, "\"", 226772, 0); 2545 EndWriteAttribute(); 2546 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2547 BeginWriteAttribute("value", " value=\"", 226822, "\"", 226837, 1); 2548 WriteAttributeValue("", 226830, userID, 226830, 7, false); 2549 EndWriteAttribute(); 2550 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2551 BeginWriteAttribute("value", " value=\"", 226885, "\"", 226909, 1); 2552 WriteAttributeValue("", 226893, Pageview.AreaID, 226893, 16, false); 2553 EndWriteAttribute(); 2554 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2555 BeginWriteAttribute("value", " value=\"", 226958, "\"", 226974, 1); 2556 WriteAttributeValue("", 226966, butikId, 226966, 8, false); 2557 EndWriteAttribute(); 2558 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2559 BeginWriteAttribute("value", " value=\"", 227028, "\"", 227036, 0); 2560 EndWriteAttribute(); 2561 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2562 BeginWriteAttribute("value", " value=\"", 227087, "\"", 227095, 0); 2563 EndWriteAttribute(); 2564 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2565 BeginWriteAttribute("value", " value=\"", 227145, "\"", 227153, 0); 2566 EndWriteAttribute(); 2567 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2568 BeginWriteAttribute("value", " value=\"", 227203, "\"", 227211, 0); 2569 EndWriteAttribute(); 2570 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-maegler-guldkoeber\" style=\"display:none;\">\r\n <h2>"); 2571 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2572 WriteLiteral("</h2>\r\n <p>"); 2573 Write(Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")); 2574 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2575 BeginWriteAttribute("src", " src=\"", 227573, "\"", 227579, 0); 2576 EndWriteAttribute(); 2577 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2578 </div> 2579 <div class=""col-6""> 2580 <p class=""js-maegler-name""></p> 2581 <p class=""js-maegler-address""></p> 2582 <p class=""js-maegler-phone""></p> 2583 <p class=""js-maegler-mail""></p> 2584 </div> 2585 </div> 2586 <p>"); 2587 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2588 WriteLiteral(@"</p> 2589 </div> 2590 </div> 2591 2592 <!-- BESTIL SALGSVURDERING --> 2593 <div id=""panel-salgsvurdering"" class=""panel panel-form""> 2594 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2595 <b></b> 2596 </button> 2597 2598 <form id=""bestil-salgsvurdering"" class=""buyer-advisor-form js-buyer-advisor-form"" method=""POST"" action=""/InboxHandler""> 2599 <h2 class=""js-buyer-advisor-header"">"); 2600 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")); 2601 WriteLiteral("</h2>\r\n <p>"); 2602 Write(Translate("form-salgsvurdering-beskrivelse", "")); 2603 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2604 Write(Translate("form-navn", "Navn")); 2605 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2606 BeginWriteAttribute("placeholder", " placeholder=\'", 228736, "\'", 228825, 1); 2607 WriteAttributeValue("", 228750, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 228750, 75, false); 2608 EndWriteAttribute(); 2609 BeginWriteAttribute("value", " value=\'", 228826, "\'", 228865, 1); 2610 WriteAttributeValue("", 228834, UserContext.Current.User?.Name, 228834, 31, false); 2611 EndWriteAttribute(); 2612 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2613 Write(Translate("form-email", "E-mail")); 2614 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\""); 2615 BeginWriteAttribute("placeholder", " placeholder=\'", 229129, "\'", 229221, 1); 2616 WriteAttributeValue("", 229143, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 229143, 78, false); 2617 EndWriteAttribute(); 2618 BeginWriteAttribute("value", " value=\'", 229222, "\'", 229262, 1); 2619 WriteAttributeValue("", 229230, UserContext.Current.User?.Email, 229230, 32, false); 2620 EndWriteAttribute(); 2621 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2622 Write(Translate("form-mobile", "Mobil nr.")); 2623 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2624 BeginWriteAttribute("placeholder", " placeholder=\'", 229560, "\'", 229652, 1); 2625 WriteAttributeValue("", 229574, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 229574, 78, false); 2626 EndWriteAttribute(); 2627 BeginWriteAttribute("value", " value=\'", 229653, "\'", 229693, 1); 2628 WriteAttributeValue("", 229661, UserContext.Current.User?.Phone, 229661, 32, false); 2629 EndWriteAttribute(); 2630 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2631 Write(Translate("form-telephone", "Telefon nr.")); 2632 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2633 BeginWriteAttribute("placeholder", " placeholder=\'", 229963, "\'", 230054, 1); 2634 WriteAttributeValue("", 229977, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 229977, 77, false); 2635 EndWriteAttribute(); 2636 BeginWriteAttribute("value", " value=\'", 230055, "\'", 230095, 1); 2637 WriteAttributeValue("", 230063, UserContext.Current.User?.Phone, 230063, 32, false); 2638 EndWriteAttribute(); 2639 WriteLiteral(" />\r\n </div>\r\n\r\n </div>\r\n\r\n <h3>"); 2640 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2641 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2642 Write(Translate("form-zip", "Post nr")); 2643 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2644 BeginWriteAttribute("placeholder", " placeholder=\'", 230515, "\'", 230593, 1); 2645 WriteAttributeValue("", 230529, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 230529, 64, false); 2646 EndWriteAttribute(); 2647 BeginWriteAttribute("value", " value=\"", 230594, "\"", 230610, 1); 2648 WriteAttributeValue("", 230602, userZip, 230602, 8, false); 2649 EndWriteAttribute(); 2650 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2651 Write(Translate("form-city", "By")); 2652 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>"); 2653 Write(Translate("form-adresse", "Adresse")); 2654 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2655 BeginWriteAttribute("placeholder", " placeholder=\'", 231164, "\'", 231254, 1); 2656 WriteAttributeValue("", 231178, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 231178, 76, false); 2657 EndWriteAttribute(); 2658 BeginWriteAttribute("value", " value=\"", 231255, "\"", 231275, 1); 2659 WriteAttributeValue("", 231263, userAddress, 231263, 12, false); 2660 EndWriteAttribute(); 2661 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2662 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2663 WriteLiteral(@"</label> 2664 </div> 2665 2666 <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""> 2667 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2668 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2669 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\""); 2670 BeginWriteAttribute("placeholder", " placeholder=\'", 232045, "\'", 232123, 1); 2671 WriteAttributeValue("", 232059, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 232059, 64, false); 2672 EndWriteAttribute(); 2673 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>"); 2674 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")); 2675 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\""); 2676 BeginWriteAttribute("id", " id=\"", 232569, "\"", 232574, 0); 2677 EndWriteAttribute(); 2678 WriteLiteral(" name=\"choose-broker\""); 2679 BeginWriteAttribute("value", " value=\"", 232596, "\"", 232604, 0); 2680 EndWriteAttribute(); 2681 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\""); 2682 BeginWriteAttribute("for", " for=\"", 232670, "\"", 232676, 0); 2683 EndWriteAttribute(); 2684 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"); 2685 BeginWriteAttribute("src", " src=\"", 232922, "\"", 232928, 0); 2686 EndWriteAttribute(); 2687 WriteLiteral(@" class=""img-fluid js-broker-image""> 2688 </div> 2689 <div class=""col-6""> 2690 <span class=""d-block""> 2691 <strong class=""js-choose-broker-name""></strong> 2692 </span> 2693 <span class=""js-choose-broker-address""></span> 2694 <input type=""hidden"" class=""js-choose-broker-phone"""); 2695 BeginWriteAttribute("value", " value=\"", 233340, "\"", 233348, 0); 2696 EndWriteAttribute(); 2697 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\""); 2698 BeginWriteAttribute("value", " value=\"", 233429, "\"", 233437, 0); 2699 EndWriteAttribute(); 2700 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\">"); 2701 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")); 2702 WriteLiteral(@"</h3> 2703 <div class=""js-choose-broker col-12""> 2704 </div> 2705 2706 </div> 2707 2708 <div class=""form-group mt-4""> 2709 <div class=""checkbox""> 2710 <label> 2711 <input type=""checkbox"" name=""kontaktmigok"" required /> 2712 2713 <span class=""consent-checkbox"">"); 2714 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2715 WriteLiteral(@"</span> 2716 2717 </label> 2718 </div> 2719 </div> 2720 <div class=""form-group""> 2721 <div class=""row""> 2722 <div class=""col-12""> 2723 <button type=""submit"" class=""btn btn-green btn-block js-buyer-advisor-button"">"); 2724 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")); 2725 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2726 Write(privacyPolicyText); 2727 WriteLiteral(" <a"); 2728 BeginWriteAttribute("href", " href=\"", 234597, "\"", 234621, 2); 2729 WriteAttributeValue("", 234604, "mailto:", 234604, 7, true); 2730 WriteAttributeValue("", 234611, termsMail, 234611, 10, false); 2731 EndWriteAttribute(); 2732 WriteLiteral(">"); 2733 Write(termsMail); 2734 WriteLiteral("</a>.\r\n Læs mere på <a"); 2735 BeginWriteAttribute("href", " href=\"", 234666, "\"", 234700, 1); 2736 WriteAttributeValue("", 234673, settings_Persondatapolitik, 234673, 27, false); 2737 EndWriteAttribute(); 2738 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\""); 2739 BeginWriteAttribute("value", " value=\"", 234877, "\"", 234885, 0); 2740 EndWriteAttribute(); 2741 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2742 BeginWriteAttribute("value", " value=\"", 234935, "\"", 234950, 1); 2743 WriteAttributeValue("", 234943, userID, 234943, 7, false); 2744 EndWriteAttribute(); 2745 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2746 BeginWriteAttribute("value", " value=\"", 234998, "\"", 235022, 1); 2747 WriteAttributeValue("", 235006, Pageview.AreaID, 235006, 16, false); 2748 EndWriteAttribute(); 2749 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning\" name=\"boligvisning\""); 2750 BeginWriteAttribute("value", " value=\"", 235094, "\"", 235102, 0); 2751 EndWriteAttribute(); 2752 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-butikid\" name=\"butikId\""); 2753 BeginWriteAttribute("value", " value=\"", 235185, "\"", 235193, 0); 2754 EndWriteAttribute(); 2755 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-sagsnr\" name=\"sagsnr\""); 2756 BeginWriteAttribute("value", " value=\"", 235274, "\"", 235282, 0); 2757 EndWriteAttribute(); 2758 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\""); 2759 BeginWriteAttribute("value", " value=\"", 235333, "\"", 235389, 1); 2760 WriteAttributeValue("", 235341, Dynamicweb.Context.Current.Request["ProductId"], 235341, 48, false); 2761 EndWriteAttribute(); 2762 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2763 BeginWriteAttribute("value", " value=\"", 235443, "\"", 235451, 0); 2764 EndWriteAttribute(); 2765 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2766 BeginWriteAttribute("value", " value=\"", 235502, "\"", 235510, 0); 2767 EndWriteAttribute(); 2768 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2769 BeginWriteAttribute("value", " value=\"", 235560, "\"", 235568, 0); 2770 EndWriteAttribute(); 2771 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2772 BeginWriteAttribute("value", " value=\"", 235618, "\"", 235626, 0); 2773 EndWriteAttribute(); 2774 WriteLiteral(" />\r\n <input class=\"js-value-check\" type=\"hidden\" name=\"valueCheck\""); 2775 BeginWriteAttribute("value", " value=\"", 235701, "\"", 235709, 0); 2776 EndWriteAttribute(); 2777 WriteLiteral(" />\r\n <input class=\"js-green-appraisal\" type=\"hidden\" name=\"greenAppraisal\""); 2778 BeginWriteAttribute("value", " value=\"", 235792, "\"", 235800, 0); 2779 EndWriteAttribute(); 2780 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>"); 2781 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2782 WriteLiteral("</h2>\r\n <p>"); 2783 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")); 2784 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2785 BeginWriteAttribute("src", " src=\"", 236162, "\"", 236168, 0); 2786 EndWriteAttribute(); 2787 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2788 </div> 2789 <div class=""col-6""> 2790 <p class=""js-maegler-name""></p> 2791 <p class=""js-maegler-address""></p> 2792 <p class=""js-maegler-phone""></p> 2793 <p class=""js-maegler-mail""></p> 2794 </div> 2795 </div> 2796 <p>"); 2797 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2798 WriteLiteral(@"</p> 2799 </div> 2800 </div> 2801 2802 <!-- BESTIL SALGSVURDERING GULDKØBER --> 2803 <div id=""panel-salgsvurdering-guldkoeber"" class=""panel panel-form""> 2804 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2805 <b></b> 2806 </button> 2807 2808 <form id=""bestil-salgsvurdering-guldkoeber"" method=""POST"" action=""/InboxHandler""> 2809 <h2>"); 2810 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")); 2811 WriteLiteral("</h2>\r\n <p>"); 2812 Write(Translate("form-salgsvurdering-beskrivelse", "")); 2813 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2814 Write(Translate("form-navn", "Navn")); 2815 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2816 BeginWriteAttribute("placeholder", " placeholder=\'", 237276, "\'", 237365, 1); 2817 WriteAttributeValue("", 237290, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 237290, 75, false); 2818 EndWriteAttribute(); 2819 BeginWriteAttribute("value", " value=\'", 237366, "\'", 237405, 1); 2820 WriteAttributeValue("", 237374, UserContext.Current.User?.Name, 237374, 31, false); 2821 EndWriteAttribute(); 2822 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2823 Write(Translate("form-email", "E-mail")); 2824 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\""); 2825 BeginWriteAttribute("placeholder", " placeholder=\'", 237669, "\'", 237761, 1); 2826 WriteAttributeValue("", 237683, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 237683, 78, false); 2827 EndWriteAttribute(); 2828 BeginWriteAttribute("value", " value=\'", 237762, "\'", 237802, 1); 2829 WriteAttributeValue("", 237770, UserContext.Current.User?.Email, 237770, 32, false); 2830 EndWriteAttribute(); 2831 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2832 Write(Translate("form-telephone", "Telefon nr.")); 2833 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2834 BeginWriteAttribute("placeholder", " placeholder=\'", 238111, "\'", 238202, 1); 2835 WriteAttributeValue("", 238125, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 238125, 77, false); 2836 EndWriteAttribute(); 2837 BeginWriteAttribute("value", " value=\'", 238203, "\'", 238243, 1); 2838 WriteAttributeValue("", 238211, UserContext.Current.User?.Phone, 238211, 32, false); 2839 EndWriteAttribute(); 2840 WriteLiteral(" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2841 Write(Translate("form-mobile", "Mobil nr.")); 2842 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2843 BeginWriteAttribute("placeholder", " placeholder=\'", 238493, "\'", 238585, 1); 2844 WriteAttributeValue("", 238507, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 238507, 78, false); 2845 EndWriteAttribute(); 2846 BeginWriteAttribute("value", " value=\'", 238586, "\'", 238626, 1); 2847 WriteAttributeValue("", 238594, UserContext.Current.User?.Phone, 238594, 32, false); 2848 EndWriteAttribute(); 2849 WriteLiteral(" required />\r\n </div>\r\n </div>\r\n\r\n <h3>"); 2850 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2851 WriteLiteral("</h3>\r\n\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2852 Write(Translate("form-zip", "Post nr")); 2853 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2854 BeginWriteAttribute("placeholder", " placeholder=\'", 239055, "\'", 239133, 1); 2855 WriteAttributeValue("", 239069, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 239069, 64, false); 2856 EndWriteAttribute(); 2857 BeginWriteAttribute("value", " value=\"", 239134, "\"", 239150, 1); 2858 WriteAttributeValue("", 239142, userZip, 239142, 8, false); 2859 EndWriteAttribute(); 2860 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2861 Write(Translate("form-city", "By")); 2862 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>"); 2863 Write(Translate("form-adresse", "Adresse")); 2864 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2865 BeginWriteAttribute("placeholder", " placeholder=\'", 239704, "\'", 239794, 1); 2866 WriteAttributeValue("", 239718, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 239718, 76, false); 2867 EndWriteAttribute(); 2868 BeginWriteAttribute("value", " value=\"", 239795, "\"", 239815, 1); 2869 WriteAttributeValue("", 239803, userAddress, 239803, 12, false); 2870 EndWriteAttribute(); 2871 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2872 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2873 WriteLiteral(@"</label> 2874 </div> 2875 2876 <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""> 2877 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2878 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2879 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\""); 2880 BeginWriteAttribute("placeholder", " placeholder=\'", 240585, "\'", 240663, 1); 2881 WriteAttributeValue("", 240599, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 240599, 64, false); 2882 EndWriteAttribute(); 2883 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>"); 2884 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")); 2885 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\""); 2886 BeginWriteAttribute("id", " id=\"", 241107, "\"", 241112, 0); 2887 EndWriteAttribute(); 2888 WriteLiteral(" name=\"choose-broker-gk\""); 2889 BeginWriteAttribute("value", " value=\"", 241137, "\"", 241145, 0); 2890 EndWriteAttribute(); 2891 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\""); 2892 BeginWriteAttribute("for", " for=\"", 241211, "\"", 241217, 0); 2893 EndWriteAttribute(); 2894 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"); 2895 BeginWriteAttribute("src", " src=\"", 241463, "\"", 241469, 0); 2896 EndWriteAttribute(); 2897 WriteLiteral(@" class=""img-fluid js-broker-image""> 2898 </div> 2899 <div class=""col-6""> 2900 <span class=""d-block""> 2901 <strong class=""js-choose-broker-name""></strong> 2902 </span> 2903 <span class=""js-choose-broker-address""></span> 2904 <input type=""hidden"" class=""js-choose-broker-phone"""); 2905 BeginWriteAttribute("value", " value=\"", 241881, "\"", 241889, 0); 2906 EndWriteAttribute(); 2907 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\""); 2908 BeginWriteAttribute("value", " value=\"", 241970, "\"", 241978, 0); 2909 EndWriteAttribute(); 2910 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\">"); 2911 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")); 2912 WriteLiteral(@"</h3> 2913 <div class=""js-choose-broker col-12""> 2914 </div> 2915 2916 </div> 2917 2918 2919 <div class=""form-group""> 2920 <div class=""row""> 2921 <div class=""col-12""> 2922 <button type=""submit"" class=""btn btn-green btn-block"">"); 2923 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")); 2924 WriteLiteral(@"</button> 2925 </div> 2926 </div> 2927 </div> 2928 <div class=""form-group""> 2929 <div class=""checkbox""> 2930 <label> 2931 <input type=""checkbox"" name=""kontaktmigok"" required /> 2932 2933 <span>"); 2934 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2935 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2936 Write(privacyPolicyText); 2937 WriteLiteral(" <a"); 2938 BeginWriteAttribute("href", " href=\"", 243086, "\"", 243110, 2); 2939 WriteAttributeValue("", 243093, "mailto:", 243093, 7, true); 2940 WriteAttributeValue("", 243100, termsMail, 243100, 10, false); 2941 EndWriteAttribute(); 2942 WriteLiteral(">"); 2943 Write(termsMail); 2944 WriteLiteral("</a>.\r\n Læs mere på <a"); 2945 BeginWriteAttribute("href", " href=\"", 243155, "\"", 243189, 1); 2946 WriteAttributeValue("", 243162, settings_Persondatapolitik, 243162, 27, false); 2947 EndWriteAttribute(); 2948 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\""); 2949 BeginWriteAttribute("value", " value=\"", 243366, "\"", 243374, 0); 2950 EndWriteAttribute(); 2951 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2952 BeginWriteAttribute("value", " value=\"", 243424, "\"", 243439, 1); 2953 WriteAttributeValue("", 243432, userID, 243432, 7, false); 2954 EndWriteAttribute(); 2955 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2956 BeginWriteAttribute("value", " value=\"", 243487, "\"", 243511, 1); 2957 WriteAttributeValue("", 243495, Pageview.AreaID, 243495, 16, false); 2958 EndWriteAttribute(); 2959 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning-gk\" name=\"boligvisning\""); 2960 BeginWriteAttribute("value", " value=\"", 243586, "\"", 243594, 0); 2961 EndWriteAttribute(); 2962 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-butikid\" name=\"butikId\""); 2963 BeginWriteAttribute("value", " value=\"", 243680, "\"", 243688, 0); 2964 EndWriteAttribute(); 2965 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-sagsnr\" name=\"sagsnr\""); 2966 BeginWriteAttribute("value", " value=\"", 243772, "\"", 243780, 0); 2967 EndWriteAttribute(); 2968 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\""); 2969 BeginWriteAttribute("value", " value=\"", 243831, "\"", 243887, 1); 2970 WriteAttributeValue("", 243839, Dynamicweb.Context.Current.Request["ProductId"], 243839, 48, false); 2971 EndWriteAttribute(); 2972 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2973 BeginWriteAttribute("value", " value=\"", 243941, "\"", 243949, 0); 2974 EndWriteAttribute(); 2975 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2976 BeginWriteAttribute("value", " value=\"", 244000, "\"", 244008, 0); 2977 EndWriteAttribute(); 2978 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2979 BeginWriteAttribute("value", " value=\"", 244058, "\"", 244066, 0); 2980 EndWriteAttribute(); 2981 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2982 BeginWriteAttribute("value", " value=\"", 244116, "\"", 244124, 0); 2983 EndWriteAttribute(); 2984 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>"); 2985 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2986 WriteLiteral("</h2>\r\n <p>"); 2987 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")); 2988 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2989 BeginWriteAttribute("src", " src=\"", 244486, "\"", 244492, 0); 2990 EndWriteAttribute(); 2991 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2992 </div> 2993 <div class=""col-6""> 2994 <p class=""js-maegler-name""></p> 2995 <p class=""js-maegler-address""></p> 2996 <p class=""js-maegler-phone""></p> 2997 <p class=""js-maegler-mail""></p> 2998 </div> 2999 </div> 3000 <p>"); 3001 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 3002 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"); 3003 3004 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js")); 3005 WriteLiteral(" <script type=\"text/javascript\""); 3006 BeginWriteAttribute("src", " src=\'", 245293, "\'", 245397, 3); 3007 WriteAttributeValue("", 245299, TemplateUrl, 245299, 14, false); 3008 WriteAttributeValue("", 245313, "assets/webpack/js/3rdparty/viamapstrap.js?", 245313, 42, true); 3009 WriteAttributeValue("", 245355, viamapstrapFileInfo.LastWriteTime.Ticks, 245355, 42, false); 3010 EndWriteAttribute(); 3011 WriteLiteral(" async></script>\r\n"); 3012 3013 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js")); 3014 WriteLiteral(" <script type=\"text/javascript\""); 3015 BeginWriteAttribute("src", " src=\'", 245600, "\'", 245687, 3); 3016 WriteAttributeValue("", 245606, TemplateUrl, 245606, 14, false); 3017 WriteAttributeValue("", 245620, "assets/dist/bundle.app.min.js?", 245620, 30, true); 3018 WriteAttributeValue("", 245650, bundleFileInfo.LastWriteTime.Ticks, 245650, 37, false); 3019 EndWriteAttribute(); 3020 WriteLiteral(" async></script>\r\n"); 3021 WriteLiteral("\r\n "); 3022 Write(RenderSnippet("JavaScriptBottom")); 3023 WriteLiteral("\r\n\r\n"); 3024 if (Context.Current.Request.QueryString["ShowLogin"] == "true") 3025 { 3026 WriteLiteral(" <input class=\"js-showLogin\" value=\"true\" />\r\n"); 3027 } 3028 WriteLiteral("\r\n"); 3029 if (!string.IsNullOrEmpty(settings_ConduzeId)) 3030 { 3031 WriteLiteral(" <script type=\"text/javascript\" id=\"conduze-sdk\""); 3032 BeginWriteAttribute("src", " src=\"", 246011, "\"", 246072, 3); 3033 WriteAttributeValue("", 246017, "https://cdn.conduze.com/", 246017, 24, true); 3034 WriteAttributeValue("", 246041, settings_ConduzeId, 246041, 19, false); 3035 WriteAttributeValue("", 246060, "/tracking.js", 246060, 12, true); 3036 EndWriteAttribute(); 3037 WriteLiteral(" async></script>\r\n"); 3038 } 3039 WriteLiteral("\r\n"); 3040 if (!string.IsNullOrEmpty(settings_Weply)) 3041 { 3042 WriteLiteral(" <script"); 3043 BeginWriteAttribute("src", " src=\"", 246171, "\"", 246222, 2); 3044 WriteAttributeValue("", 246177, "https://app.weply.chat/widget/", 246177, 30, true); 3045 WriteAttributeValue("", 246207, settings_Weply, 246207, 15, false); 3046 EndWriteAttribute(); 3047 WriteLiteral(" async></script>\r\n"); 3048 } 3049 WriteLiteral("\r\n</body>\r\n</html>\r\n\r\n"); 3050 } 3051 #pragma warning restore 1998 3052 3053 void RenderErhvervsTypeCheckboxes(string productGroupFilter) 3054 { 3055 WriteLiteral(@" <div class=""col-xs-6 col-md-4""> 3056 <div class=""checkbox""> 3057 <label> 3058 <input type=""checkbox"" name=""propertytype"" value=""bolig/erhverv, kombineret erhverv og bolig, byejendom (kontor, butik, beboelse)"" /> 3059 <span>Bolig/erhverv</span> 3060 </label> 3061 </div> 3062 <div class=""checkbox""> 3063 <label> 3064 <input type=""checkbox"" name=""propertytype"" value=""erhvervsgrund"" /> 3065 <span>Erhvervsgrund</span> 3066 </label> 3067 </div> 3068 <div class=""checkbox""> 3069 <label> 3070 <input type=""checkbox"" name=""propertytype"" value=""boligudlejning"" /> 3071 <span>Boligudlejningsejendom</span> 3072 </label> 3073 </div> 3074 <div class=""checkbox""> 3075 <label> 3076 <input type=""checkbox"" name=""propertytype"" value=""kontor, klinik, kontorhotel, showroom, under"); 3077 WriteLiteral(@"visningslokaler"" /> 3078 <span>Kontor</span> 3079 </label> 3080 </div> 3081 </div> 3082 <div class=""col-xs-6 col-md-4""> 3083 <div class=""checkbox""> 3084 <label> 3085 <input type=""checkbox"" name=""propertytype"" value=""butik / detail, butik / detailhandel"" /> 3086 <span>Butik/detailhandel</span> 3087 </label> 3088 </div> 3089 <div class=""checkbox""> 3090 <label> 3091 <input type=""checkbox"" name=""propertytype"" value=""industri / logistik, håndværk, industri, kontor / lager, logistik"" /> 3092 <span>Produktion/lager</span> 3093 </label> 3094 </div> 3095 <div class=""checkbox""> 3096 <label> 3097 <input type=""checkbox"" name=""propertytype"" value=""hotel - kursusejendom, restaurant"" /> 3098 <span>Hotel og restaurant</span> 3099 </label> 3100 </div> 3101 <div c"); 3102 WriteLiteral(@"lass=""checkbox""> 3103 <label> 3104 <input type=""checkbox"" name=""propertytype"" value=""projekt ejendom"" /> 3105 <span>Projektejendom</span> 3106 </label> 3107 </div> 3108 </div> 3109 <div class=""col-xs-6 col-md-4""> 3110 <div class=""checkbox""> 3111 <label> 3112 <input type=""checkbox"" name=""propertytype"" value=""andet"" /> 3113 <span>Andet</span> 3114 </label> 3115 </div> 3116 </div> 3117 "); 3118 WriteLiteral(" <input type=\"hidden\" name=\"propertycategory\" value=\"erhverv, udlejning\" />\r\n <input type=\"hidden\" name=\"filtrering\""); 3119 BeginWriteAttribute("value", " value=\"", 3445, "\"", 3472, 1); 3120 WriteAttributeValue("", 3453, productGroupFilter, 3453, 19, false); 3121 EndWriteAttribute(); 3122 WriteLiteral(" />\r\n"); 3123 } 3124 void RenderBoligtypeCheckboxes() 3125 { 3126 WriteLiteral(@" <div class=""col-6 col-md-4""> 3127 <div class=""checkbox""> 3128 <label> 3129 <input type=""checkbox"" name=""propertytype"" value=""villa"" /> 3130 <span>Villa</span> 3131 </label> 3132 </div> 3133 <div class=""checkbox""> 3134 <label> 3135 <input type=""checkbox"" name=""propertytype"" value=""rækkehus"" /> 3136 <span>Rækkehus</span> 3137 </label> 3138 </div> 3139 <div class=""checkbox""> 3140 <label> 3141 <input type=""checkbox"" name=""propertytype"" value=""villalejlighed"" /> 3142 <span>Villalejlighed</span> 3143 </label> 3144 </div> 3145 <div class=""checkbox""> 3146 <label> 3147 <input type=""checkbox"" name=""propertytype"" value=""andelsbolig"" /> 3148 <span>Andelsbolig</span> 3149 </label> 3150 </div> 3151 </div> 3152 <div class=""co"); 3153 WriteLiteral(@"l-6 col-md-4""> 3154 <div class=""checkbox""> 3155 <label> 3156 <input type=""checkbox"" name=""propertytype"" value=""fritidshus, fritidsbolig"" /> 3157 <span>Fritidsbolig</span> 3158 </label> 3159 </div> 3160 <div class=""checkbox""> 3161 <label> 3162 <input type=""checkbox"" name=""propertytype"" value=""ejerlejlighed"" class=""specialOption"" data-disable-slider=""#grundareal"" data-disable-slider-ranges=""#grundarealmin,#grundarealmax"" /> 3163 <span>Ejerlejlighed</span> 3164 </label> 3165 </div> 3166 <div class=""checkbox""> 3167 <label> 3168 <input type=""checkbox"" name=""propertytype"" value=""helårsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" /> 3169 <span>Helårsgrund</span> 3170 </label> 3171 </div> 3172 <div "); 3173 WriteLiteral(@"class=""checkbox""> 3174 <label> 3175 <input type=""checkbox"" name=""propertytype"" value=""fritidsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" /> 3176 <span>Fritidsgrund</span> 3177 </label> 3178 </div> 3179 </div> 3180 <div class=""col-6 col-md-4""> 3181 <div class=""checkbox""> 3182 <label> 3183 <input type=""checkbox"" name=""propertytype"" value=""landejendom, lystejendom"" class=""specialOption"" data-disable-checkbox=""true"" /> 3184 <span>Landejendom</span> 3185 </label> 3186 </div> 3187 <div class=""checkbox""> 3188 <label> 3189 <input type=""checkbox"" name=""propertytype"" value=""erhverv"" class=""specialOption"" data-disable-checkbox=""true"" data-disable-slider=""#roomsslider"" data-disable-slider-ranges=""#roomsmin"" /> 3190 <span>Erhverv<"); 3191 WriteLiteral("/span>\r\n </label>\r\n </div>\r\n </div>\r\n"); 3192 } 3193 3194 void RenderChecked(string queryString) 3195 { 3196 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString) 3197 { 3198 Write("checked"); 3199 3200 } 3201 } 3202 3203 void RenderBoligtypeCheckboxesDropdown() 3204 { 3205 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){ 3206 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" }, 3207 { "Andelsbolig", "andelsbolig" } 3208 }; 3209 foreach (KeyValuePair<string, string> type in propertyTypes) 3210 { 3211 bool ischecked = false; 3212 string[] propertytypeSplit = new string[0]; 3213 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"])) 3214 { 3215 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(','); 3216 } 3217 foreach (var propertytypeParams in propertytypeSplit) 3218 { 3219 if (propertytypeParams == type.Value) 3220 { 3221 ischecked = true; 3222 } 3223 } 3224 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3225 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3226 WriteLiteral("\r\n <input type=\"checkbox\" name=\"propertytype\""); 3227 BeginWriteAttribute("value", " value=\"", 8068, "\"", 8087, 1); 3228 WriteAttributeValue("", 8076, type.Value, 8076, 11, false); 3229 EndWriteAttribute(); 3230 WriteLiteral(" class=\"js-input-check datavalue js-datavalue js-count\" data-val=\""); 3231 Write(type.Key); 3232 WriteLiteral("\" onchange=\"submitFilter()\""); 3233 BeginWriteAttribute("checked", " checked=\"", 8190, "\"", 8210, 1); 3234 WriteAttributeValue("", 8200, ischecked, 8200, 10, false); 3235 EndWriteAttribute(); 3236 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3237 } 3238 3239 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3240 Write(Translate("Smartpage:Search.DropDown.Blandet Bolig/Erhverv", "Blandet Bolig/Erhverv")); 3241 WriteLiteral("\r\n"); 3242 3243 bool blboligcheck = false; 3244 if (Dynamicweb.Context.Current.Request.QueryString["propertycategory"] == "Blandet Bolig/Erhverv") 3245 { 3246 blboligcheck = true; 3247 } 3248 WriteLiteral(" <input type=\"checkbox\" name=\"propertycategory\" value=\"Blandet Bolig/Erhverv\" class=\"specialOption js-input-check js-datavalue js-count\" data-disable-checkbox=\"true\" data-disable-slider=\"#roomsslider\" data-disable-slider-ranges=\"#roomsmin\""); 3249 BeginWriteAttribute("checked", " checked=\"", 9043, "\"", 9066, 1); 3250 WriteAttributeValue("", 9053, blboligcheck, 9053, 13, false); 3251 EndWriteAttribute(); 3252 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3253 3254 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){ 3255 { "Fritidsbolig", "fritidshus, fritidsbolig" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" }, 3256 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" } 3257 }; 3258 foreach (KeyValuePair<string, string> type in propertyTypes2) 3259 { 3260 bool ischecked = false; 3261 string[] propertytypeSplit2 = new string[0]; 3262 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"])) 3263 { 3264 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(','); 3265 } 3266 foreach (var propertytypeParams in propertytypeSplit2) 3267 { 3268 if (propertytypeParams == type.Value) 3269 { 3270 ischecked = true; 3271 } 3272 } 3273 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3274 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3275 WriteLiteral("\r\n"); 3276 if (type.Value == "ejerlejlighed") 3277 { 3278 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3279 BeginWriteAttribute("value", " value=\"", 10467, "\"", 10486, 1); 3280 WriteAttributeValue("", 10475, type.Value, 10475, 11, false); 3281 EndWriteAttribute(); 3282 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#grundareal\" data-disable-slider-ranges=\"#grundarealmin,#grundarealmax\" data-val=\""); 3283 Write(type.Key); 3284 WriteLiteral("\" onchange=\"submitFilter()\""); 3285 BeginWriteAttribute("checked", " checked=\"", 10660, "\"", 10680, 1); 3286 WriteAttributeValue("", 10670, ischecked, 10670, 10, false); 3287 EndWriteAttribute(); 3288 WriteLiteral(" />\r\n"); 3289 } 3290 else if (type.Value == "helårsgrund") 3291 { 3292 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3293 BeginWriteAttribute("value", " value=\"", 10857, "\"", 10876, 1); 3294 WriteAttributeValue("", 10865, type.Value, 10865, 11, false); 3295 EndWriteAttribute(); 3296 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\""); 3297 Write(type.Key); 3298 WriteLiteral("\" onchange=\"submitFilter()\""); 3299 BeginWriteAttribute("checked", " checked=\"", 11073, "\"", 11093, 1); 3300 WriteAttributeValue("", 11083, ischecked, 11083, 10, false); 3301 EndWriteAttribute(); 3302 WriteLiteral(" />\r\n"); 3303 } 3304 else if (type.Value == "fritidsgrund") 3305 { 3306 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3307 BeginWriteAttribute("value", " value=\"", 11271, "\"", 11290, 1); 3308 WriteAttributeValue("", 11279, type.Value, 11279, 11, false); 3309 EndWriteAttribute(); 3310 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\""); 3311 Write(type.Key); 3312 WriteLiteral("\" onchange=\"submitFilter()\""); 3313 BeginWriteAttribute("checked", " checked=\"", 11487, "\"", 11507, 1); 3314 WriteAttributeValue("", 11497, ischecked, 11497, 10, false); 3315 EndWriteAttribute(); 3316 WriteLiteral(" />\r\n"); 3317 } 3318 else 3319 { 3320 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3321 BeginWriteAttribute("value", " value=\"", 11651, "\"", 11670, 1); 3322 WriteAttributeValue("", 11659, type.Value, 11659, 11, false); 3323 EndWriteAttribute(); 3324 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3325 Write(type.Key); 3326 WriteLiteral("\" onchange=\"submitFilter()\""); 3327 BeginWriteAttribute("checked", " checked=\"", 11751, "\"", 11771, 1); 3328 WriteAttributeValue("", 11761, ischecked, 11761, 10, false); 3329 EndWriteAttribute(); 3330 WriteLiteral(" />\r\n"); 3331 } 3332 WriteLiteral(" <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3333 } 3334 } 3335 3336 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false) 3337 { 3338 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3339 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" }, 3340 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" } 3341 }; 3342 var submitonchange = ""; 3343 if (submitOnChange) 3344 { 3345 submitonchange = "onchange='submitFilter()'"; 3346 } 3347 3348 foreach (KeyValuePair<string, string> type in erhverType) 3349 { 3350 string ischecked = ""; 3351 string[] olineParamsSplit = new string[0]; 3352 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"])) 3353 { 3354 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(','); 3355 } 3356 foreach (var olineParams in olineParamsSplit) 3357 { 3358 if (olineParams == type.Value) 3359 { 3360 ischecked = "checked"; 3361 } 3362 } 3363 3364 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3365 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3366 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\""); 3367 BeginWriteAttribute("value", " value=\"", 13415, "\"", 13434, 1); 3368 WriteAttributeValue("", 13423, type.Value, 13423, 11, false); 3369 EndWriteAttribute(); 3370 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3371 Write(type.Key); 3372 WriteLiteral("\" "); 3373 Write(submitonchange); 3374 WriteLiteral(" "); 3375 Write(ischecked); 3376 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3377 } 3378 3379 3380 bool ischeckedpropertycat = false; 3381 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertycategory"])) 3382 { 3383 if (Dynamicweb.Context.Current.Request.QueryString["propertycategory"] == "Blandet Bolig/Erhverv") 3384 { 3385 ischeckedpropertycat = true; 3386 } 3387 } 3388 WriteLiteral(" <li>\r\n <label class=\"checkbox-container\">\r\n "); 3389 Write(Translate("Smartpage:Search.DropDown.Blandet Bolig/Erhverv", "Blandet Bolig/Erhverv")); 3390 WriteLiteral("\r\n <input type=\"checkbox\" name=\"propertycategory\" value=\"Blandet Bolig/Erhverv\" class=\"js-input-check datavalue\" data-val=\"Blandet Bolig/Erhverv\" onchange=\"submitFilter()\""); 3391 BeginWriteAttribute("checked", " checked=\"", 14347, "\"", 14378, 1); 3392 WriteAttributeValue("", 14357, ischeckedpropertycat, 14357, 21, false); 3393 EndWriteAttribute(); 3394 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3395 } 3396 3397 void RenderBoligTypeErhvervInvest(bool submitOnChange = false) 3398 { 3399 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3400 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" }, 3401 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" } 3402 }; 3403 3404 foreach (KeyValuePair<string, string> type in erhverType) 3405 { 3406 bool ischecked = false; 3407 string[] olineParamsSplit = new string[0]; 3408 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"])) 3409 { 3410 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(','); 3411 } 3412 foreach (var olineParams in olineParamsSplit) 3413 { 3414 if (olineParams == type.Value) 3415 { 3416 ischecked = true; 3417 } 3418 } 3419 3420 WriteLiteral(" <li>\r\n <label class=\"checkbox-container\">\r\n "); 3421 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3422 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\""); 3423 BeginWriteAttribute("value", " value=\"", 15865, "\"", 15884, 1); 3424 WriteAttributeValue("", 15873, type.Value, 15873, 11, false); 3425 EndWriteAttribute(); 3426 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3427 Write(type.Key); 3428 WriteLiteral("\" onchange=\"submitFilter()\""); 3429 BeginWriteAttribute("checked", " checked=\"", 15965, "\"", 15985, 1); 3430 WriteAttributeValue("", 15975, ischecked, 15975, 10, false); 3431 EndWriteAttribute(); 3432 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3433 } 3434 } 3435 int GetWebsiteSettingsPageId(string pageSysName) 3436 { 3437 int sideId = 0; 3438 3439 var pw = Dynamicweb.Frontend.PageView.Current(); 3440 3441 string settingsItemId = "1"; 3442 3443 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true") 3444 { 3445 settingsItemId = "2"; 3446 } 3447 3448 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId); 3449 3450 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName)) 3451 { 3452 return sideId; 3453 } 3454 3455 string boligsideLink = settingsItem[pageSysName] as String; 3456 string linkPrefix = "Default.aspx?ID="; 3457 3458 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower())) 3459 { 3460 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId); 3461 } 3462 3463 return sideId; 3464 } 3465 3466 int GetPageSettingsPageId(string pageSysName) 3467 { 3468 int sideId = 0; 3469 3470 var pw = Dynamicweb.Frontend.PageView.Current(); 3471 3472 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName)) 3473 { 3474 return sideId; 3475 } 3476 3477 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String; 3478 string linkPrefix = "Default.aspx?ID="; 3479 3480 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower())) 3481 { 3482 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId); 3483 } 3484 3485 return sideId; 3486 } 3487 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname) 3488 { 3489 WriteLiteral(" <select"); 3490 BeginWriteAttribute("class", " class=\"", 17928, "\"", 17983, 5); 3491 WriteAttributeValue("", 17936, "form-control", 17936, 12, true); 3492 WriteAttributeValue(" ", 17948, "d-block", 17949, 8, true); 3493 WriteAttributeValue(" ", 17956, "d-lg-none", 17957, 10, true); 3494 WriteAttributeValue(" ", 17966, "mb-10", 17967, 6, true); 3495 WriteAttributeValue(" ", 17972, className, 17973, 10, false); 3496 EndWriteAttribute(); 3497 WriteLiteral(" onchange=\"submitFilter()\""); 3498 BeginWriteAttribute("name", " name=\"", 18010, "\"", 18027, 1); 3499 WriteAttributeValue("", 18017, inputname, 18017, 10, false); 3500 EndWriteAttribute(); 3501 WriteLiteral(">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3502 Write(Translate("Smartpage:Search.Placeholder." + name + "", "" + name + "")); 3503 WriteLiteral("</option>\r\n\r\n"); 3504 for (var i = 0; i <= max; i += step) 3505 { 3506 var selected = string.Empty; 3507 var current = string.Empty; 3508 if (i == max) 3509 { 3510 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i)) 3511 { 3512 WriteLiteral(" <option"); 3513 BeginWriteAttribute("value", " value=\"", 18623, "\"", 18633, 1); 3514 WriteAttributeValue("", 18631, i, 18631, 2, false); 3515 EndWriteAttribute(); 3516 WriteLiteral(" data-value=\'"); 3517 Write(Convert.ToInt32(i).ToString("N0")); 3518 WriteLiteral("\' selected=\"selected\">"); 3519 Write(Convert.ToInt32(i).ToString("N0")); 3520 WriteLiteral("+</option>\r\n"); 3521 } 3522 else 3523 { 3524 WriteLiteral(" <option"); 3525 BeginWriteAttribute("value", " value=\"", 18852, "\"", 18862, 1); 3526 WriteAttributeValue("", 18860, i, 18860, 2, false); 3527 EndWriteAttribute(); 3528 WriteLiteral(" data-value=\'"); 3529 Write(Convert.ToInt32(i).ToString("N0")); 3530 WriteLiteral("\'>"); 3531 Write(Convert.ToInt32(i).ToString("N0")); 3532 WriteLiteral("+</option>\r\n"); 3533 } 3534 } 3535 else 3536 { 3537 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i)) 3538 { 3539 WriteLiteral(" <option"); 3540 BeginWriteAttribute("value", " value=\"", 19286, "\"", 19296, 1); 3541 WriteAttributeValue("", 19294, i, 19294, 2, false); 3542 EndWriteAttribute(); 3543 WriteLiteral(" data-value=\'"); 3544 Write(Convert.ToInt32(i).ToString("N0")); 3545 WriteLiteral("\' selected=\"selected\">"); 3546 Write(Convert.ToInt32(i).ToString("N0")); 3547 WriteLiteral("</option>\r\n"); 3548 } 3549 else 3550 { 3551 WriteLiteral(" <option"); 3552 BeginWriteAttribute("value", " value=\"", 19514, "\"", 19524, 1); 3553 WriteAttributeValue("", 19522, i, 19522, 2, false); 3554 EndWriteAttribute(); 3555 WriteLiteral(" data-value=\'"); 3556 Write(Convert.ToInt32(i).ToString("N0")); 3557 WriteLiteral("\'>"); 3558 Write(Convert.ToInt32(i).ToString("N0")); 3559 WriteLiteral("</option>\r\n"); 3560 } 3561 } 3562 } 3563 WriteLiteral(" </select>\r\n"); 3564 } 3565 3566 void RenderTopFilter(string parameter) 3567 { 3568 if (parameter == "pricemin" || parameter == "pricemax") 3569 { 3570 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"])) 3571 { 3572 if (parameter == "pricemin") 3573 { 3574 Write("<div class='search-terms' id='priceFilter'>"); 3575 Write("Pris "); 3576 Write(Dynamicweb.Context.Current.Request[parameter]); 3577 3578 } 3579 3580 else 3581 { 3582 Write(" - "); 3583 Write(Dynamicweb.Context.Current.Request[parameter]); 3584 Write(" kr."); 3585 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"pricemin,pricemax\"></i>\r\n"); 3586 Write("</div>"); 3587 3588 } 3589 } 3590 } 3591 3592 else if (parameter == "subsidymin" || parameter == "subsidymax") 3593 { 3594 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"])) 3595 { 3596 if (parameter == "subsidymin") 3597 { 3598 Write("<div class='search-terms' id='subsidyFilter'>"); 3599 Write("Årlig leje "); 3600 Write(Dynamicweb.Context.Current.Request[parameter]); 3601 3602 } 3603 3604 else 3605 { 3606 Write(" - "); 3607 Write(Dynamicweb.Context.Current.Request[parameter]); 3608 Write(" kr."); 3609 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidymin,subsidymax\"></i>\r\n"); 3610 Write("</div>"); 3611 3612 } 3613 } 3614 } 3615 else if (parameter == "etagearealmin" || parameter == "etagearealmax") 3616 { 3617 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"])) 3618 { 3619 if (parameter == "etagearealmin") 3620 { 3621 Write("<div class='search-terms' id='etagearealFilter'>"); 3622 Write("Etageareal "); 3623 Write(Dynamicweb.Context.Current.Request[parameter]); 3624 3625 } 3626 3627 else 3628 { 3629 Write(" - "); 3630 Write(Dynamicweb.Context.Current.Request[parameter]); 3631 Write(" kvm."); 3632 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"etagearealmin,etagearealmax\"></i>\r\n"); 3633 Write("</div>"); 3634 3635 } 3636 } 3637 } 3638 3639 else if (parameter == "grundarealmin" || parameter == "grundarealmax") 3640 { 3641 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"])) 3642 { 3643 if (parameter == "grundarealmin") 3644 { 3645 Write("<div class='search-terms' id='grundarealFilter'>"); 3646 Write("Grundareal "); 3647 Write(Dynamicweb.Context.Current.Request[parameter]); 3648 3649 } 3650 3651 else 3652 { 3653 Write(" - "); 3654 Write(Dynamicweb.Context.Current.Request[parameter]); 3655 Write(" kvm."); 3656 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"grundarealmin,grundarealmax\"></i>\r\n"); 3657 Write("</div>"); 3658 3659 } 3660 } 3661 } 3662 3663 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax") 3664 { 3665 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"])) 3666 { 3667 if (parameter == "subsidykvmmin") 3668 { 3669 Write("<div class='search-terms' id='subsidykvmFilter'>"); 3670 Write("Årlig leje kvm "); 3671 Write(Dynamicweb.Context.Current.Request[parameter]); 3672 3673 } 3674 3675 else 3676 { 3677 Write(" - "); 3678 Write(Dynamicweb.Context.Current.Request[parameter]); 3679 Write(" kr."); 3680 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidykvmmin,subsidykvmmax\"></i>\r\n"); 3681 Write("</div>"); 3682 3683 } 3684 } 3685 } 3686 3687 else if (parameter == "olinecategory") 3688 { 3689 3690 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"])) 3691 { 3692 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3693 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" }, 3694 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"}, 3695 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" }, 3696 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" } 3697 }; 3698 3699 3700 foreach (var er in erhverType) 3701 { 3702 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key)) 3703 { 3704 WriteLiteral(" <div class=\"search-terms\""); 3705 BeginWriteAttribute("id", " id=\"", 24694, "\"", 24709, 1); 3706 WriteAttributeValue("", 24699, parameter, 24699, 10, false); 3707 EndWriteAttribute(); 3708 WriteLiteral(">\r\n "); 3709 Write(er.Value); 3710 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3711 Write(parameter); 3712 WriteLiteral("\" data-val=\""); 3713 Write(er.Key); 3714 WriteLiteral("\"></i>\r\n </div>\r\n"); 3715 } 3716 } 3717 } 3718 } 3719 else if (parameter == "propertycategory") 3720 { 3721 3722 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["propertycategory"])) 3723 { 3724 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3725 { "propertycategory", "Blandet Bolig/Erhverv" } 3726 }; 3727 3728 foreach (var er in erhverType) 3729 { 3730 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]) && Dynamicweb.Context.Current.Request[parameter] == er.Value) 3731 { 3732 WriteLiteral(" <div class=\"search-terms\""); 3733 BeginWriteAttribute("id", " id=\"", 25615, "\"", 25630, 1); 3734 WriteAttributeValue("", 25620, parameter, 25620, 10, false); 3735 EndWriteAttribute(); 3736 WriteLiteral(">\r\n "); 3737 Write(er.Value); 3738 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3739 Write(parameter); 3740 WriteLiteral("\" data-val=\""); 3741 Write(er.Key); 3742 WriteLiteral("\"></i>\r\n </div>\r\n"); 3743 } 3744 } 3745 } 3746 } 3747 else if (parameter == "search") 3748 { 3749 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"])) 3750 { 3751 WriteLiteral(" <div class=\"search-terms\""); 3752 BeginWriteAttribute("id", " id=\"", 26078, "\"", 26093, 1); 3753 WriteAttributeValue("", 26083, parameter, 26083, 10, false); 3754 EndWriteAttribute(); 3755 WriteLiteral(">\r\n "); 3756 Write(Dynamicweb.Context.Current.Request[parameter]); 3757 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3758 Write(parameter); 3759 WriteLiteral("\"></i>\r\n </div>\r\n"); 3760 } 3761 } 3762 else 3763 { 3764 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter])) 3765 { 3766 Dictionary<string, string> 3767 ubudsform = new Dictionary<string, string> 3768 (){ 3769 {"salg", "Salg" }, { "leje","Leje" } 3770 }; 3771 3772 foreach (var er in ubudsform) 3773 { 3774 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key)) 3775 { 3776 WriteLiteral(" <div class=\"search-terms\""); 3777 BeginWriteAttribute("id", " id=\"", 27242, "\"", 27257, 1); 3778 WriteAttributeValue("", 27247, parameter, 27247, 10, false); 3779 EndWriteAttribute(); 3780 WriteLiteral(">\r\n "); 3781 Write(er.Value); 3782 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3783 Write(parameter); 3784 WriteLiteral("\" data-val=\""); 3785 Write(er.Key); 3786 WriteLiteral("\"></i>\r\n </div>\r\n"); 3787 } 3788 } 3789 3790 3791 } 3792 } 3793 } 3794 3795 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString) 3796 { 3797 var selected = ""; 3798 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue) 3799 { 3800 selected = "selected"; 3801 } 3802 3803 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected); 3804 3805 Write(current); 3806 3807 } 3808 3809 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "") 3810 { 3811 WriteLiteral(" <div"); 3812 BeginWriteAttribute("class", " class=\"", 28261, "\"", 28307, 3); 3813 WriteAttributeValue("", 28269, "main-search-form", 28269, 16, true); 3814 WriteAttributeValue(" ", 28285, "frontpage", 28286, 10, true); 3815 WriteAttributeValue(" ", 28295, cssClasses, 28296, 11, false); 3816 EndWriteAttribute(); 3817 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>"); 3818 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 3819 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>"); 3820 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 3821 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\""); 3822 BeginWriteAttribute("value", " value=\'", 29022, "\'", 29043, 1); 3823 WriteAttributeValue("", 29030, searchPageId, 29030, 13, false); 3824 EndWriteAttribute(); 3825 WriteLiteral(@" id=""searchPageId-frontpage"" disabled=""disabled"" /> 3826 <div class=""row form-wrapper no-gutters""> 3827 3828 <div class=""col-xs-12 col-md-5 col-searchbar""> 3829 <div class=""searchbar""> 3830 <input type=""text"""); 3831 BeginWriteAttribute("name", " name=\"", 29321, "\"", 29348, 1); 3832 WriteAttributeValue("", 29328, querySearchNameAttr, 29328, 20, false); 3833 EndWriteAttribute(); 3834 WriteLiteral(" id=\"searchfield-frontpage\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 3835 BeginWriteAttribute("value", " value=\"", 29461, "\"", 29539, 1); 3836 WriteAttributeValue("", 29469, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 29469, 70, false); 3837 EndWriteAttribute(); 3838 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom-frontpage\" name=\"zipcodefrom\""); 3839 BeginWriteAttribute("value", " value=\"", 29639, "\"", 29722, 1); 3840 WriteAttributeValue("", 29647, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 29647, 75, false); 3841 EndWriteAttribute(); 3842 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto-frontpage\" name=\"zipcodeto\""); 3843 BeginWriteAttribute("value", " value=\"", 29818, "\"", 29899, 1); 3844 WriteAttributeValue("", 29826, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 29826, 73, false); 3845 EndWriteAttribute(); 3846 WriteLiteral(@" /> 3847 </div> 3848 </div> 3849 <div class=""col-xs-12 col-md-5""> 3850 <div class=""row no-gutters""> 3851 <div class=""col-xs-12 col-md-6 input-col""> 3852 <div class=""dropdown w-overlay""> 3853 <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""> 3854 "); 3855 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 3856 WriteLiteral(@" 3857 </button> 3858 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 3859 <ul class=""bolig-dropdown list-unstyled""> 3860 "); 3861 3862 RenderBoligtypeCheckboxesDropdown(); 3863 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 3864 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 3865 WriteLiteral(@"</button> 3866 </div> 3867 3868 </div> 3869 3870 </div> 3871 <div class=""col-xs-12 col-md-6 input-col""> 3872 <div class=""dropdown w-overlay""> 3873 <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""> 3874 "); 3875 Write(Translate("Smartpage:Search.Pris", "Pris")); 3876 WriteLiteral(@" 3877 </button> 3878 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris""> 3879 <input type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 3880 BeginWriteAttribute("placeholder", " placeholder=\'", 32078, "\'", 32154, 1); 3881 WriteAttributeValue("", 32092, Translate("Smartpage:Search.Placeholder.MinPris","Min. pris"), 32092, 62, false); 3882 EndWriteAttribute(); 3883 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3884 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 3885 WriteLiteral("</option>\r\n"); 3886 for (var i = 0; i <= 10000000; i += 100000) 3887 { 3888 if (i == 10000000) 3889 { 3890 WriteLiteral(" <option"); 3891 BeginWriteAttribute("value", " value=\"", 32763, "\"", 32773, 1); 3892 WriteAttributeValue("", 32771, i, 32771, 2, false); 3893 EndWriteAttribute(); 3894 WriteLiteral(" data-value=\'"); 3895 Write(Convert.ToInt32(i).ToString("N0")); 3896 WriteLiteral("+\'>"); 3897 Write(Convert.ToInt32(i).ToString("N0")); 3898 WriteLiteral("+</option>\r\n"); 3899 } 3900 else 3901 { 3902 WriteLiteral(" <option"); 3903 BeginWriteAttribute("value", " value=\"", 33085, "\"", 33095, 1); 3904 WriteAttributeValue("", 33093, i, 33093, 2, false); 3905 EndWriteAttribute(); 3906 WriteLiteral(" data-value=\'"); 3907 Write(Convert.ToInt32(i).ToString("N0")); 3908 WriteLiteral("\'>"); 3909 Write(Convert.ToInt32(i).ToString("N0")); 3910 WriteLiteral("</option>\r\n"); 3911 } 3912 } 3913 WriteLiteral(@" </select> 3914 <input type=""hidden"" id=""pricemin-frontpage"" name=""pricemin"" /> 3915 3916 <input type=""text"" class=""form-control js-auto-thousand js-pricemax-frontpage-input"""); 3917 BeginWriteAttribute("placeholder", " placeholder=\'", 33570, "\'", 33646, 1); 3918 WriteAttributeValue("", 33584, Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris"), 33584, 62, false); 3919 EndWriteAttribute(); 3920 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3921 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 3922 WriteLiteral("</option>\r\n"); 3923 for (var i = 0; i <= 10000000; i += 100000) 3924 { 3925 if (i == 10000000) 3926 { 3927 WriteLiteral(" <option"); 3928 BeginWriteAttribute("value", " value=\"", 34249, "\"", 34259, 1); 3929 WriteAttributeValue("", 34257, i, 34257, 2, false); 3930 EndWriteAttribute(); 3931 WriteLiteral(" data-value=\'"); 3932 Write(Convert.ToInt32(i).ToString("N0")); 3933 WriteLiteral("+\'>"); 3934 Write(Convert.ToInt32(i).ToString("N0")); 3935 WriteLiteral("+</option>\r\n"); 3936 } 3937 else 3938 { 3939 WriteLiteral(" <option"); 3940 BeginWriteAttribute("value", " value=\"", 34571, "\"", 34581, 1); 3941 WriteAttributeValue("", 34579, i, 34579, 2, false); 3942 EndWriteAttribute(); 3943 WriteLiteral(" data-value=\'"); 3944 Write(Convert.ToInt32(i).ToString("N0")); 3945 WriteLiteral("\'>"); 3946 Write(Convert.ToInt32(i).ToString("N0")); 3947 WriteLiteral("</option>\r\n"); 3948 } 3949 } 3950 WriteLiteral(" </select>\r\n <input type=\"hidden\" id=\"pricemax-frontpage\" name=\"pricemax\" />\r\n <button class=\"btn btn-primary js-close-dropdown mt-3\">"); 3951 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 3952 WriteLiteral(@"</button> 3953 </div> 3954 </div> 3955 </div> 3956 </div> 3957 </div> 3958 <div class=""col-xs-12 col-md-2 d-none d-md-block""> 3959 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 3960 Write(Translate("Smartpage:Search.Søg", "Søg")); 3961 WriteLiteral(@"</button> 3962 </div> 3963 </div> 3964 3965 <div class=""row moresearch-btn no-gutters""> 3966 <div class=""col-sm-12""> 3967 <div class=""row align-items-center no-gutters""> 3968 <div class=""col-12 col-md-4""> 3969 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch"" aria-expanded=""false"" aria-controls=""moreSearch""> 3970 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open"">"); 3971 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 3972 WriteLiteral("</span> <span class=\"open\"><span class=\"js-filter-count\">0</span> "); 3973 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 3974 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\">"); 3975 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 3976 WriteLiteral("</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"collapse\" id=\"moreSearch\">\r\n <h4 class=\"mt-20\"><b>"); 3977 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 3978 WriteLiteral(@"</b></h4> 3979 <div class=""row align-items-end mb-30""> 3980 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 3981 <div class=""filter-container row""> 3982 <label class=""d-block col-12"">"); 3983 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 3984 WriteLiteral(@"</label> 3985 <div class=""col-6 pr-sm-0 pr-2""> 3986 <input type=""text"" name=""boligarealmin"" id=""boligarealmin-frontpage"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 3987 BeginWriteAttribute("placeholder", " placeholder=\'", 37447, "\'", 37519, 1); 3988 WriteAttributeValue("", 37461, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 37461, 58, false); 3989 EndWriteAttribute(); 3990 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3991 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 3992 WriteLiteral("</option>\r\n"); 3993 for (var i = 0; i <= 300; i += 10) 3994 { 3995 if (i == 300) 3996 { 3997 WriteLiteral(" <option"); 3998 BeginWriteAttribute("value", " value=\"", 38126, "\"", 38136, 1); 3999 WriteAttributeValue("", 38134, i, 38134, 2, false); 4000 EndWriteAttribute(); 4001 WriteLiteral(">"); 4002 Write(i); 4003 WriteLiteral("+</option>\r\n"); 4004 } 4005 else 4006 { 4007 WriteLiteral(" <option"); 4008 BeginWriteAttribute("value", " value=\"", 38383, "\"", 38393, 1); 4009 WriteAttributeValue("", 38391, i, 38391, 2, false); 4010 EndWriteAttribute(); 4011 WriteLiteral(">"); 4012 Write(i); 4013 WriteLiteral("</option>\r\n"); 4014 } 4015 } 4016 WriteLiteral(@" </select> 4017 </div> 4018 <div class=""col-6 pl-sm-0 pl-2""> 4019 <input type=""text"" name=""boligarealmax"" id=""boligarealmax-frontpage"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 4020 BeginWriteAttribute("placeholder", " placeholder=\'", 38866, "\'", 38938, 1); 4021 WriteAttributeValue("", 38880, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 38880, 58, false); 4022 EndWriteAttribute(); 4023 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4024 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 4025 WriteLiteral("</option>\r\n"); 4026 for (var i = 0; i <= 300; i += 10) 4027 { 4028 if (i == 300) 4029 { 4030 WriteLiteral(" <option"); 4031 BeginWriteAttribute("value", " value=\"", 39545, "\"", 39555, 1); 4032 WriteAttributeValue("", 39553, i, 39553, 2, false); 4033 EndWriteAttribute(); 4034 WriteLiteral(">"); 4035 Write(i); 4036 WriteLiteral("+</option>\r\n"); 4037 } 4038 else 4039 { 4040 WriteLiteral(" <option"); 4041 BeginWriteAttribute("value", " value=\"", 39802, "\"", 39812, 1); 4042 WriteAttributeValue("", 39810, i, 39810, 2, false); 4043 EndWriteAttribute(); 4044 WriteLiteral(">"); 4045 Write(i); 4046 WriteLiteral("</option>\r\n"); 4047 } 4048 } 4049 WriteLiteral(@" </select> 4050 </div> 4051 </div> 4052 </div> 4053 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4054 <div class=""filter-container row""> 4055 <label class=""d-block col-12"">"); 4056 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 4057 WriteLiteral(@"</label> 4058 <div class=""col-6 pr-sm-0 pr-2""> 4059 <input type=""text"" name=""grundarealmin"" id=""grundarealmin-frontpage"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 4060 BeginWriteAttribute("placeholder", " placeholder=\'", 40661, "\'", 40733, 1); 4061 WriteAttributeValue("", 40675, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 40675, 58, false); 4062 EndWriteAttribute(); 4063 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4064 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 4065 WriteLiteral("</option>\r\n"); 4066 for (var i = 0; i <= 10000; i += 100) 4067 { 4068 if (i == 10000) 4069 { 4070 WriteLiteral(" <option"); 4071 BeginWriteAttribute("value", " value=\"", 41345, "\"", 41355, 1); 4072 WriteAttributeValue("", 41353, i, 41353, 2, false); 4073 EndWriteAttribute(); 4074 WriteLiteral(">"); 4075 Write(i); 4076 WriteLiteral("+</option>\r\n"); 4077 } 4078 else 4079 { 4080 WriteLiteral(" <option"); 4081 BeginWriteAttribute("value", " value=\"", 41602, "\"", 41612, 1); 4082 WriteAttributeValue("", 41610, i, 41610, 2, false); 4083 EndWriteAttribute(); 4084 WriteLiteral(">"); 4085 Write(i); 4086 WriteLiteral("</option>\r\n"); 4087 } 4088 } 4089 WriteLiteral(@" </select> 4090 </div> 4091 <div class=""col-6 pl-sm-0 pl-2""> 4092 <input type=""text"" name=""grundarealmax"" id=""grundarealmax-frontpage"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 4093 BeginWriteAttribute("placeholder", " placeholder=\'", 42085, "\'", 42157, 1); 4094 WriteAttributeValue("", 42099, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 42099, 58, false); 4095 EndWriteAttribute(); 4096 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4097 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 4098 WriteLiteral("</option>\r\n"); 4099 for (var i = 0; i <= 10000; i += 100) 4100 { 4101 if (i == 10000) 4102 { 4103 WriteLiteral(" <option"); 4104 BeginWriteAttribute("value", " value=\"", 42769, "\"", 42779, 1); 4105 WriteAttributeValue("", 42777, i, 42777, 2, false); 4106 EndWriteAttribute(); 4107 WriteLiteral(">"); 4108 Write(i); 4109 WriteLiteral("+</option>\r\n"); 4110 } 4111 else 4112 { 4113 WriteLiteral(" <option"); 4114 BeginWriteAttribute("value", " value=\"", 43026, "\"", 43036, 1); 4115 WriteAttributeValue("", 43034, i, 43034, 2, false); 4116 EndWriteAttribute(); 4117 WriteLiteral(">"); 4118 Write(i); 4119 WriteLiteral("</option>\r\n"); 4120 } 4121 } 4122 WriteLiteral(@" </select> 4123 </div> 4124 </div> 4125 </div> 4126 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4127 <div class=""filter-container row""> 4128 <label class=""d-block col-12"">Antal rum</label> 4129 4130 <div class=""col-6 pr-sm-0 pr-2""> 4131 <select name=""roomsmin"" id=""roomsmin-frontpage"" class=""form-control reverse js-count""> 4132 <option selected=""true"" disabled=""disabled"">"); 4133 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 4134 WriteLiteral(@"</option> 4135 <option value=""1"">1</option> 4136 <option value=""2"">2</option> 4137 <option value=""3"">3</option> 4138 <option value=""4"">4</option> 4139 <option value=""5+"">5+</option> 4140 </select> 4141 </div> 4142 <div class=""col-6 pl-sm-0 pl-2""> 4143 <select name=""roomsmax"" id=""roomsmax-frontpage"" class=""form-control reverse js-count""> 4144 <option selected=""true"" disabled=""disabled"">"); 4145 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 4146 WriteLiteral(@"</option> 4147 <option value=""1"">1</option> 4148 <option value=""2"">2</option> 4149 <option value=""3"">3</option> 4150 <option value=""4"">4</option> 4151 <option value=""5+"">"); 4152 Write(Translate("Smartpage:Rooms.5", "5")); 4153 WriteLiteral(@"</option> 4154 </select> 4155 </div> 4156 </div> 4157 </div> 4158 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4159 <div class=""row""> 4160 <div class=""col-12""> 4161 <div class=""filter-container""> 4162 <label class=""d-block"">Energimærke</label> 4163 <select name=""energylabel"" id=""energylabel-frontpage"" class=""form-control reverse js-count""> 4164 <option disabled selected=""selected"">"); 4165 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 4166 WriteLiteral(@"</option> 4167 <option value=""01"">G</option> 4168 <option value=""02"">F</option> 4169 <option value=""03"">E</option> 4170 <option value=""04"">D</option> 4171 <option value=""05"">C</option> 4172 <option value=""06"">B</option> 4173 <option value=""07"">A</option> 4174 <option value=""08"">A2010</option> 4175 <option value=""09"">A2015</option> 4176 <option value=""10"">A2020+</option> 4177 </select> 4178 </div> 4179 </div> 4180 "); 4181 WriteLiteral(" </div>\r\n </div>\r\n <div class=\"col-12 col-sm-6 col-lg-3 mt-3\">\r\n <h4"); 4182 BeginWriteAttribute("class", " class=\"", 47281, "\"", 47289, 0); 4183 EndWriteAttribute(); 4184 WriteLiteral("><b>"); 4185 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 4186 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 4187 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 4188 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\""); 4189 BeginWriteAttribute("placeholder", " placeholder=\'", 47845, "\'", 47919, 1); 4190 WriteAttributeValue("", 47859, Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK"), 47859, 60, false); 4191 EndWriteAttribute(); 4192 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4193 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 4194 WriteLiteral("</option>\r\n"); 4195 for (var i = 0; i <= 25000; i += 1250) 4196 { 4197 if (i == 25000) 4198 { 4199 WriteLiteral(" <option>"); 4200 Write(Convert.ToInt32(i).ToString("N0")); 4201 WriteLiteral("+</option>\r\n"); 4202 } 4203 else 4204 { 4205 WriteLiteral(" <option>"); 4206 Write(Convert.ToInt32(i).ToString("N0")); 4207 WriteLiteral("</option>\r\n"); 4208 } 4209 } 4210 WriteLiteral(@" </select> 4211 </div> 4212 <div class=""col-6 pl-sm-0 pl-2""> 4213 <input type=""text"" name=""subsidymax"" id=""subsidymax-frontpage"" class=""form-control js-subsidymax-frontpage-input js-count"""); 4214 BeginWriteAttribute("placeholder", " placeholder=\'", 49304, "\'", 49378, 1); 4215 WriteAttributeValue("", 49318, Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK"), 49318, 60, false); 4216 EndWriteAttribute(); 4217 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4218 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 4219 WriteLiteral("</option>\r\n"); 4220 for (var i = 0; i <= 25000; i += 1250) 4221 { 4222 if (i == 25000) 4223 { 4224 WriteLiteral(" <option"); 4225 BeginWriteAttribute("value", " value=\"", 49990, "\"", 50017, 1); 4226 WriteAttributeValue("", 49998, Convert.ToInt32(i), 49998, 19, false); 4227 EndWriteAttribute(); 4228 WriteLiteral(">"); 4229 Write(Convert.ToInt32(i).ToString("N0")); 4230 WriteLiteral("+</option>\r\n"); 4231 } 4232 else 4233 { 4234 WriteLiteral(" <option"); 4235 BeginWriteAttribute("value", " value=\"", 50296, "\"", 50323, 1); 4236 WriteAttributeValue("", 50304, Convert.ToInt32(i), 50304, 19, false); 4237 EndWriteAttribute(); 4238 WriteLiteral(">"); 4239 Write(Convert.ToInt32(i).ToString("N0")); 4240 WriteLiteral("</option>\r\n"); 4241 } 4242 } 4243 WriteLiteral(@" </select> 4244 </div> 4245 </div> 4246 </div> 4247 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0""> 4248 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 4249 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 4250 WriteLiteral(@"</button> 4251 </div> 4252 </div> 4253 </div> 4254 </div> 4255 </div> 4256 4257 <div class=""row d-block d-md-none form-wrapper no-gutters""> 4258 <div class=""col-xs-12 col-md-2""> 4259 <button type=""submit"" class=""btn btn-block btn-search btn-mobile-search"">"); 4260 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig")); 4261 WriteLiteral(@"<i class=""fa fa-search cta-icon""></i></button> 4262 </div> 4263 </div> 4264 </form> 4265 <div class=""front-page-actions d-md-none""> 4266 <div> 4267 <button class=""btn btn-block btn-search btn-mobile-search js-search-mobile"">"); 4268 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig")); 4269 WriteLiteral("<i class=\"fa fa-search cta-icon\"></i></button>\r\n </div>\r\n <div>\r\n"); 4270 4271 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : ""; 4272 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER"); 4273 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\">\r\n <input name=\"id\""); 4274 BeginWriteAttribute("value", " value=\"", 52266, "\"", 52289, 1); 4275 WriteAttributeValue("", 52274, brokerSearchId, 52274, 15, false); 4276 EndWriteAttribute(); 4277 WriteLiteral(@" type=""hidden"" /> 4278 <div class=""icon-wrapper-wclick""> 4279 <i class=""fas fa-search ta-submit-on-icon-click""></i> 4280 <input class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" name=""q"" type=""text"""); 4281 BeginWriteAttribute("placeholder", " placeholder=\"", 52593, "\"", 52615, 1); 4282 WriteAttributeValue("", 52607, ctaText, 52607, 8, false); 4283 EndWriteAttribute(); 4284 WriteLiteral(" onfocus=\"this.placeholder = \'\'\""); 4285 BeginWriteAttribute("onblur", " onblur=\"", 52648, "\"", 52684, 3); 4286 WriteAttributeValue("", 52657, "this.placeholder=\'", 52657, 18, true); 4287 WriteAttributeValue("", 52675, ctaText, 52675, 8, false); 4288 WriteAttributeValue("", 52683, "\'", 52683, 1, true); 4289 EndWriteAttribute(); 4290 WriteLiteral(" />\r\n </div>\r\n </form>\r\n"); 4291 WriteLiteral(" </div>\r\n <div>\r\n <a href=\"javascript:panelSalgsvurdering(\'Hovedmenu\')\" class=\"btn btn-orange btn-block\">"); 4292 Write(Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING")); 4293 WriteLiteral("<i class=\"cta-icon fa fa-angle-right\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n"); 4294 4295 } 4296 Custom.Integration.Brokers.Models.BrokerEmployee GetBrokerFromCurrentProduct() 4297 { 4298 string productId = Dynamicweb.Context.Current.Request["ProductId"]; 4299 4300 if (string.IsNullOrWhiteSpace(productId)) 4301 { 4302 return null; 4303 } 4304 4305 var propertyProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(productId, string.Empty, true); 4306 if (propertyProduct == null) 4307 { 4308 return null; 4309 } 4310 4311 string employee = Dynamicweb.Core.Converter.ToString( 4312 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xAktoererMaeglerKontaktEmail") 4313 ); 4314 string storeId = Dynamicweb.Core.Converter.ToString( 4315 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xButikID") 4316 ); 4317 4318 if (string.IsNullOrWhiteSpace(employee) || string.IsNullOrWhiteSpace(storeId)) 4319 { 4320 return null; 4321 } 4322 4323 return Custom.Integration.Brokers.Search.GetEmployee(storeId, employee); 4324 } 4325 4326 string GetAgentTitleFromCurrentProduct() 4327 { 4328 var propBroker = GetBrokerFromCurrentProduct(); 4329 4330 if (propBroker?.Broker == null) 4331 { 4332 return string.Empty; 4333 } 4334 4335 if (!string.IsNullOrEmpty(propBroker.Broker.CompanyName)) 4336 { 4337 return propBroker.Broker.CompanyName; 4338 } 4339 4340 return propBroker.Broker.Name ?? string.Empty; 4341 } 4342 4343 string GetMasterBrokerUrlFromCurrentProduct() 4344 { 4345 var propBroker = GetBrokerFromCurrentProduct(); 4346 4347 var itemId = propBroker?.Broker?.ItemId; 4348 var itemType = propBroker?.Broker?.ItemType; 4349 4350 if (string.IsNullOrWhiteSpace(itemId) || string.IsNullOrWhiteSpace(itemType)) 4351 { 4352 return string.Empty; 4353 } 4354 var brokerItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(itemType, itemId); 4355 4356 if (brokerItem == null) 4357 { 4358 return string.Empty; 4359 } 4360 4361 var websiteId = Dynamicweb.Core.Converter.ToInt32(brokerItem["WebsiteId"]); 4362 var page = Dynamicweb.Content.Services.Pages.GetFirstPageForArea(websiteId); 4363 return Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?Id=" + page?.ID); 4364 } 4365 4366 void RenderSlideMenu(bool erhverv, string maeglersoegning) 4367 { 4368 WriteLiteral(" <div id=\"menu\" \r\n class=\"main-menu-slide \"\r\n role=\"navigation\""); 4369 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 55864, "\"", 55980, 1); 4370 WriteAttributeValue("", 55891, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.MainMenu", "Hovedmenu")), 55891, 89, false); 4371 EndWriteAttribute(); 4372 WriteLiteral(@" 4373 aria-modal=""true""> 4374 <div class=""container""> 4375 <div class=""row""> 4376 <div class=""col-12""> 4377 <span class=""menu-headline"">MENU</span> 4378 </div> 4379 <div class=""menu-slide"" 4380 role=""button"" 4381 tabindex=""0"""); 4382 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 56345, "\"", 56473, 1); 4383 WriteAttributeValue("", 56384, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.CloseMenu", "Luk menu")), 56384, 89, false); 4384 EndWriteAttribute(); 4385 WriteLiteral(">\r\n <b aria-hidden=\"true\"></b>\r\n </div>\r\n <div class=\"col-12 main-slidemenu\" role=\"region\""); 4386 BeginWriteAttribute("aria-label", " aria-label=\"", 56625, "\"", 56741, 1); 4387 WriteAttributeValue("", 56638, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.NavigationLinks", "Navigationslinks")), 56638, 103, false); 4388 EndWriteAttribute(); 4389 WriteLiteral(">\r\n"); 4390 4391 var navigationSettings = new NavigationSettings(); 4392 navigationSettings.StartLevel = 1; 4393 navigationSettings.StopLevel = 2; 4394 navigationSettings.ExpandMode = ExpandMode.All; 4395 navigationSettings.RootAreaId = Pageview.Area.ID; 4396 4397 Write(Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings)); 4398 WriteLiteral(" </div>\r\n <div class=\"col-12 bottom-btns\">\r\n\r\n"); 4399 4400 string[] maeglerid; 4401 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0"; 4402 4403 if (erhverv) 4404 { 4405 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None); 4406 } 4407 else 4408 { 4409 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None); 4410 } 4411 4412 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\" role=\"search\">\r\n <input name=\"id\""); 4413 BeginWriteAttribute("value", " value=\"", 58238, "\"", 58259, 1); 4414 WriteAttributeValue("", 58246, maeglerid[1], 58246, 13, false); 4415 EndWriteAttribute(); 4416 WriteLiteral(" type=\"hidden\" />\r\n <div class=\"icon-wrapper-wclick\">\r\n <label for=\"broker-search-menu-vm\" class=\"sr-only\">"); 4417 Write(Translate("Custom:Accessibility.FindBroker", "Find mægler")); 4418 WriteLiteral(@"</label> 4419 <i class=""fas fa-search ta-submit-on-icon-click"" 4420 aria-hidden=""true"" 4421 role=""button"" 4422 tabindex=""0"""); 4423 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 58754, "\"", 58907, 1); 4424 WriteAttributeValue("", 58807, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.SearchBroker", "Søg efter mægler")), 58807, 100, false); 4425 EndWriteAttribute(); 4426 WriteLiteral(@"></i> 4427 <input id=""broker-search-menu-vm"" 4428 class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" 4429 name=""q"" 4430 type=""text"""); 4431 BeginWriteAttribute("placeholder", " \r\n placeholder=\"", 59215, "\"", 59366, 1); 4432 WriteAttributeValue("", 59274, HtmlEncoder.HtmlAttributeEncode(Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER")), 59274, 92, false); 4433 EndWriteAttribute(); 4434 BeginWriteAttribute("aria-label", " \r\n aria-label=\"", 59367, "\"", 59563, 1); 4435 WriteAttributeValue("", 59425, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.BrokerSearchField", "Indtast postnummer eller navn for at finde mægler")), 59425, 138, false); 4436 EndWriteAttribute(); 4437 WriteLiteral("\r\n onfocus=\"this.placeholder = \'FIND MÆGLER\'\" />\r\n </div>\r\n </form>\r\n"); 4438 WriteLiteral(" <br />\r\n"); 4439 4440 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + ""; 4441 WriteLiteral(" <a"); 4442 BeginWriteAttribute("href", " href=\"", 59973, "\"", 60044, 5); 4443 WriteAttributeValue("", 59980, "javascript:panelSalgsvurdering(\'", 59980, 32, true); 4444 WriteAttributeValue("", 60012, dpmaegler, 60012, 10, false); 4445 WriteAttributeValue("", 60022, "\',\'", 60022, 3, true); 4446 WriteAttributeValue("", 60025, Pageview.AreaID, 60025, 16, false); 4447 WriteAttributeValue("", 60041, "\');", 60041, 3, true); 4448 EndWriteAttribute(); 4449 WriteLiteral(" \r\n class=\"btn btn-block btn-default-invert js-close-menu\""); 4450 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 60129, "\"", 60285, 1); 4451 WriteAttributeValue("", 60170, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.FreeSalesAssessment", "Få gratis salgsvurdering")), 60170, 115, false); 4452 EndWriteAttribute(); 4453 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"); 4454 } 4455 4456 void RenderBlockList(List<Block> blocks) 4457 { 4458 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false; 4459 blocks = blocks.OrderBy(item => item.SortId).ToList(); 4460 4461 foreach (Block item in blocks) 4462 { 4463 if (debug) { 4464 WriteLiteral(" <!-- Block START: "); 4465 Write(item.Id); 4466 WriteLiteral(" -->\r\n"); 4467 } 4468 4469 if (item.Design == null) 4470 { 4471 RenderBlock(item); 4472 } 4473 else if (item.Design.RenderType == RenderType.None) { 4474 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : ""; 4475 4476 WriteLiteral(" <div"); 4477 BeginWriteAttribute("class", " class=\"", 61540, "\"", 61564, 2); 4478 WriteAttributeValue("", 61548, cssClass, 61548, 9, false); 4479 WriteAttributeValue(" ", 61557, "dw-mod", 61558, 7, true); 4480 EndWriteAttribute(); 4481 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4482 } 4483 else if (item.Design.RenderType != RenderType.Hide) 4484 { 4485 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : ""; 4486 4487 if (!item.SkipRenderBlocksList) { 4488 if (item.Design.RenderType == RenderType.Row) 4489 { 4490 WriteLiteral(" <div"); 4491 BeginWriteAttribute("class", " class=\"", 61991, "\"", 62046, 4); 4492 WriteAttributeValue("", 61999, "grid", 61999, 4, true); 4493 WriteAttributeValue(" ", 62003, "grid--align-content-start", 62004, 26, true); 4494 WriteAttributeValue(" ", 62029, cssClass, 62030, 9, false); 4495 WriteAttributeValue(" ", 62039, "dw-mod", 62040, 7, true); 4496 EndWriteAttribute(); 4497 BeginWriteAttribute("id", " id=\"", 62047, "\"", 62067, 2); 4498 WriteAttributeValue("", 62052, "Block__", 62052, 7, true); 4499 WriteAttributeValue("", 62059, item.Id, 62059, 8, false); 4500 EndWriteAttribute(); 4501 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4502 } 4503 4504 if (item.Design.RenderType == RenderType.Column) 4505 { 4506 string hidePadding = item.Design.HidePadding ? "u-no-padding" : ""; 4507 string size = item.Design.Size ?? "12"; 4508 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size; 4509 4510 WriteLiteral(" <div"); 4511 BeginWriteAttribute("class", " class=\"", 62563, "\"", 62694, 9); 4512 WriteAttributeValue("", 62571, "grid__col-lg-", 62571, 13, true); 4513 WriteAttributeValue("", 62584, item.Design.Size, 62584, 17, false); 4514 WriteAttributeValue(" ", 62601, "grid__col-md-", 62602, 14, true); 4515 WriteAttributeValue("", 62615, item.Design.Size, 62615, 17, false); 4516 WriteAttributeValue(" ", 62632, "grid__col-sm-12", 62633, 16, true); 4517 WriteAttributeValue(" ", 62648, "grid__col-xs-12", 62649, 16, true); 4518 WriteAttributeValue(" ", 62664, hidePadding, 62665, 12, false); 4519 WriteAttributeValue(" ", 62677, cssClass, 62678, 9, false); 4520 WriteAttributeValue(" ", 62687, "dw-mod", 62688, 7, true); 4521 EndWriteAttribute(); 4522 BeginWriteAttribute("id", " id=\"", 62695, "\"", 62715, 2); 4523 WriteAttributeValue("", 62700, "Block__", 62700, 7, true); 4524 WriteAttributeValue("", 62707, item.Id, 62707, 8, false); 4525 EndWriteAttribute(); 4526 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4527 } 4528 4529 if (item.Design.RenderType == RenderType.Table) 4530 { 4531 WriteLiteral(" <table"); 4532 BeginWriteAttribute("class", " class=\"", 62946, "\"", 62976, 3); 4533 WriteAttributeValue("", 62954, "table", 62954, 5, true); 4534 WriteAttributeValue(" ", 62959, cssClass, 62960, 9, false); 4535 WriteAttributeValue(" ", 62969, "dw-mod", 62970, 7, true); 4536 EndWriteAttribute(); 4537 BeginWriteAttribute("id", " id=\"", 62977, "\"", 62997, 2); 4538 WriteAttributeValue("", 62982, "Block__", 62982, 7, true); 4539 WriteAttributeValue("", 62989, item.Id, 62989, 8, false); 4540 EndWriteAttribute(); 4541 WriteLiteral(">\r\n RenderBlock(item);\r\n </table>\r\n"); 4542 } 4543 4544 if (item.Design.RenderType == RenderType.TableRow) 4545 { 4546 WriteLiteral(" <tr"); 4547 BeginWriteAttribute("class", " class=\"", 63230, "\"", 63254, 2); 4548 WriteAttributeValue("", 63238, cssClass, 63238, 9, false); 4549 WriteAttributeValue(" ", 63247, "dw-mod", 63248, 7, true); 4550 EndWriteAttribute(); 4551 BeginWriteAttribute("id", " id=\"", 63255, "\"", 63275, 2); 4552 WriteAttributeValue("", 63260, "Block__", 63260, 7, true); 4553 WriteAttributeValue("", 63267, item.Id, 63267, 8, false); 4554 EndWriteAttribute(); 4555 WriteLiteral(">\r\n RenderBlock(item);\r\n </tr>\r\n"); 4556 } 4557 4558 if (item.Design.RenderType == RenderType.TableColumn) 4559 { 4560 WriteLiteral(" <td"); 4561 BeginWriteAttribute("class", " class=\"", 63508, "\"", 63532, 2); 4562 WriteAttributeValue("", 63516, cssClass, 63516, 9, false); 4563 WriteAttributeValue(" ", 63525, "dw-mod", 63526, 7, true); 4564 EndWriteAttribute(); 4565 BeginWriteAttribute("id", " id=\"", 63533, "\"", 63553, 2); 4566 WriteAttributeValue("", 63538, "Block__", 63538, 7, true); 4567 WriteAttributeValue("", 63545, item.Id, 63545, 8, false); 4568 EndWriteAttribute(); 4569 WriteLiteral(">\r\n RenderBlock(item);\r\n </td>\r\n"); 4570 } 4571 4572 if (item.Design.RenderType == RenderType.CardHeader) 4573 { 4574 WriteLiteral(" <div"); 4575 BeginWriteAttribute("class", " class=\"", 63786, "\"", 63822, 3); 4576 WriteAttributeValue("", 63794, "card-header", 63794, 11, true); 4577 WriteAttributeValue(" ", 63805, cssClass, 63806, 9, false); 4578 WriteAttributeValue(" ", 63815, "dw-mod", 63816, 7, true); 4579 EndWriteAttribute(); 4580 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4581 } 4582 4583 if (item.Design.RenderType == RenderType.CardBody) 4584 { 4585 WriteLiteral(" <div"); 4586 BeginWriteAttribute("class", " class=\"", 64054, "\"", 64083, 3); 4587 WriteAttributeValue("", 64062, "card", 64062, 4, true); 4588 WriteAttributeValue(" ", 64066, cssClass, 64067, 9, false); 4589 WriteAttributeValue(" ", 64076, "dw-mod", 64077, 7, true); 4590 EndWriteAttribute(); 4591 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4592 } 4593 4594 if (item.Design.RenderType == RenderType.CardFooter) 4595 { 4596 WriteLiteral(" <div"); 4597 BeginWriteAttribute("class", " class=\"", 64317, "\"", 64353, 3); 4598 WriteAttributeValue("", 64325, "card-footer", 64325, 11, true); 4599 WriteAttributeValue(" ", 64336, cssClass, 64337, 9, false); 4600 WriteAttributeValue(" ", 64346, "dw-mod", 64347, 7, true); 4601 EndWriteAttribute(); 4602 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4603 } 4604 } 4605 else 4606 { 4607 RenderBlock(item); 4608 } 4609 } 4610 4611 if (debug) { 4612 WriteLiteral(" <!-- Block END: "); 4613 Write(item.Id); 4614 WriteLiteral(" -->\r\n"); 4615 } 4616 } 4617 } 4618 4619 void RenderBlock(Block item) 4620 { 4621 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false; 4622 4623 if (item.Template != null) 4624 { 4625 Write(BlocksPage.RenderTemplate(item.Template)); 4626 4627 } 4628 4629 if (item.Component != null) 4630 { 4631 string customSufix = "Custom"; 4632 string methodName = item.Component.HelperName; 4633 4634 ComponentBase[] methodParameters = new ComponentBase[1]; 4635 methodParameters[0] = item.Component; 4636 Type methodType = this.GetType(); 4637 4638 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix); 4639 MethodInfo generalMethod = methodType.GetMethod(methodName); 4640 4641 try { 4642 if (debug) { 4643 WriteLiteral(" <!-- Component: "); 4644 Write(methodName.Replace("Render", "")); 4645 WriteLiteral(" -->\r\n"); 4646 } 4647 Write(customMethod.Invoke(this, methodParameters).ToString()); 4648 ; 4649 } catch { 4650 try { 4651 Write(generalMethod.Invoke(this, methodParameters).ToString()); 4652 4653 ; 4654 } catch(Exception ex) { 4655 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex); 4656 } 4657 } 4658 } 4659 4660 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList) 4661 { 4662 RenderBlockList(item.BlocksList); 4663 } 4664 } 4665 4666 void Render(ComponentBase component) 4667 { 4668 if (component != null) 4669 { 4670 Write(component.Render(this)); 4671 4672 } 4673 } 4674 4675 void RenderIcon(Icon settings) 4676 { 4677 if (settings != null) 4678 { 4679 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : ""; 4680 4681 if (settings.Name != null) 4682 { 4683 if (string.IsNullOrEmpty(settings.Label)) 4684 { 4685 WriteLiteral(" <i"); 4686 BeginWriteAttribute("class", " class=\"", 67249, "\"", 67307, 3); 4687 WriteAttributeValue("", 67257, settings.Prefix, 67257, 16, false); 4688 WriteAttributeValue(" ", 67273, settings.Name, 67274, 14, false); 4689 WriteAttributeValue(" ", 67288, settings.CssClass, 67289, 18, false); 4690 EndWriteAttribute(); 4691 WriteLiteral(" "); 4692 Write(color); 4693 WriteLiteral("></i>\r\n"); 4694 } 4695 else 4696 { 4697 if (settings.LabelPosition == IconLabelPosition.Before) 4698 { 4699 WriteLiteral(" <div"); 4700 BeginWriteAttribute("class", " class=\"", 67510, "\"", 67570, 3); 4701 WriteAttributeValue("", 67518, "u-flex", 67518, 6, true); 4702 WriteAttributeValue(" ", 67524, "u-flex--align-items-center", 67525, 27, true); 4703 WriteAttributeValue(" ", 67551, settings.CssClass, 67552, 18, false); 4704 EndWriteAttribute(); 4705 WriteLiteral(">"); 4706 Write(settings.Label); 4707 WriteLiteral(" <i"); 4708 BeginWriteAttribute("class", " class=\"", 67590, "\"", 67643, 3); 4709 WriteAttributeValue("", 67598, settings.Prefix, 67598, 16, false); 4710 WriteAttributeValue(" ", 67614, settings.Name, 67615, 14, false); 4711 WriteAttributeValue(" ", 67629, "u-margin-left", 67630, 14, true); 4712 EndWriteAttribute(); 4713 WriteLiteral(" "); 4714 Write(color); 4715 WriteLiteral("></i></div>\r\n"); 4716 } 4717 else 4718 { 4719 WriteLiteral(" <div"); 4720 BeginWriteAttribute("class", " class=\"", 67764, "\"", 67824, 3); 4721 WriteAttributeValue("", 67772, "u-flex", 67772, 6, true); 4722 WriteAttributeValue(" ", 67778, "u-flex--align-items-center", 67779, 27, true); 4723 WriteAttributeValue(" ", 67805, settings.CssClass, 67806, 18, false); 4724 EndWriteAttribute(); 4725 WriteLiteral("><i"); 4726 BeginWriteAttribute("class", " class=\"", 67828, "\"", 67894, 4); 4727 WriteAttributeValue("", 67836, settings.Prefix, 67836, 16, false); 4728 WriteAttributeValue(" ", 67852, settings.Name, 67853, 14, false); 4729 WriteAttributeValue(" ", 67867, "u-margin-right--lg", 67868, 19, true); 4730 WriteAttributeValue(" ", 67886, "u-w20px", 67887, 8, true); 4731 EndWriteAttribute(); 4732 WriteLiteral(" "); 4733 Write(color); 4734 WriteLiteral("></i>"); 4735 Write(settings.Label); 4736 WriteLiteral("</div>\r\n"); 4737 } 4738 } 4739 } 4740 else if (!string.IsNullOrEmpty(settings.Label)) 4741 { 4742 Write(settings.Label); 4743 4744 } 4745 } 4746 } 4747 4748 void RenderButton(Button settings) 4749 { 4750 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null)) 4751 { 4752 Dictionary<string, string> attributes = new Dictionary<string, string>(); 4753 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>(); 4754 if (settings.Disabled) { 4755 attributes.Add("disabled", "true"); 4756 classList.Add("disabled"); 4757 } 4758 4759 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle)) 4760 { 4761 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N"); 4762 RenderConfirmDialog(settings); 4763 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true"; 4764 } 4765 4766 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 4767 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 4768 if (!string.IsNullOrEmpty(settings.AltText)) 4769 { 4770 attributes.Add("title", settings.AltText); 4771 } 4772 else if (!string.IsNullOrEmpty(settings.Title)) 4773 { 4774 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty); 4775 cleanTitle = cleanTitle.Replace("&nbsp;", " "); 4776 attributes.Add("title", cleanTitle); 4777 } 4778 4779 var onClickEvents = new List<string>(); 4780 if (!string.IsNullOrEmpty(settings.OnClick)) 4781 { 4782 onClickEvents.Add(settings.OnClick); 4783 } 4784 if (!string.IsNullOrEmpty(settings.Href)) 4785 { 4786 if (settings.Href.Contains("javascript")) 4787 { 4788 settings.Href = settings.Href.Replace("http://", ""); 4789 } 4790 onClickEvents.Add("location.href='" + settings.Href + "'"); 4791 } 4792 if (onClickEvents.Count > 0) 4793 { 4794 attributes.Add("onClick", string.Join(";", onClickEvents)); 4795 } 4796 4797 if (settings.ButtonLayout != ButtonLayout.None) 4798 { 4799 classList.Add("btn"); 4800 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower(); 4801 if (btnLayout == "linkclean") 4802 { 4803 btnLayout = "link-clean"; //fix 4804 } 4805 classList.Add("btn--" + btnLayout); 4806 } 4807 4808 if (settings.Icon == null) 4809 { 4810 settings.Icon = new Icon(); 4811 } 4812 4813 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : ""; 4814 settings.Icon.Label = settings.Title; 4815 4816 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower()); 4817 4818 WriteLiteral(" <button"); 4819 BeginWriteAttribute("class", " class=\"", 71487, "\"", 71530, 2); 4820 WriteAttributeValue("", 71495, string.Join(" ", classList), 71495, 28, false); 4821 WriteAttributeValue(" ", 71523, "dw-mod", 71524, 7, true); 4822 EndWriteAttribute(); 4823 WriteLiteral(" "); 4824 Write(ComponentMethods.AddAttributes(attributes)); 4825 WriteLiteral(" "); 4826 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 4827 WriteLiteral(">"); 4828 RenderIcon(settings.Icon);WriteLiteral("</button>\r\n"); 4829 } 4830 } 4831 4832 void RenderConfirmDialog(Button settings) 4833 { 4834 Modal confirmDialog = new Modal { 4835 Id = settings.Id, 4836 Width = ModalWidth.Sm, 4837 Heading = new Heading 4838 { 4839 Level = 2, 4840 Title = settings.ConfirmTitle 4841 }, 4842 BodyText = settings.ConfirmText 4843 }; 4844 4845 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"}); 4846 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick }); 4847 4848 RenderModal(confirmDialog); 4849 } 4850 4851 void RenderLink(Link settings) 4852 { 4853 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null)) 4854 { 4855 Dictionary<string, string> attributes = new Dictionary<string, string>(); 4856 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>(); 4857 if (settings.Disabled) 4858 { 4859 attributes.Add("disabled", "true"); 4860 classList.Add("disabled"); 4861 } 4862 4863 if (!string.IsNullOrEmpty(settings.AltText)) 4864 { 4865 attributes.Add("title", settings.AltText); 4866 } 4867 else if (!string.IsNullOrEmpty(settings.Title)) 4868 { 4869 attributes.Add("title", settings.Title); 4870 } 4871 4872 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 4873 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 4874 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); } 4875 attributes.Add("href", settings.Href); 4876 4877 if (settings.ButtonLayout != ButtonLayout.None) 4878 { 4879 classList.Add("btn"); 4880 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower(); 4881 if (btnLayout == "linkclean") 4882 { 4883 btnLayout = "link-clean"; //fix 4884 } 4885 classList.Add("btn--" + btnLayout); 4886 } 4887 4888 if (settings.Icon == null) 4889 { 4890 settings.Icon = new Icon(); 4891 } 4892 settings.Icon.Label = settings.Title; 4893 4894 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None) 4895 { 4896 settings.Rel = LinkRelType.Noopener; 4897 } 4898 if (settings.Target != LinkTargetType.None) 4899 { 4900 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower()); 4901 } 4902 if (settings.Download) 4903 { 4904 attributes.Add("download", "true"); 4905 } 4906 if (settings.Rel != LinkRelType.None) 4907 { 4908 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower()); 4909 } 4910 4911 WriteLiteral(" <a"); 4912 BeginWriteAttribute("class", " class=\"", 75262, "\"", 75305, 2); 4913 WriteAttributeValue("", 75270, string.Join(" ", classList), 75270, 28, false); 4914 WriteAttributeValue(" ", 75298, "dw-mod", 75299, 7, true); 4915 EndWriteAttribute(); 4916 WriteLiteral(" "); 4917 Write(ComponentMethods.AddAttributes(attributes)); 4918 WriteLiteral(" "); 4919 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 4920 WriteLiteral(">Render(settings.Icon);</a>\r\n"); 4921 } 4922 } 4923 4924 void RenderRating(Rating settings) 4925 { 4926 if (settings.Score > 0) 4927 { 4928 int rating = settings.Score; 4929 string iconType = "fa-star"; 4930 4931 switch (settings.Type.ToString()) { 4932 case "Stars": 4933 iconType = "fa-star"; 4934 break; 4935 case "Hearts": 4936 iconType = "fa-heart"; 4937 break; 4938 case "Lemons": 4939 iconType = "fa-lemon"; 4940 break; 4941 case "Bombs": 4942 iconType = "fa-bomb"; 4943 break; 4944 } 4945 4946 WriteLiteral(" <div class=\"u-ta-right\">\r\n"); 4947 for (int i = 0; i < settings.OutOf; i++) 4948 { 4949 WriteLiteral(" <i"); 4950 BeginWriteAttribute("class", " class=\"", 76439, "\"", 76486, 2); 4951 WriteAttributeValue("", 76447, rating > i ? "fas" : "far", 76447, 29, false); 4952 WriteAttributeValue(" ", 76476, iconType, 76477, 9, false); 4953 EndWriteAttribute(); 4954 WriteLiteral("></i>\r\n"); 4955 } 4956 WriteLiteral(" </div>\r\n"); 4957 } 4958 } 4959 4960 void RenderNavigation(Navigation settings) { 4961 RenderNavigation(new 4962 { 4963 id = settings.Id, 4964 cssclass = settings.CssClass, 4965 startLevel = settings.StartLevel, 4966 endlevel = settings.EndLevel, 4967 expandmode = settings.Expandmode, 4968 sitemapmode = settings.SitemapMode, 4969 template = settings.Template 4970 }); 4971 } 4972 4973 void RenderLeftNavigation(LeftNavigation settings) { 4974 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id; 4975 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template; 4976 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel; 4977 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel; 4978 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode; 4979 4980 WriteLiteral(" <div class=\"grid__cell\">\r\n RenderNavigation(settings);\r\n </div> \r\n"); 4981 } 4982 4983 void RenderHeading(Heading settings) 4984 { 4985 if (settings != null && !string.IsNullOrEmpty(settings.Title)) 4986 { 4987 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : ""; 4988 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div"; 4989 4990 Write("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">"); 4991 4992 if (!string.IsNullOrEmpty(settings.Link)) 4993 { 4994 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None }); 4995 } 4996 else 4997 { 4998 if (settings.Icon == null) 4999 { 5000 settings.Icon = new Icon(); 5001 } 5002 settings.Icon.Label = settings.Title; 5003 RenderIcon(settings.Icon); 5004 } 5005 Write("</" + tagName + ">"); 5006 ; 5007 } 5008 } 5009 5010 void RenderImage(Image settings) 5011 { 5012 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None) 5013 { 5014 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5015 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); } 5016 5017 if (settings.Caption != null) 5018 { 5019 WriteLiteral(" "); 5020 WriteLiteral("<div>\r\n"); 5021 } 5022 5023 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower(); 5024 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower(); 5025 5026 WriteLiteral(" <div"); 5027 BeginWriteAttribute("class", " class=\"", 79967, "\"", 80048, 5); 5028 WriteAttributeValue("", 79975, "image-filter", 79975, 12, true); 5029 WriteAttributeValue(" ", 79987, "image-filter--", 79988, 15, true); 5030 WriteAttributeValue("", 80002, primaryFilterClass, 80002, 19, false); 5031 WriteAttributeValue(" ", 80021, "u-position-relative", 80022, 20, true); 5032 WriteAttributeValue(" ", 80041, "dw-mod", 80042, 7, true); 5033 EndWriteAttribute(); 5034 WriteLiteral(" "); 5035 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5036 WriteLiteral(">\r\n <div"); 5037 BeginWriteAttribute("class", " class=\"", 80128, "\"", 80191, 4); 5038 WriteAttributeValue("", 80136, "image-filter", 80136, 12, true); 5039 WriteAttributeValue(" ", 80148, "image-filter--", 80149, 15, true); 5040 WriteAttributeValue("", 80163, secondaryFilterClass, 80163, 21, false); 5041 WriteAttributeValue(" ", 80184, "dw-mod", 80185, 7, true); 5042 EndWriteAttribute(); 5043 WriteLiteral(">\r\n"); 5044 if (settings.Link != null) 5045 { 5046 WriteLiteral(" <a"); 5047 BeginWriteAttribute("href", " href=\"", 80305, "\"", 80326, 1); 5048 WriteAttributeValue("", 80312, settings.Link, 80312, 14, false); 5049 EndWriteAttribute(); 5050 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n"); 5051 } 5052 else 5053 { 5054 RenderTheImage(settings); 5055 } 5056 WriteLiteral(" </div>\r\n </div>\r\n"); 5057 5058 if (settings.Caption != null) 5059 { 5060 WriteLiteral(" <span class=\"image-caption dw-mod\">"); 5061 Write(settings.Caption); 5062 WriteLiteral("</span>\r\n "); 5063 WriteLiteral("</div>\r\n"); 5064 } 5065 } 5066 else 5067 { 5068 if (settings.Caption != null) 5069 { 5070 WriteLiteral(" "); 5071 WriteLiteral("<div>\r\n"); 5072 } 5073 if (!string.IsNullOrEmpty(settings.Link)) 5074 { 5075 WriteLiteral(" <a"); 5076 BeginWriteAttribute("href", " href=\"", 81069, "\"", 81090, 1); 5077 WriteAttributeValue("", 81076, settings.Link, 81076, 14, false); 5078 EndWriteAttribute(); 5079 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n"); 5080 } 5081 else 5082 { 5083 RenderTheImage(settings); 5084 } 5085 5086 if (settings.Caption != null) 5087 { 5088 WriteLiteral(" <span class=\"image-caption dw-mod\">"); 5089 Write(settings.Caption); 5090 WriteLiteral("</span>\r\n "); 5091 WriteLiteral("</div>\r\n"); 5092 } 5093 } 5094 } 5095 5096 void RenderTheImage(Image settings) 5097 { 5098 if (settings != null) 5099 { 5100 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg"; 5101 string placeholderImage = "/Files/Images/placeholder.gif"; 5102 string imageEngine = "/Admin/Public/GetImage.ashx?"; 5103 5104 string imageStyle = ""; 5105 5106 switch (settings.Style) 5107 { 5108 case ImageStyle.Ball: 5109 imageStyle = "grid__cell-img--ball"; 5110 break; 5111 5112 case ImageStyle.Triangle: 5113 imageStyle = "grid__cell-img--triangle"; 5114 break; 5115 } 5116 5117 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle) 5118 { 5119 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop; 5120 5121 if (settings.ImageDefault != null) 5122 { 5123 settings.ImageDefault.Height = settings.ImageDefault.Width; 5124 } 5125 if (settings.ImageMedium != null) 5126 { 5127 settings.ImageMedium.Height = settings.ImageMedium.Width; 5128 } 5129 if (settings.ImageSmall != null) 5130 { 5131 settings.ImageSmall.Height = settings.ImageSmall.Width; 5132 } 5133 } 5134 5135 string defaultImage = imageEngine; 5136 string imageSmall = ""; 5137 string imageMedium = ""; 5138 5139 if (settings.DisableImageEngine) 5140 { 5141 defaultImage = settings.Path; 5142 } 5143 else 5144 { 5145 if (settings.ImageDefault != null) 5146 { 5147 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault); 5148 5149 if (settings.Path.GetType() != typeof(string)) 5150 { 5151 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5152 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5153 } 5154 else 5155 { 5156 defaultImage += settings.Path != null ? "Image=" + settings.Path : ""; 5157 } 5158 5159 defaultImage += "&AlternativeImage=" + alternativeImage; 5160 } 5161 5162 if (settings.ImageSmall != null) 5163 { 5164 imageSmall = "data-src-small=\"" + imageEngine; 5165 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall); 5166 5167 if (settings.Path.GetType() != typeof(string)) 5168 { 5169 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5170 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5171 } 5172 else 5173 { 5174 imageSmall += settings.Path != null ? "Image=" + settings.Path : ""; 5175 } 5176 5177 imageSmall += "&alternativeImage=" + alternativeImage; 5178 5179 imageSmall += "\""; 5180 } 5181 5182 if (settings.ImageMedium != null) 5183 { 5184 imageMedium = "data-src-medium=\"" + imageEngine; 5185 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium); 5186 5187 if (settings.Path.GetType() != typeof(string)) 5188 { 5189 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5190 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5191 } 5192 else 5193 { 5194 imageMedium += settings.Path != null ? "Image=" + settings.Path : ""; 5195 } 5196 5197 imageMedium += "&alternativeImage=" + alternativeImage; 5198 5199 imageMedium += "\""; 5200 } 5201 } 5202 5203 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5204 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); } 5205 if (!string.IsNullOrEmpty(settings.Title)) 5206 { 5207 optionalAttributes.Add("alt", settings.Title); 5208 optionalAttributes.Add("title", settings.Title); 5209 } 5210 5211 if (settings.DisableLazyLoad) 5212 { 5213 WriteLiteral(" <img"); 5214 BeginWriteAttribute("id", " id=\"", 86569, "\"", 86586, 1); 5215 WriteAttributeValue("", 86574, settings.Id, 86574, 12, false); 5216 EndWriteAttribute(); 5217 BeginWriteAttribute("class", " class=\"", 86587, "\"", 86632, 3); 5218 WriteAttributeValue("", 86595, imageStyle, 86595, 11, false); 5219 WriteAttributeValue(" ", 86606, settings.CssClass, 86607, 18, false); 5220 WriteAttributeValue(" ", 86625, "dw-mod", 86626, 7, true); 5221 EndWriteAttribute(); 5222 BeginWriteAttribute("src", " src=\"", 86633, "\"", 86652, 1); 5223 WriteAttributeValue("", 86639, defaultImage, 86639, 13, false); 5224 EndWriteAttribute(); 5225 WriteLiteral(" "); 5226 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5227 WriteLiteral(" "); 5228 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5229 WriteLiteral(" />\r\n"); 5230 } 5231 else 5232 { 5233 5234 WriteLiteral(" <img"); 5235 BeginWriteAttribute("id", " id=\"", 86850, "\"", 86867, 1); 5236 WriteAttributeValue("", 86855, settings.Id, 86855, 12, false); 5237 EndWriteAttribute(); 5238 BeginWriteAttribute("class", " class=\"", 86868, "\"", 86913, 3); 5239 WriteAttributeValue("", 86876, imageStyle, 86876, 11, false); 5240 WriteAttributeValue(" ", 86887, settings.CssClass, 86888, 18, false); 5241 WriteAttributeValue(" ", 86906, "dw-mod", 86907, 7, true); 5242 EndWriteAttribute(); 5243 WriteLiteral(" loading=\"lazy\""); 5244 BeginWriteAttribute("src", " src=\"", 86929, "\"", 86948, 1); 5245 WriteAttributeValue("", 86935, defaultImage, 86935, 13, false); 5246 EndWriteAttribute(); 5247 WriteLiteral(" "); 5248 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5249 WriteLiteral(" "); 5250 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5251 WriteLiteral(" />\r\n"); 5252 } 5253 } 5254 } 5255 5256 void RenderHiddenField(HiddenField settings) { 5257 var attributes = new Dictionary<string, string>(); 5258 attributes.Add("type", "hidden"); 5259 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5260 if (settings.Value != null) { attributes.Add("value", settings.Value); } 5261 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 5262 5263 WriteLiteral(" <input "); 5264 Write(ComponentMethods.AddAttributes(attributes)); 5265 WriteLiteral(" "); 5266 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5267 WriteLiteral("/>\r\n"); 5268 } 5269 5270 void RenderRadioButtonField(RadioButtonField settings) 5271 { 5272 var attributes = new Dictionary<string, string>(); 5273 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id)) 5274 { 5275 settings.Id = Guid.NewGuid().ToString("N"); 5276 } 5277 5278 /*base settings*/ 5279 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5280 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); } 5281 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); } 5282 if (settings.Disabled) { attributes.Add("disabled", "true"); } 5283 if (settings.Required) { attributes.Add("required", "true"); } 5284 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 5285 /*end*/ 5286 5287 attributes.Add("type", "radio"); 5288 if (settings.Checked) { attributes.Add("checked", "true"); } 5289 settings.CssClass = "form__control " + settings.CssClass; 5290 if (settings.Value != null) { attributes.Add("value", settings.Value); } 5291 5292 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value); 5293 5294 WriteLiteral(" <div"); 5295 BeginWriteAttribute("class", " class=\"", 89268, "\"", 89326, 3); 5296 WriteAttributeValue("", 89276, "form__field-group", 89276, 17, true); 5297 WriteAttributeValue(" ", 89293, settings.WrapperCssClass, 89294, 25, false); 5298 WriteAttributeValue(" ", 89319, "dw-mod", 89320, 7, true); 5299 EndWriteAttribute(); 5300 WriteLiteral(">\r\n <input "); 5301 Write(ComponentMethods.AddAttributes(resultAttributes)); 5302 WriteLiteral(" class=\""); 5303 Write(settings.CssClass); 5304 WriteLiteral(" dw-mod\" />\r\n"); 5305 if (!string.IsNullOrEmpty(settings.Label)) 5306 { 5307 WriteLiteral(" <label"); 5308 BeginWriteAttribute("for", " for=\"", 89531, "\"", 89549, 1); 5309 WriteAttributeValue("", 89537, settings.Id, 89537, 12, false); 5310 EndWriteAttribute(); 5311 WriteLiteral(" class=\"dw-mod\">"); 5312 Write(settings.Label); 5313 WriteLiteral("</label>\r\n"); 5314 } 5315 if (!string.IsNullOrEmpty(settings.HelpText)) 5316 { 5317 WriteLiteral(" <small class=\"form__help-text\">"); 5318 Write(settings.HelpText); 5319 WriteLiteral("</small>\r\n"); 5320 } 5321 WriteLiteral(" Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n"); 5322 } 5323 5324 void RenderRadioButtonListField(RadioButtonListField settings) 5325 { 5326 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; } 5327 5328 WriteLiteral(" <div"); 5329 BeginWriteAttribute("class", " class=\"", 90264, "\"", 90338, 4); 5330 WriteAttributeValue("", 90272, "form__field-group", 90272, 17, true); 5331 WriteAttributeValue(" ", 90289, settings.WrapperCssClass, 90290, 25, false); 5332 WriteAttributeValue(" ", 90315, "u-margin-bottom", 90316, 16, true); 5333 WriteAttributeValue(" ", 90331, "dw-mod", 90332, 7, true); 5334 EndWriteAttribute(); 5335 WriteLiteral(" "); 5336 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5337 WriteLiteral(">\r\n"); 5338 if (!string.IsNullOrEmpty(settings.Label)) 5339 { 5340 WriteLiteral(" <label>"); 5341 Write(settings.Label); 5342 WriteLiteral("</label>\r\n"); 5343 } 5344 if (!string.IsNullOrEmpty(settings.HelpText)) 5345 { 5346 WriteLiteral(" <small class=\"form__help-text\">"); 5347 Write(settings.HelpText); 5348 WriteLiteral("</small>\r\n"); 5349 } 5350 WriteLiteral("\r\n"); 5351 foreach (var item in settings.Options) 5352 { 5353 if (settings.Required) 5354 { 5355 item.Required = true; 5356 } 5357 if (settings.Disabled) 5358 { 5359 item.Disabled = true; 5360 } 5361 if (!string.IsNullOrEmpty(settings.Name)) 5362 { 5363 item.Name = settings.Name; 5364 } 5365 if (settings.Value != null && settings.Value == item.Value) 5366 { 5367 item.Checked = true; 5368 } 5369 if (!string.IsNullOrEmpty(settings.OnClick)) 5370 { 5371 item.OnClick += settings.OnClick; 5372 } 5373 if (!string.IsNullOrEmpty(settings.OnChange)) 5374 { 5375 item.OnChange += settings.OnChange; 5376 } 5377 if (!string.IsNullOrEmpty(settings.CssClass)) 5378 { 5379 item.CssClass += settings.CssClass; 5380 } 5381 Render(item); 5382 } 5383 WriteLiteral("\r\n Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n"); 5384 } 5385 5386 void RenderForm(Form settings) { 5387 if (settings != null) 5388 { 5389 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5390 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); }; 5391 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); }; 5392 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); }; 5393 var enctypes = new Dictionary<string, string> 5394 { 5395 { "multipart", "multipart/form-data" }, 5396 { "text", "text/plain" }, 5397 { "application", "application/x-www-form-urlencoded" } 5398 }; 5399 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); }; 5400 optionalAttributes.Add("method", settings.Method.ToString()); 5401 5402 if (!string.IsNullOrEmpty(settings.FormStartMarkup)) 5403 { 5404 Write(settings.FormStartMarkup); 5405 5406 } 5407 else 5408 { 5409 WriteLiteral(" "); 5410 WriteLiteral("<form class=\""); 5411 Write(settings.CssClass); 5412 WriteLiteral(" u-no-margin dw-mod\" "); 5413 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5414 WriteLiteral(" "); 5415 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5416 WriteLiteral(">\r\n"); 5417 } 5418 5419 foreach (var field in settings.GetFields()) 5420 { 5421 Render(field); 5422 } 5423 5424 WriteLiteral(" "); 5425 WriteLiteral("</form>\r\n"); 5426 } 5427 } 5428 5429 void RenderText(Text settings) 5430 { 5431 Write(settings.Content); 5432 5433 } 5434 5435 void RenderContentModule(ContentModule settings) { 5436 if (!string.IsNullOrEmpty(settings.Content)) 5437 { 5438 Write(settings.Content); 5439 5440 } 5441 } 5442 5443 void RenderModal(Modal settings) { 5444 if (settings != null) 5445 { 5446 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N"); 5447 5448 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : ""; 5449 5450 WriteLiteral(" <input type=\"checkbox\""); 5451 BeginWriteAttribute("id", " id=\"", 94734, "\"", 94761, 2); 5452 WriteAttributeValue("", 94739, modalId, 94739, 10, false); 5453 WriteAttributeValue("", 94749, "ModalTrigger", 94749, 12, true); 5454 EndWriteAttribute(); 5455 WriteLiteral(" class=\"modal-trigger\" "); 5456 Write(onchange); 5457 WriteLiteral(" />\r\n"); 5458 WriteLiteral(" <div class=\"modal-container\">\r\n"); 5459 if (!settings.DisableDarkOverlay) 5460 { 5461 WriteLiteral(" <label"); 5462 BeginWriteAttribute("for", " for=\"", 94941, "\"", 94969, 2); 5463 WriteAttributeValue("", 94947, modalId, 94947, 10, false); 5464 WriteAttributeValue("", 94957, "ModalTrigger", 94957, 12, true); 5465 EndWriteAttribute(); 5466 BeginWriteAttribute("id", " id=\"", 94970, "\"", 94997, 2); 5467 WriteAttributeValue("", 94975, modalId, 94975, 10, false); 5468 WriteAttributeValue("", 94985, "ModalOverlay", 94985, 12, true); 5469 EndWriteAttribute(); 5470 WriteLiteral(" class=\"modal-overlay\"></label>\r\n"); 5471 } 5472 WriteLiteral(" <div"); 5473 BeginWriteAttribute("class", " class=\"", 95070, "\"", 95179, 5); 5474 WriteAttributeValue("", 95078, "modal", 95078, 5, true); 5475 WriteAttributeValue(" ", 95083, "modal--", 95084, 8, true); 5476 WriteAttributeValue("", 95091, settings.Width.ToString().ToLower(), 95091, 36, false); 5477 WriteAttributeValue(" ", 95127, "modal-height--", 95128, 15, true); 5478 WriteAttributeValue("", 95142, settings.Height.ToString().ToLower(), 95142, 37, false); 5479 EndWriteAttribute(); 5480 BeginWriteAttribute("id", " id=\"", 95180, "\"", 95200, 2); 5481 WriteAttributeValue("", 95185, modalId, 95185, 10, false); 5482 WriteAttributeValue("", 95195, "Modal", 95195, 5, true); 5483 EndWriteAttribute(); 5484 WriteLiteral(">\r\n"); 5485 if (settings.Heading != null) 5486 { 5487 if (!string.IsNullOrEmpty(settings.Heading.Title)) 5488 { 5489 WriteLiteral(" <div class=\"modal__header\">\r\n RenderHeading(settings.Heading);\r\n </div>\r\n"); 5490 } 5491 } 5492 WriteLiteral(" <div"); 5493 BeginWriteAttribute("class", " class=\"", 95615, "\"", 95710, 2); 5494 WriteAttributeValue("", 95623, "modal__body", 95623, 11, true); 5495 WriteAttributeValue(" ", 95634, settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "", 95635, 75, false); 5496 EndWriteAttribute(); 5497 WriteLiteral(">\r\n"); 5498 if (!string.IsNullOrEmpty(settings.BodyText)) 5499 { 5500 Write(settings.BodyText); 5501 5502 } 5503 if (settings.BodyTemplate != null) 5504 { 5505 Write(settings.BodyTemplate); 5506 5507 } 5508 5509 var actions = settings.GetActions(); 5510 WriteLiteral(" </div>\r\n"); 5511 if (actions.Length > 0) 5512 { 5513 WriteLiteral(" <div class=\"modal__footer\">\r\n"); 5514 foreach (var action in actions) 5515 { 5516 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") { 5517 action.CssClass += " u-no-margin"; 5518 } else { 5519 action.CssClass += " u-full-width u-margin-bottom"; 5520 } 5521 5522 Render(action); 5523 } 5524 WriteLiteral(" </div>\r\n"); 5525 } 5526 WriteLiteral(" <label class=\"modal__close-btn\""); 5527 BeginWriteAttribute("for", " for=\"", 96954, "\"", 96982, 2); 5528 WriteAttributeValue("", 96960, modalId, 96960, 10, false); 5529 WriteAttributeValue("", 96970, "ModalTrigger", 96970, 12, true); 5530 EndWriteAttribute(); 5531 WriteLiteral("></label>\r\n </div>\r\n </div>\r\n"); 5532 } 5533 } 5534 5535 void RenderMediaListItem(MediaListItem settings) 5536 { 5537 WriteLiteral(" <div"); 5538 BeginWriteAttribute("class", " class=\"", 97220, "\"", 97269, 3); 5539 WriteAttributeValue("", 97228, "media-list-item", 97228, 15, true); 5540 WriteAttributeValue(" ", 97243, settings.CssClass, 97244, 18, false); 5541 WriteAttributeValue(" ", 97262, "dw-mod", 97263, 7, true); 5542 EndWriteAttribute(); 5543 WriteLiteral(" "); 5544 Write(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : ""); 5545 WriteLiteral(">\r\n"); 5546 if (!string.IsNullOrEmpty(settings.Label)) 5547 { 5548 if (!string.IsNullOrEmpty(settings.Link)) 5549 { 5550 Render(new Link 5551 { 5552 Href = settings.Link, 5553 CssClass = "media-list-item__sticker dw-mod", 5554 ButtonLayout = ButtonLayout.None, 5555 Title = settings.Label, 5556 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : "" 5557 }); 5558 } 5559 else if (!string.IsNullOrEmpty(settings.OnClick)) 5560 { 5561 WriteLiteral(" <span class=\"media-list-item__sticker dw-mod\""); 5562 BeginWriteAttribute("onclick", " onclick=\"", 98077, "\"", 98106, 1); 5563 WriteAttributeValue("", 98087, settings.OnClick, 98087, 19, false); 5564 EndWriteAttribute(); 5565 WriteLiteral(">\r\n <span class=\"u-uppercase\">"); 5566 Write(settings.Label); 5567 WriteLiteral("</span>\r\n </span>\r\n"); 5568 } 5569 else 5570 { 5571 WriteLiteral(" <span class=\"media-list-item__sticker media-list-item__sticker--no-link dw-mod\">\r\n <span class=\"u-uppercase\">"); 5572 Write(settings.Label); 5573 WriteLiteral("</span>\r\n </span>\r\n"); 5574 } 5575 } 5576 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"); 5577 if (!string.IsNullOrEmpty(settings.Title)) 5578 { 5579 if (!string.IsNullOrEmpty(settings.Link)) 5580 { 5581 Render(new Link 5582 { 5583 Href = settings.Link, 5584 CssClass = "media-list-item__name dw-mod", 5585 ButtonLayout = ButtonLayout.None, 5586 Title = settings.Title, 5587 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : "" 5588 }); 5589 } 5590 else if (!string.IsNullOrEmpty(settings.OnClick)) 5591 { 5592 WriteLiteral(" <span class=\"media-list-item__name dw-mod\""); 5593 BeginWriteAttribute("onclick", " onclick=\"", 99603, "\"", 99632, 1); 5594 WriteAttributeValue("", 99613, settings.OnClick, 99613, 19, false); 5595 EndWriteAttribute(); 5596 WriteLiteral(">"); 5597 Write(settings.Title); 5598 WriteLiteral("</span>\r\n"); 5599 } 5600 else 5601 { 5602 WriteLiteral(" <span class=\"media-list-item__name media-list-item__name--no-link dw-mod\">"); 5603 Write(settings.Title); 5604 WriteLiteral("</span>\r\n"); 5605 } 5606 } 5607 WriteLiteral("\r\n"); 5608 if (!string.IsNullOrEmpty(settings.Status)) 5609 { 5610 WriteLiteral(" <div class=\"media-list-item__state dw-mod\">"); 5611 Write(settings.Status); 5612 WriteLiteral("</div>\r\n"); 5613 } 5614 WriteLiteral(" </div>\r\n"); 5615 5616 settings.InfoTable.CssClass += " media-list-item__parameters-table"; 5617 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"); 5618 5619 var actions = settings.GetActions(); 5620 5621 foreach (ButtonBase action in actions) 5622 { 5623 action.ButtonLayout = ButtonLayout.None; 5624 action.CssClass += " media-list-item__action link"; 5625 5626 Render(action); 5627 } 5628 WriteLiteral(" </div>\r\n\r\n"); 5629 if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title)) 5630 { 5631 settings.SelectButton.CssClass += " u-no-margin"; 5632 5633 WriteLiteral(" <div class=\"media-list-item__action-button\">\r\n Render(settings.SelectButton);\r\n </div>\r\n"); 5634 } 5635 WriteLiteral(" </div>\r\n </div>\r\n </div>\r\n"); 5636 } 5637 5638 void RenderTable(Table settings) 5639 { 5640 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5641 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5642 5643 var enumToClasses = new Dictionary<TableDesign, string> 5644 { 5645 { TableDesign.Clean, "table--clean" }, 5646 { TableDesign.Bordered, "table--bordered" }, 5647 { TableDesign.Striped, "table--striped" }, 5648 { TableDesign.Hover, "table--hover" }, 5649 { TableDesign.Compact, "table--compact" }, 5650 { TableDesign.Condensed, "table--condensed" }, 5651 { TableDesign.NoTopBorder, "table--no-top-border" } 5652 }; 5653 string tableDesignClass = ""; 5654 if (settings.Design != TableDesign.None) 5655 { 5656 tableDesignClass = enumToClasses[settings.Design]; 5657 } 5658 5659 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); } 5660 5661 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5662 5663 WriteLiteral(" <table "); 5664 Write(ComponentMethods.AddAttributes(resultAttributes)); 5665 WriteLiteral(">\r\n"); 5666 if (settings.Header != null) 5667 { 5668 WriteLiteral(" <thead>\r\n Render(settings.Header);\r\n </thead>\r\n"); 5669 } 5670 WriteLiteral(" <tbody>\r\n"); 5671 foreach (var row in settings.Rows) 5672 { 5673 Render(row); 5674 } 5675 WriteLiteral(" </tbody>\r\n"); 5676 if (settings.Footer != null) 5677 { 5678 WriteLiteral(" <tfoot>\r\n Render(settings.Footer);\r\n </tfoot>\r\n"); 5679 } 5680 WriteLiteral(" </table>\r\n"); 5681 } 5682 5683 void RenderTableRow(TableRow settings) 5684 { 5685 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5686 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5687 5688 var enumToClasses = new Dictionary<TableRowDesign, string> 5689 { 5690 { TableRowDesign.NoBorder, "table__row--no-border" }, 5691 { TableRowDesign.Border, "table__row--border" }, 5692 { TableRowDesign.TopBorder, "table__row--top-line" }, 5693 { TableRowDesign.BottomBorder, "table__row--bottom-line" }, 5694 { TableRowDesign.Solid, "table__row--solid" } 5695 }; 5696 5697 string tableRowDesignClass = ""; 5698 if (settings.Design != TableRowDesign.None) 5699 { 5700 tableRowDesignClass = enumToClasses[settings.Design]; 5701 } 5702 5703 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); } 5704 5705 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5706 5707 WriteLiteral(" <tr "); 5708 Write(ComponentMethods.AddAttributes(resultAttributes)); 5709 WriteLiteral(">\r\n"); 5710 foreach (var cell in settings.Cells) 5711 { 5712 if (settings.IsHeaderRow) 5713 { 5714 cell.IsHeader = true; 5715 } 5716 Render(cell); 5717 } 5718 WriteLiteral(" </tr>\r\n"); 5719 } 5720 5721 void RenderTableCell(TableCell settings) 5722 { 5723 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5724 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5725 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); } 5726 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); } 5727 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); } 5728 5729 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5730 5731 string tagName = settings.IsHeader ? "th" : "td"; 5732 5733 Write("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">"); 5734 Write(settings.Content); 5735 Write("</" + tagName + ">"); 5736 ; 5737 } 5738 5739 BlocksPage articlePage = BlocksPage.GetBlockPage("DynamicArticle"); 5740 5741 public string GetParentSettingsItem(string systemName) 5742 { 5743 string item = null; 5744 5745 Dynamicweb.Content.Page current = Dynamicweb.Services.Pages.GetPage(Model.ID); 5746 while (current != null && current.Parent != current) 5747 { 5748 var temp = current.Item != null ? current.Item[systemName] : ""; 5749 5750 if (temp != null) 5751 { 5752 item = temp.ToString(); 5753 5754 if (!String.IsNullOrEmpty(item) && !String.Equals("default", item, StringComparison.OrdinalIgnoreCase)) 5755 { 5756 break; 5757 } 5758 } 5759 5760 current = current.Parent; 5761 } 5762 5763 return item; 5764 } 5765 5766 public string GetArticleCategory(int pageId) 5767 { 5768 string categoryName = null; 5769 5770 //Secure that the article is not in the root folder = Actual has a category 5771 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null) 5772 { 5773 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null) 5774 { 5775 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType)) 5776 { 5777 categoryName = Dynamicweb.Services.Pages.GetPage(pageId).Parent.GetDisplayName(); 5778 } 5779 } 5780 } 5781 5782 return categoryName; 5783 } 5784 5785 public string GetArticleCategoryColor(int pageId) 5786 { 5787 string categoryColor = ""; 5788 5789 //Secure that the article is not in the root folder = Actual has a category 5790 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null) 5791 { 5792 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null) 5793 { 5794 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType)) 5795 { 5796 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"] != null) 5797 { 5798 var service = new ColorSwatchService(); 5799 categoryColor = Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"].ToString(); 5800 5801 if (!categoryColor.Contains("#")) 5802 { 5803 categoryColor = service.GetHexColor(Converter.ToInt32(Model.Area.ID), categoryColor); 5804 } 5805 } 5806 } 5807 } 5808 } 5809 5810 return categoryColor; 5811 } 5812 } 5813 } 5814 #pragma warning restore 1591 5815

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