Error compiling template "Designs/rm/DynamicArticle.cshtml"
Line 21: The using directive for 'Dynamicweb.Content.Items' appeared previously in this namespace
Line 22: The using directive for 'Dynamicweb.Frontend.Navigation' appeared previously in this namespace
Line 23: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 25: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 26: The using directive for 'System.Text.RegularExpressions' appeared previously in this namespace
Line 33: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 34: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 36: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 38: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 39: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 40: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 41: The using directive for 'System.Reflection' appeared previously in this namespace
Line 42: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 43: The using directive for 'System.Reflection' appeared previously in this namespace
Line 44: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 45: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 46: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 47: The using directive for 'System.Text.RegularExpressions' appeared previously in this namespace
Line 48: The using directive for 'System.Reflection' appeared previously in this namespace
Line 49: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 50: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 51: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 52: The using directive for 'System.Reflection' appeared previously in this namespace
Line 53: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 54: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 55: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 56: The using directive for 'System.Reflection' appeared previously in this namespace
Line 57: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 58: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 59: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 60: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 61: The using directive for 'System.Reflection' appeared previously in this namespace
Line 62: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 63: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 64: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 65: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 66: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 68: The using directive for 'System.Reflection' appeared previously in this namespace
Line 69: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 70: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 71: The using directive for 'System.Reflection' appeared previously in this namespace
Line 72: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 73: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 74: The using directive for 'System.Reflection' appeared previously in this namespace
Line 75: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 76: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 77: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 78: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 79: The using directive for 'System.Reflection' appeared previously in this namespace
Line 80: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 81: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 82: The using directive for 'System.Reflection' appeared previously in this namespace
Line 83: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 84: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 85: The using directive for 'System.Reflection' appeared previously in this namespace
Line 86: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 87: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 88: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 89: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 90: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 91: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 92: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 93: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 94: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 95: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 97: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 98: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 99: The using directive for 'Dynamicweb.Rapido.Blocks.Components.Articles' appeared previously in this namespace
Line 100: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 101: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 102: The using directive for 'Dynamicweb.Content.Items' appeared previously in this namespace
Line 1699: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 1700: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1702: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1704: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1791: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1792: 'ListViewModel.Options' is obsolete: 'Use the GetAllOptions extension method instead'
Line 1828: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1967: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1987: Argument 1: cannot convert from 'void' to 'object'
Line 5060: The variable 'placeholderImage' is assigned but its value is never used
Line 5704: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5730: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5732: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5734: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5736: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5749: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5751: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5753: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5755: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5758: 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_e83c8217a7d44f778a539bc3baa540a5 : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 105 { 106 #pragma warning disable 1998 107 public async override global::System.Threading.Tasks.Task ExecuteAsync() 108 { 109 WriteLiteral("\r\n"); 110 WriteLiteral("\r\n"); 111 WriteLiteral("\r\n"); 112 WriteLiteral("\r\n"); 113 WriteLiteral("\r\n"); 114 WriteLiteral("\r\n\r\n\r\n"); 115 WriteLiteral("\r\n"); 116 WriteLiteral("\r\n"); 117 WriteLiteral("\r\n"); 118 WriteLiteral("\r\n"); 119 WriteLiteral("\r\n"); 120 WriteLiteral("\r\n"); 121 WriteLiteral("\r\n"); 122 WriteLiteral("\r\n"); 123 WriteLiteral("\r\n"); 124 WriteLiteral("\r\n"); 125 WriteLiteral("\r\n"); 126 WriteLiteral("\r\n"); 127 WriteLiteral("\r\n"); 128 WriteLiteral("\r\n\r\n"); 129 WriteLiteral("\r\n"); 130 WriteLiteral("\r\n"); 131 WriteLiteral("\r\n"); 132 WriteLiteral("\r\n"); 133 WriteLiteral("\r\n"); 134 WriteLiteral("\r\n"); 135 WriteLiteral("\r\n"); 136 WriteLiteral("\r\n"); 137 WriteLiteral("\r\n"); 138 WriteLiteral("\r\n"); 139 WriteLiteral("\r\n"); 140 WriteLiteral("\r\n"); 141 WriteLiteral("\r\n"); 142 WriteLiteral("\r\n"); 143 WriteLiteral("\r\n"); 144 WriteLiteral("\r\n"); 145 WriteLiteral("\r\n"); 146 WriteLiteral("\r\n"); 147 WriteLiteral("\r\n"); 148 WriteLiteral("\r\n"); 149 WriteLiteral("\r\n"); 150 WriteLiteral("\r\n"); 151 WriteLiteral("\r\n"); 152 WriteLiteral("\r\n\r\n"); 153 WriteLiteral("\r\n"); 154 WriteLiteral("\r\n"); 155 WriteLiteral("\r\n\r\n"); 156 WriteLiteral("\r\n"); 157 WriteLiteral("\r\n"); 158 WriteLiteral("\r\n"); 159 WriteLiteral("\r\n\r\n"); 160 WriteLiteral("\r\n"); 161 WriteLiteral("\r\n"); 162 WriteLiteral("\r\n"); 163 WriteLiteral("\r\n"); 164 165 Context.Current.Response.AddHeader("access-control-allow-origin", "*"); 166 167 string bodyClass = ""; 168 string template = "real"; 169 string TemplateUrl = "/Files/Templates/Designs/rm/"; 170 string MetaTitle = Model.Title; 171 string MetaDescription = Model.Description; 172 string MetaKeywords = Model.Keywords; 173 string searchClass = ""; 174 175 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css")); 176 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}"; 177 178 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg"; 179 180 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2"); 181 182 // Indstillinger 183 var settings_Frontpage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : ""; 184 var settings_Boligside = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : ""; 185 var settings_Maeglersogning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : ""; 186 var settings_MinSide = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : ""; 187 var settings_Sibling_Site = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : ""; 188 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : ""; 189 var settings_Product_Group = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : ""; 190 var settings_Boligagent = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : ""; 191 var settings_Persondatapolitik = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : ""; 192 193 // API 194 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : ""; 195 var settings_BoligListFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : ""; 196 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : ""; 197 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : ""; 198 var settings_BoligCountFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : ""; 199 var settings_BoligMapFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : ""; 200 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"]; 201 202 // Forside 203 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : ""; 204 var settings_FrontpageVideo = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : ""; 205 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : ""; 206 207 // Tracking 208 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : ""; 209 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]))) 210 { 211 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]); 212 } 213 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : ""; 214 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : ""; 215 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : ""; 216 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]); 217 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]); 218 var settings_Google_Optimize_Id = Converter.ToString(SettingsItem["Google_Optimize_Id"]); 219 220 // Indstillinger for brugerfunktioner 221 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : ""; 222 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : ""; 223 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : ""; 224 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : ""; 225 226 int createUserParagraphId = 0; 227 int loginParagraphId = 0; 228 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId); 229 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId); 230 231 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv. 232 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv) 233 int searchPageId = GetPageSettingsPageId("Boligside"); 234 if (searchPageId == 0) 235 { 236 searchPageId = GetWebsiteSettingsPageId("Boligside"); 237 } 238 239 int boligsideId = GetPageSettingsPageId("Boligside"); 240 if (boligsideId == 0) 241 { 242 boligsideId = GetWebsiteSettingsPageId("Boligside"); 243 } 244 245 string productGroupFilter = String.Empty; 246 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null) 247 { 248 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString(); 249 } 250 251 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"])) 252 { 253 searchClass = "is-frontpage"; 254 } 255 256 bool isErhverv = false; 257 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null) 258 { 259 var s = Pageview.Page.PropertyItem["Erhverv"].ToString(); 260 Boolean.TryParse(s, out isErhverv); 261 } 262 263 bool isBrokerPage = false; 264 if (!string.IsNullOrEmpty(Model.Area.Item.GetString("M_glerGruppeId"))) 265 { 266 isBrokerPage = true; 267 bodyClass = ""; // Get rid of transparent header on brokerPage 268 } 269 270 string callTrackingId = Model.Item.GetString("CallTrackingId"); 271 272 RealEstate.User.Model.BrokerEmployee MyBroker = null; 273 try 274 { 275 var MyB = new RealEstate.User.MyBroker(); 276 MyBroker = MyB.GetMyBroker(); 277 } 278 catch 279 { 280 // Ignore 281 } 282 283 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : ""); 284 string querySearchNameAttr = "search"; 285 286 // Overwrite search with zipcodeinterval if set 287 if (Context.Current.Request.QueryString["zipcodeinterval"] != null) 288 { 289 querySearch = Context.Current.Request.QueryString["zipcodeinterval"]; 290 querySearchNameAttr = "zipcodeinterval"; 291 } 292 293 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : ""); 294 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : ""); 295 296 Dynamicweb.Security.UserManagement.User user = null; 297 int userID = 0; 298 string userName = ""; 299 string userEmail = ""; 300 string userPhone = ""; 301 string userZip = ""; 302 string userAddress = ""; 303 304 if (Dynamicweb.Security.UserManagement.UserContext.Current.IsLoggedOn) 305 { 306 user = Dynamicweb.Security.UserManagement.UserContext.Current.User; 307 userName = user.Name; 308 userEmail = user.Email; 309 userPhone = user.Phone; 310 userZip = user.Zip; 311 userAddress = user.Address; 312 userID = user.ID; 313 } 314 315 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode"); 316 string forgotPwTemplate = ""; 317 string forgotPwSender = ""; 318 string markerColor = ""; 319 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png"; 320 321 // Important - e-mail templates for forgotPw must be placed in "UserManagement/Login" folder 322 forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml"; 323 forgotPwSender = "noreply@mailreal.dk"; 324 markerColor = "#213960"; 325 326 var butikId = string.Empty; 327 string bEmail = string.Empty; 328 if (MyBroker != null && MyBroker.Broker != null) 329 { 330 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 331 bEmail = MyBroker.Broker.Item().GetString("Email"); 332 } 333 334 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment")); 335 336 var termsMail = "info@realmaeglerne.dk"; 337 WriteLiteral("\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta charset=\"utf-8\">\r\n <title>"); 338 Write(MetaTitle); 339 WriteLiteral("</title>\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n <meta name=\"description\""); 340 BeginWriteAttribute("content", " content=\"", 113489, "\"", 113515, 1); 341 WriteAttributeValue("", 113499, MetaDescription, 113499, 16, false); 342 EndWriteAttribute(); 343 WriteLiteral(">\r\n <meta name=\"keywords\""); 344 BeginWriteAttribute("content", " content=\"", 113544, "\"", 113567, 1); 345 WriteAttributeValue("", 113554, MetaKeywords, 113554, 13, false); 346 EndWriteAttribute(); 347 WriteLiteral(">\r\n <meta name=\"format-detection\" content=\"telephone=no\">\r\n <meta http-equiv=\"Expires\" content=\"60\">\r\n <meta name=\"robots\""); 348 BeginWriteAttribute("content", " content=\"", 113699, "\"", 113805, 3); 349 WriteAttributeValue("", 113709, Pageview.Area.Noindex ? "noindex" : "index", 113709, 46, false); 350 WriteAttributeValue("", 113755, ",", 113755, 1, true); 351 WriteAttributeValue("", 113756, Pageview.Area.Nofollow ? "nofollow" : "follow", 113756, 49, false); 352 EndWriteAttribute(); 353 WriteLiteral(">\r\n\r\n"); 354 WriteLiteral("\r\n "); 355 Write(RenderSnippet("OpenGraphTags")); 356 WriteLiteral("\r\n"); 357 if (!string.IsNullOrEmpty(settings_Google_Optimize_Id)) 358 { 359 WriteLiteral(" <!-- Google optimize script-->\r\n <script"); 360 BeginWriteAttribute("src", " src=\"", 113997, "\"", 114077, 2); 361 WriteAttributeValue("", 114003, "https://www.googleoptimize.com/optimize.js?id=", 114003, 46, true); 362 WriteAttributeValue("", 114049, settings_Google_Optimize_Id, 114049, 28, false); 363 EndWriteAttribute(); 364 WriteLiteral("></script>\r\n"); 365 } 366 WriteLiteral(@" <!-- TrustBox script --> 367 <script type=""text/javascript"" src=""//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js"" async></script> 368 <!-- End TrustBox script --> 369 370 <script type=""application/ld+json""> 371 { 372 ""context"": ""https://schema.org/"", 373 """); 374 WriteLiteral(@"@type"": ""WebSite"", 375 ""name"": ""RealMæglerne"", 376 ""url"": ""https://www.realmaeglerne.dk/"", 377 ""potentialAction"": { 378 ""type"": ""SearchAction"", 379 ""target"": ""https://www.realmaeglerne.dk/find-maegler?q={search_term_string}"", 380 ""query-input"": ""required name=search_term_string"" 381 } 382 } 383 </script> 384 385 <script type=""application/ld+json""> 386 { 387 ""context"": ""https://schema.org"", 388 """); 389 WriteLiteral(@"@type"": ""Corporation"", 390 ""name"": ""RealMæglerne"", 391 ""alternateName"": ""R&B Mægler A/S"", 392 ""url"": ""https://www.realmaeglerne.dk"", 393 ""logo"": ""https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png"", 394 ""contactPoint"": { 395 ""type"": ""ContactPoint"", 396 ""telephone"": ""+4570237153"", 397 ""contactType"": ""sales"", 398 ""areaServed"": ""DK"", 399 ""availableLanguage"": ""Danish"" 400 }, 401 ""sameAs"": [ 402 ""https://www.facebook.com/realmaeglerne/"", 403 ""https://www.linkedin.com/company/realmæglerne/"", 404 ""https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g"", 405 ""https://www.realmaeglerne.dk/"" 406 ] 407 } 408 </script> 409 "); 410 Write(RenderSnippet("StructuredData")); 411 WriteLiteral("\r\n"); 412 WriteLiteral("\r\n"); 413 WriteLiteral(" <link rel=\"stylesheet\""); 414 BeginWriteAttribute("href", " href=\"", 115699, "\"", 115750, 2); 415 WriteAttributeValue("", 115706, TemplateUrl, 115706, 14, false); 416 WriteAttributeValue("", 115720, "assets/fontawesome/css/all.css", 115720, 30, true); 417 EndWriteAttribute(); 418 WriteLiteral(" async />\r\n <link rel=\"stylesheet\""); 419 BeginWriteAttribute("href", " href=\"", 115792, "\"", 115807, 1); 420 WriteAttributeValue("", 115799, mainCSS, 115799, 8, false); 421 EndWriteAttribute(); 422 WriteLiteral(" async />\r\n"); 423 424 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"])) 425 { 426 var cssErhvervFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/erhverv.min.css")); 427 string erhvervCSS = TemplateUrl + $"assets/dist/css/erhverv.min.css?{cssErhvervFileInfo.LastWriteTime.Ticks}"; 428 WriteLiteral(" <link rel=\"stylesheet\""); 429 BeginWriteAttribute("href", " href=\"", 116211, "\"", 116229, 1); 430 WriteAttributeValue("", 116218, erhvervCSS, 116218, 11, false); 431 EndWriteAttribute(); 432 WriteLiteral(" async>\r\n"); 433 } 434 WriteLiteral("\r\n\r\n <link rel=\"icon\" type=\"image/ico\""); 435 BeginWriteAttribute("href", " href=\"", 116298, "\"", 116362, 2); 436 WriteAttributeValue("", 116305, TemplateUrl, 116305, 14, false); 437 WriteAttributeValue("", 116319, "assets/images/favicons/favicon-real.ico?v=1", 116319, 43, true); 438 EndWriteAttribute(); 439 WriteLiteral(">\r\n <link rel=\"icon\" type=\"image/png\""); 440 BeginWriteAttribute("href", " href=\"", 116403, "\"", 116469, 2); 441 WriteAttributeValue("", 116410, TemplateUrl, 116410, 14, false); 442 WriteAttributeValue("", 116424, "assets/images/favicons/favicon-real-16x16.png", 116424, 45, true); 443 EndWriteAttribute(); 444 WriteLiteral(" sizes=\"16x16\">\r\n <link rel=\"icon\" type=\"image/png\""); 445 BeginWriteAttribute("href", " href=\"", 116524, "\"", 116590, 2); 446 WriteAttributeValue("", 116531, TemplateUrl, 116531, 14, false); 447 WriteAttributeValue("", 116545, "assets/images/favicons/favicon-real-32x32.png", 116545, 45, true); 448 EndWriteAttribute(); 449 WriteLiteral(" sizes=\"32x32\">\r\n <link rel=\"icon\" type=\"image/png\""); 450 BeginWriteAttribute("href", " href=\"", 116645, "\"", 116711, 2); 451 WriteAttributeValue("", 116652, TemplateUrl, 116652, 14, false); 452 WriteAttributeValue("", 116666, "assets/images/favicons/favicon-real-96x96.png", 116666, 45, true); 453 EndWriteAttribute(); 454 WriteLiteral(" sizes=\"96x96\">\r\n <meta name=\"google-site-verification\" content=\"hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg\" />\r\n\r\n"); 455 if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString())) 456 { 457 WriteLiteral(@" <script> 458 window.dataLayer = window.dataLayer || []; // must be placed above GTM script 459 </script> 460 <!-- Google Tag Manager --> 461 <script> 462 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 463 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 464 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 465 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 466 })(window,document,'script','dataLayer','"); 467 Write(settings_Google_Tag_Manager_ID); 468 WriteLiteral("\');</script>\r\n <!-- End Google Tag Manager -->\r\n"); 469 } 470 WriteLiteral("\r\n"); 471 if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId)) 472 { 473 WriteLiteral(" <script type=\"text/javascript\""); 474 BeginWriteAttribute("src", " src=\"", 117693, "\"", 117765, 2); 475 WriteAttributeValue("", 117699, "https://call.call-tracking.dk/getJavascript?custid=", 117699, 51, true); 476 WriteAttributeValue("", 117750, callTrackingId, 117750, 15, false); 477 EndWriteAttribute(); 478 WriteLiteral("></script>\r\n"); 479 } 480 WriteLiteral("\r\n"); 481 if (!String.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString())) 482 { 483 WriteLiteral(@" <!-- Begin Leadhub Pixel Code --> 484 <script> 485 (function(w,d,x,n,u,t,f,s,o){ 486 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){ 487 (w[f].q=w[f].q||[]).push([n,d])};w[f].l=1*new Date();s=d.createElement(x); s.async=1;s.src=u+'?t='+t;o=d.getElementsByTagName(x)[0];o.parentNode.insertBefore(s,o) 488 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '"); 489 Write(settings_Leadhub_Pixel_ID); 490 WriteLiteral("\');\r\n lhi(\'pageview\');\r\n </script>\r\n <!-- End Leadhub Pixel Code -->\r\n"); 491 } 492 WriteLiteral("\r\n <script>\r\n // Global namespace used for fetching API feeds from DW\r\n var RMAPI = (RMAPI) ? RMAPI : {};\r\n var ApiPreFix = \"/Default.aspx?ID=\";\r\n RMAPI.BoligCountFeed = ApiPreFix + \""); 493 Write(settings_BoligCountFeed); 494 WriteLiteral("\";\r\n RMAPI.BoligListFeed = ApiPreFix + \""); 495 Write(settings_BoligListFeed); 496 WriteLiteral("\" + \"&refpageid="); 497 Write(Pageview.Page.ID); 498 WriteLiteral("\";\r\n RMAPI.BoligListFeedErhverv = \""); 499 Write(settings_BoligListFeedErhverv); 500 WriteLiteral("\";\r\n RMAPI.BoligListFeedMaegler = ApiPreFix + \""); 501 Write(settings_BoligListFeedMaegler); 502 WriteLiteral("\" + \"&refpageid="); 503 Write(Pageview.Page.ID); 504 WriteLiteral("\";\r\n RMAPI.BoligSearchFeed = ApiPreFix + \""); 505 Write(settings_BoligSearchFeed); 506 WriteLiteral("\";\r\n RMAPI.BoligMapFeed = ApiPreFix + \""); 507 Write(settings_BoligMapFeed); 508 WriteLiteral("\";\r\n RMAPI.Boligagent = \""); 509 Write(settings_Boligagent); 510 WriteLiteral("\";\r\n RMAPI.IsErhverv = "); 511 Write(isErhverv.ToString().ToLower()); 512 WriteLiteral(";\r\n RMAPI.ProductGroupFilter = \""); 513 Write(productGroupFilter); 514 WriteLiteral("\";\r\n RMAPI.ButikId = \""); 515 Write(butikId); 516 WriteLiteral("\";\r\n RMAPI.Boligvisning = false;\r\n RMAPI.RefPageId = \""); 517 Write(Pageview.Page.ID); 518 WriteLiteral("\";\r\n RMAPI.Template = \""); 519 Write(template); 520 WriteLiteral("\";\r\n RMAPI.SliderSettings = "); 521 Write(JsonConvert.SerializeObject(Settings.Site)); 522 WriteLiteral(";\r\n RMAPI.AdvisorSearchFeed = \""); 523 Write(settings_AdvisorSearchFeed); 524 WriteLiteral("\";\r\n RMAPI.LoadingIcon = \""); 525 Write(loadingIcon); 526 WriteLiteral("\";\r\n RMAPI.MarkerColor = \""); 527 Write(markerColor); 528 WriteLiteral("\";\r\n RMAPI.mapMarkerUrl = \""); 529 Write(mapMarkerUrl); 530 WriteLiteral("\";\r\n RMAPI.settings_ForgotPwPage = \""); 531 Write(settings_ForgotPwPage); 532 WriteLiteral("\";\r\n </script>\r\n\r\n"); 533 if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString())) 534 { 535 WriteLiteral(@" <!-- Facebook Pixel Code --> 536 <script> 537 !function (f, b, e, v, n, t, s) { 538 if (f.fbq) return; n = f.fbq = function () { 539 n.callMethod ? 540 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 541 }; 542 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; 543 n.queue = []; t = b.createElement(e); t.async = !0; 544 t.src = v; s = b.getElementsByTagName(e)[0]; 545 s.parentNode.insertBefore(t, s) 546 }(window, document, 'script', 547 'https://connect.facebook.net/en_US/fbevents.js'); 548 fbq('init', '"); 549 Write(settings_Facebook_App_ID); 550 WriteLiteral("\');\r\n fbq(\'track\', \'PageView\');\r\n </script>\r\n <noscript>\r\n <img height=\"1\" width=\"1\""); 551 BeginWriteAttribute("src", " src=\"", 120668, "\"", 120753, 3); 552 WriteAttributeValue("", 120674, "https://www.facebook.com/tr?id=", 120674, 31, true); 553 WriteAttributeValue("", 120705, settings_Facebook_App_ID, 120705, 25, false); 554 WriteAttributeValue("", 120730, "&ev=PageView&noscript=1", 120730, 23, true); 555 EndWriteAttribute(); 556 WriteLiteral(" />\r\n </noscript>\r\n <!-- End Facebook Pixel Code -->\r\n"); 557 } 558 WriteLiteral("\r\n <script type=\'text/javascript\' src=\'https://platform-api.sharethis.com/js/sharethis.js#property=5d68cfaf5fea9f001288d9ac&product=inline-share-buttons\' async=\'async\'></script>\r\n\r\n</head>\r\n\r\n<body"); 559 BeginWriteAttribute("class", " class=\"", 121029, "\"", 121056, 2); 560 WriteAttributeValue("", 121037, template, 121037, 9, false); 561 WriteAttributeValue("", 121046, bodyClass, 121046, 10, false); 562 EndWriteAttribute(); 563 WriteLiteral(" data-spforgotpwtemplate=\""); 564 Write(forgotPwTemplate); 565 WriteLiteral("\" data-spforgotpwsender=\""); 566 Write(forgotPwSender); 567 WriteLiteral("\" data-spforgotpwsubject=\""); 568 Write(forgotPwSubject); 569 WriteLiteral("\" data-spsalesassesmentid=\""); 570 Write(salesAssessmentPageId); 571 WriteLiteral("\">\r\n"); 572 573 string logoUrl = TemplateUrl + (!Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg"); 574 WriteLiteral("\r\n"); 575 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) && GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID) 576 { 577 WriteLiteral(" <div class=\"top-search\">\r\n <div class=\"header logo\">\r\n <div class=\"logo\">\r\n <a href=\"/erhverv\">\r\n <img"); 578 BeginWriteAttribute("src", " src=\"", 121728, "\"", 121742, 1); 579 WriteAttributeValue("", 121734, logoUrl, 121734, 8, false); 580 EndWriteAttribute(); 581 WriteLiteral(" alt=\"RealMæglerne\" />\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"top-form mx-auto\">\r\n <form id=\"main-search-top\" class=\"js-top-search\" action=\"/Default.aspx\" method=\"GET\">\r\n"); 582 583 584 var settings_BoligListErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : ""; 585 WriteLiteral(" <input type=\"hidden\" name=\"ID\""); 586 BeginWriteAttribute("value", " value=\'", 122309, "\'", 122343, 1); 587 WriteAttributeValue("", 122317, settings_BoligListErhverv, 122317, 26, false); 588 EndWriteAttribute(); 589 WriteLiteral(" id=\"searchPageId-top\" disabled=\"disabled\" />\r\n\r\n"); 590 if (Context.Current.Request["type"] == "egetforbrug") 591 { 592 WriteLiteral(" <input name=\"type\" type=\"hidden\" value=\"egetforbrug\" />\r\n <input name=\"investeringsejendom\" type=\"hidden\" value=\"0\" />\r\n"); 593 } 594 WriteLiteral(@" <div class=""row form-wrapper no-gutters""> 595 <div class=""col-xs-12 col-md-4 col-lg-5 col-searchbar""> 596 <div class=""searchbar float-label-container text-left""> 597 <label class=""float-label"">"); 598 Write(Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer")); 599 WriteLiteral("</label>\r\n <input type=\"text\""); 600 BeginWriteAttribute("name", " name=\"", 123137, "\"", 123164, 1); 601 WriteAttributeValue("", 123144, querySearchNameAttr, 123144, 20, false); 602 EndWriteAttribute(); 603 WriteLiteral(" id=\"searchfield-top\" class=\"search-input js-float-label js-getdata\" tabindex=\"1\""); 604 BeginWriteAttribute("value", " value=\"", 123246, "\"", 123324, 1); 605 WriteAttributeValue("", 123254, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 123254, 70, false); 606 EndWriteAttribute(); 607 WriteLiteral(@" /> 608 </div> 609 </div> 610 <div class=""col-xs-12 col-md-5""> 611 <div class=""row no-gutters""> 612 <div class=""col-xs-12 col-md-6 input-col""> 613 <div class=""dropdown w-overlay float-label-container""> 614 <label class=""float-label"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">"); 615 Write(Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype")); 616 WriteLiteral(@"</label> 617 <button class=""btn btn-dropdown dropdown-toggle reverse position-absolute-md"" type=""button"" id=""Boligtype-frontpage"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""></button> 618 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 619 <ul class=""bolig-dropdown list-unstyled""> 620 "); 621 622 RenderBoligTypeErhverv(); 623 WriteLiteral(@" </ul> 624 <span class=""border-fat""></span> 625 <div class=""d-none d-md-block""> 626 <button class=""btn btn-primary js-close-dropdown"">"); 627 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 628 WriteLiteral(@"</button> 629 </div> 630 <div class=""d-flex row d-md-none""> 631 <div class=""col-6""> 632 <button class=""btn btn-danger js-remove-filter"">"); 633 Write(Translate("Smartpage:Search.Annuller", "Annuller")); 634 WriteLiteral("</button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 635 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 636 WriteLiteral(@"</button> 637 </div> 638 </div> 639 </div> 640 641 </div> 642 </div> 643 <div class=""col-xs-12 col-md-6 input-col""> 644 <div class=""btn-dropdown p-3 border-top-bottom-right""> 645 <ul class=""two-column list-unstyled""> 646 <li> 647 <label class=""checkbox-container""> 648 "); 649 Write(Translate("Smartpage:Search.Erhverv.Leje", "Leje")); 650 WriteLiteral(@" 651 <input type=""checkbox"" name=""propertytype"" value=""leje"" class=""js-input-check"" /> 652 <span class=""checkmark""></span> 653 </label> 654 </li> 655 <li> 656 <label class=""checkbox-container""> 657 "); 658 Write(Translate("Smartpage:Search.Erhverv.Køb", "Køb")); 659 WriteLiteral(@" 660 <input type=""checkbox"" name=""propertytype"" value=""kob"" class=""js-input-check"" /> 661 <span class=""checkmark""></span> 662 </label> 663 </li> 664 </ul> 665 </div> 666 667 </div> 668 </div> 669 </div> 670 <div class=""col-xs-12 col-md-3 col-lg-2 d-none d-md-block""> 671 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 672 Write(Translate("Smartpage:Search.Søg", "Søg")); 673 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n"); 674 } 675 WriteLiteral("\r\n"); 676 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"])) 677 { 678 WriteLiteral(" <div class=\"header shortcuts\">\r\n <div class=\"header-shortcuts float-right\">\r\n"); 679 if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID) 680 { 681 WriteLiteral(" <a"); 682 BeginWriteAttribute("href", " href=\'", 128027, "\'", 128034, 0); 683 EndWriteAttribute(); 684 BeginWriteAttribute("class", " class=\"", 128035, "\"", 128151, 9); 685 WriteAttributeValue("", 128043, "search-menu", 128043, 11, true); 686 WriteAttributeValue(" ", 128054, "d-none", 128055, 7, true); 687 WriteAttributeValue(" ", 128061, "d-xl-flex", 128062, 10, true); 688 WriteAttributeValue(" ", 128071, "align-items-center", 128072, 19, true); 689 WriteAttributeValue(" ", 128090, "float-left", 128091, 11, true); 690 WriteAttributeValue(" ", 128101, "border-right", 128102, 13, true); 691 WriteAttributeValue(" ", 128114, "js-mainsearch", 128115, 14, true); 692 WriteAttributeValue(" ", 128128, "topsearch", 128129, 10, true); 693 WriteAttributeValue(" ", 128138, searchClass, 128139, 12, false); 694 EndWriteAttribute(); 695 WriteLiteral(">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i><span class=\"search-menu-text hidden d-md-block\"> "); 696 Write(Translate("Smartpage:Search.Søg", "Søg")); 697 WriteLiteral("</span>\r\n </a>\r\n"); 698 } 699 WriteLiteral(" <div class=\"menu-slide d-flex align-items-center\">\r\n <b></b>\r\n <span class=\"menu-text hidden d-md-block\">Menu</span>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n"); 700 } 701 else 702 { 703 WriteLiteral(" <div class=\"header__container container\">\r\n <div class=\"header__logo\">\r\n <a href=\"/\""); 704 BeginWriteAttribute("title", " title=\"", 128751, "\"", 128759, 0); 705 EndWriteAttribute(); 706 WriteLiteral(">\r\n <img"); 707 BeginWriteAttribute("src", " src=\"", 128787, "\"", 128803, 1); 708 WriteAttributeValue("", 128793, logoUrl, 128793, 10, false); 709 EndWriteAttribute(); 710 BeginWriteAttribute("alt", " alt=\"", 128804, "\"", 128810, 0); 711 EndWriteAttribute(); 712 WriteLiteral(" />\r\n </a>\r\n </div>\r\n <div class=\"header__title\">\r\n <span>"); 713 Write(Translate("Custom:Header.Title", "RealMæglerne")); 714 WriteLiteral("</span> \r\n </div>\r\n"); 715 if (userID > 0) 716 { 717 WriteLiteral(@" <div class=""header__navigation d-none d-md-flex""> 718 <div class=""header__navigation""> 719 <div class=""header__Link""> 720 <ul> 721 <li class=""d-flex align-items-center""> 722 <svg xmlns=""http://www.w3.org/2000/svg"" width=""20"" height=""20"" viewBox=""0 0 20 20"" fill=""none""> 723 <path d=""M16.6663 17.5C16.6663 16.337 16.6663 15.7555 16.5228 15.2824C16.1996 14.217 15.366 13.3834 14.3006 13.0602C13.8275 12.9167 13.246 12.9167 12.083 12.9167H7.91634C6.75337 12.9167 6.17189 12.9167 5.69872 13.0602C4.63339 13.3834 3.79971 14.217 3.47654 15.2824C3.33301 15.7555 3.33301 16.337 3.33301 17.5M13.7497 6.25C13.7497 8.32107 12.0707 10 9.99967 10C7.92861 10 6.24967 8.32107 6.24967 6.25C6.24967 4.17893 7.92861 2.5 9.99967 2.5C12.0707 2.5 13.7497 4.17893 13.7497 6.25Z"" stroke=""black"" stroke-width=""2"" stroke-linecap=""round"" stroke-linejoin=""round"" /> 724 "); 725 WriteLiteral(" </svg>\r\n <a class=\"ml-2\""); 726 BeginWriteAttribute("href", "\r\n href=\"", 130168, "\"", 130250, 2); 727 WriteAttributeValue("", 130216, "/Default.aspx?ID=", 130216, 17, true); 728 WriteAttributeValue("", 130233, settings_MinSide, 130233, 17, false); 729 EndWriteAttribute(); 730 WriteLiteral("\r\n target=\"_blank\""); 731 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 130308, "\"", 130458, 1); 732 WriteAttributeValue("", 130362, Translate("Custom:Accessibility.MyAccountLink", "Gå til Mit RealMæglerne - åbner i nyt vindue"), 130362, 96, false); 733 EndWriteAttribute(); 734 WriteLiteral(">\r\n "); 735 Write(Translate("Mit RealMæglerne")); 736 WriteLiteral("\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n"); 737 738 } 739 else 740 { 741 WriteLiteral(@" <div class=""header__navigation d-none d-md-flex""> 742 <div class=""header__navigation""> 743 <div class=""header__Link""> 744 <ul> 745 <li class=""d-flex align-items-center""> 746 <svg xmlns=""http://www.w3.org/2000/svg"" width=""20"" height=""20"" viewBox=""0 0 20 20"" fill=""none""> 747 <path d=""M16.6663 17.5C16.6663 16.337 16.6663 15.7555 16.5228 15.2824C16.1996 14.217 15.366 13.3834 14.3006 13.0602C13.8275 12.9167 13.246 12.9167 12.083 12.9167H7.91634C6.75337 12.9167 6.17189 12.9167 5.69872 13.0602C4.63339 13.3834 3.79971 14.217 3.47654 15.2824C3.33301 15.7555 3.33301 16.337 3.33301 17.5M13.7497 6.25C13.7497 8.32107 12.0707 10 9.99967 10C7.92861 10 6.24967 8.32107 6.24967 6.25C6.24967 4.17893 7.92861 2.5 9.99967 2.5C12.0707 2.5 13.7497 4.17893 13.7497 6.25Z"" stroke=""black"" stroke-width=""2"" stroke-linecap=""round"" stroke-linejoin=""round"" /> 748 "); 749 WriteLiteral(" </svg>\r\n <a class=\"ml-2\"\r\n href=\"javascript:panelLogin()\""); 750 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 131969, "\"", 132092, 1); 751 WriteAttributeValue("", 132023, Translate("Custom:Accessibility.Login", "Login - åbner i sidepanel"), 132023, 69, false); 752 EndWriteAttribute(); 753 WriteLiteral(">\r\n "); 754 Write(Translate("Login")); 755 WriteLiteral("\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n"); 756 } 757 WriteLiteral(" <div class=\"header__search flex-column flex-md-row js-mainsearch\">\r\n "); 758 Write(Translate("Søg bolig")); 759 WriteLiteral("\r\n </div>\r\n <div class=\"header__navigation\">\r\n <div class=\"header__navigation-icon menu-slide\">\r\n <div class=\"d-none d-md-block\">\r\n "); 760 Write(Translate("Menu")); 761 WriteLiteral("\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n"); 762 } 763 WriteLiteral("\r\n <div class=\"search-modal\">\r\n\r\n"); 764 if (Converter.ToString(Pageview.Area.Item["Type"]) == "real") 765 { 766 WriteLiteral(@" <div class=""main-search-form""> 767 <i class=""fal fa-times float-right fa-2x js-close-search close-search""></i> 768 <div class=""row mb-3 align-items-center""> 769 <div class=""col-xs-12 col-md-3 border-right""> 770 <h3>"); 771 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 772 WriteLiteral("</h3>\r\n </div>\r\n <div class=\"col-xs-12 col-md-9 home-count d-none d-md-block\">\r\n <span class=\"search-count\" id=\"searchCounterMain\">0</span> <span class=\"position-relative\">"); 773 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 774 WriteLiteral(@"<span class=""loader js-loader""></span></span> 775 776 </div> 777 </div> 778 779 <form id=""main-search"" class=""searchbar-wrapper"" action=""/Default.aspx"" method=""GET""> 780 <input type=""hidden"" name=""ID"""); 781 BeginWriteAttribute("value", " value=\'", 133834, "\'", 133855, 1); 782 WriteAttributeValue("", 133842, searchPageId, 133842, 13, false); 783 EndWriteAttribute(); 784 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" /> 785 <div class=""row form-wrapper no-gutters""> 786 787 <div class=""col-xs-12 col-md-5 col-searchbar""> 788 <div class=""searchbar""> 789 <input type=""text"""); 790 BeginWriteAttribute("name", " name=\"", 134139, "\"", 134166, 1); 791 WriteAttributeValue("", 134146, querySearchNameAttr, 134146, 20, false); 792 EndWriteAttribute(); 793 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 794 BeginWriteAttribute("value", " value=\"", 134269, "\"", 134347, 1); 795 WriteAttributeValue("", 134277, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 134277, 70, false); 796 EndWriteAttribute(); 797 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\""); 798 BeginWriteAttribute("value", " value=\"", 134441, "\"", 134524, 1); 799 WriteAttributeValue("", 134449, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 134449, 75, false); 800 EndWriteAttribute(); 801 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\""); 802 BeginWriteAttribute("value", " value=\"", 134614, "\"", 134695, 1); 803 WriteAttributeValue("", 134622, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 134622, 73, false); 804 EndWriteAttribute(); 805 WriteLiteral(@" /> 806 </div> 807 </div> 808 <div class=""col-xs-12 col-md-5""> 809 <div class=""row no-gutters""> 810 <div class=""col-xs-12 col-md-6 input-col""> 811 <div class=""dropdown""> 812 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 813 "); 814 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 815 WriteLiteral(@" 816 </button> 817 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 818 <ul class=""bolig-dropdown list-unstyled""> 819 "); 820 821 RenderBoligtypeCheckboxesDropdown(); 822 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 823 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 824 WriteLiteral(@"</button> 825 </div> 826 827 </div> 828 829 </div> 830 <div class=""col-xs-12 col-md-6 input-col""> 831 <div class=""dropdown""> 832 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 833 "); 834 Write(Translate("Smartpage:Search.Pris", "Pris")); 835 WriteLiteral(@" 836 </button> 837 <div class=""dropdown-menu box-shadow dropdown-price js-dropdown-price"" aria-labelledby=""Pris""> 838 <input name=""pricemin"" type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 839 BeginWriteAttribute("placeholder", " placeholder=\'", 136946, "\'", 137023, 1); 840 WriteAttributeValue("", 136960, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 136960, 63, false); 841 EndWriteAttribute(); 842 BeginWriteAttribute("value", " value=\'", 137024, "\'", 137160, 1); 843 WriteAttributeValue("", 137032, !string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemin"]) ? Context.Current.Request.QueryString["pricemin"] : "", 137032, 128, false); 844 EndWriteAttribute(); 845 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 846 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 847 WriteLiteral("</option>\r\n"); 848 for (var i = 0; i <= 10000000; i += 100000) 849 { 850 if (i == 10000000) 851 { 852 WriteLiteral(" <option"); 853 BeginWriteAttribute("value", " value=\"", 137797, "\"", 137807, 1); 854 WriteAttributeValue("", 137805, i, 137805, 2, false); 855 EndWriteAttribute(); 856 WriteLiteral(" data-value=\'"); 857 Write(Converter.ToInt32(i).ToString("N0")); 858 WriteLiteral("+\'>"); 859 Write(Convert.ToInt32(i).ToString("N0")); 860 WriteLiteral("+</option>\r\n"); 861 } 862 else 863 { 864 WriteLiteral(" <option"); 865 BeginWriteAttribute("value", " value=\"", 138137, "\"", 138147, 1); 866 WriteAttributeValue("", 138145, i, 138145, 2, false); 867 EndWriteAttribute(); 868 WriteLiteral(" data-value=\'"); 869 Write(Converter.ToInt32(i).ToString("N0")); 870 WriteLiteral("\'>"); 871 Write(Convert.ToInt32(i).ToString("N0")); 872 WriteLiteral("</option>\r\n"); 873 } 874 } 875 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\""); 876 BeginWriteAttribute("placeholder", " placeholder=\'", 138551, "\'", 138628, 1); 877 WriteAttributeValue("", 138565, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 138565, 63, false); 878 EndWriteAttribute(); 879 BeginWriteAttribute("value", " value=\'", 138629, "\'", 138765, 1); 880 WriteAttributeValue("", 138637, !string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemax"]) ? Context.Current.Request.QueryString["pricemax"] : "", 138637, 128, false); 881 EndWriteAttribute(); 882 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 883 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 884 WriteLiteral("</option>\r\n"); 885 for (var i = 0; i <= 10000000; i += 100000) 886 { 887 if (i == 10000000) 888 { 889 WriteLiteral(" <option"); 890 BeginWriteAttribute("value", " value=\"", 139396, "\"", 139406, 1); 891 WriteAttributeValue("", 139404, i, 139404, 2, false); 892 EndWriteAttribute(); 893 WriteLiteral(" data-value=\'"); 894 Write(Converter.ToInt32(i).ToString("N0")); 895 WriteLiteral("+\'>"); 896 Write(Convert.ToInt32(i).ToString("N0")); 897 WriteLiteral("+</option>\r\n"); 898 } 899 else 900 { 901 WriteLiteral(" <option"); 902 BeginWriteAttribute("value", " value=\"", 139736, "\"", 139746, 1); 903 WriteAttributeValue("", 139744, i, 139744, 2, false); 904 EndWriteAttribute(); 905 WriteLiteral(" data-value=\'"); 906 Write(Converter.ToInt32(i).ToString("N0")); 907 WriteLiteral("\'>"); 908 Write(Convert.ToInt32(i).ToString("N0")); 909 WriteLiteral("</option>\r\n"); 910 } 911 } 912 WriteLiteral(@" </select> 913 </div> 914 </div> 915 </div> 916 </div> 917 </div> 918 <div class=""col-xs-12 col-md-2 d-none d-md-block""> 919 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 920 Write(Translate("Smartpage:Search.Søg", "Søg")); 921 WriteLiteral(@"</button> 922 </div> 923 </div> 924 925 <div class=""row moresearch-btn no-gutters""> 926 <div class=""col-sm-12""> 927 <div class=""row align-items-center no-gutters""> 928 <div class=""col-12 col-md-4""> 929 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch""> 930 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open white"">"); 931 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 932 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> "); 933 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 934 WriteLiteral(" </span></span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-md-2 mb-xs-4\">\r\n <a class=\"js-reset reset-btn white\">"); 935 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 936 WriteLiteral("</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"collapse\" id=\"moreSearch-master\">\r\n\r\n <h4 class=\"mt-20\"><b>"); 937 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 938 WriteLiteral(@"</b></h4> 939 <div class=""row align-items-end mb-30""> 940 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 941 <div class=""filter-container row""> 942 <label class=""d-block col-12"">"); 943 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 944 WriteLiteral(@"</label> 945 <div class=""col-6 pr-sm-0 pr-2""> 946 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 947 BeginWriteAttribute("placeholder", " placeholder=\'", 142508, "\'", 142581, 1); 948 WriteAttributeValue("", 142522, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 142522, 59, false); 949 EndWriteAttribute(); 950 BeginWriteAttribute("value", " value=\'", 142582, "\'", 142728, 1); 951 WriteAttributeValue("", 142590, !string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmin"]) ? Context.Current.Request.QueryString["boligarealmin"] : "", 142590, 138, false); 952 EndWriteAttribute(); 953 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 954 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 955 WriteLiteral("</option>\r\n"); 956 for (var i = 0; i <= 300; i += 10) 957 { 958 if (i == 300) 959 { 960 WriteLiteral(" <option>"); 961 Write(i); 962 WriteLiteral("+</option>\r\n"); 963 } 964 else 965 { 966 WriteLiteral(" <option>"); 967 Write(i); 968 WriteLiteral("</option>\r\n"); 969 } 970 } 971 WriteLiteral(@" </select> 972 973 </div> 974 <div class=""col-6 pl-sm-0 pl-2""> 975 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 976 BeginWriteAttribute("placeholder", " placeholder=\'", 144113, "\'", 144186, 1); 977 WriteAttributeValue("", 144127, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 144127, 59, false); 978 EndWriteAttribute(); 979 BeginWriteAttribute("value", " value=\'", 144187, "\'", 144333, 1); 980 WriteAttributeValue("", 144195, !string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmax"]) ? Context.Current.Request.QueryString["boligarealmax"] : "", 144195, 138, false); 981 EndWriteAttribute(); 982 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 983 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 984 WriteLiteral("</option>\r\n"); 985 for (var i = 0; i <= 300; i += 10) 986 { 987 if (i == 300) 988 { 989 WriteLiteral(" <option>"); 990 Write(i); 991 WriteLiteral("+</option>\r\n"); 992 } 993 else 994 { 995 WriteLiteral(" <option>"); 996 Write(i); 997 WriteLiteral("</option>\r\n"); 998 } 999 } 1000 WriteLiteral(@" </select> 1001 1002 </div> 1003 </div> 1004 </div> 1005 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 1006 <div class=""filter-container row""> 1007 <label class=""d-block col-12"">"); 1008 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 1009 WriteLiteral(@"</label> 1010 <div class=""col-6 pr-sm-0 pr-2""> 1011 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 1012 BeginWriteAttribute("placeholder", " placeholder=\'", 146114, "\'", 146187, 1); 1013 WriteAttributeValue("", 146128, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 146128, 59, false); 1014 EndWriteAttribute(); 1015 BeginWriteAttribute("value", " value=\'", 146188, "\'", 146335, 1); 1016 WriteAttributeValue("", 146196, !string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmin"]) ? Context.Current.Request.QueryString["grundarealmin"] : "", 146196, 139, false); 1017 EndWriteAttribute(); 1018 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1019 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 1020 WriteLiteral("</option>\r\n"); 1021 for (var i = 0; i <= 10000; i += 100) 1022 { 1023 if (i == 10000) 1024 { 1025 WriteLiteral(" <option>"); 1026 Write(i); 1027 WriteLiteral("+</option>\r\n"); 1028 } 1029 else 1030 { 1031 WriteLiteral(" <option>"); 1032 Write(i); 1033 WriteLiteral("</option>\r\n"); 1034 } 1035 } 1036 WriteLiteral(@" </select> 1037 </div> 1038 <div class=""col-6 pl-sm-0 pl-2""> 1039 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 1040 BeginWriteAttribute("placeholder", " placeholder=\'", 147723, "\'", 147796, 1); 1041 WriteAttributeValue("", 147737, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 147737, 59, false); 1042 EndWriteAttribute(); 1043 BeginWriteAttribute("value", " value=\'", 147797, "\'", 147944, 1); 1044 WriteAttributeValue("", 147805, !string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmax"]) ? Context.Current.Request.QueryString["grundarealmax"] : "", 147805, 139, false); 1045 EndWriteAttribute(); 1046 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">"); 1047 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 1048 WriteLiteral("</option>\r\n"); 1049 for (var i = 0; i <= 10000; i += 100) 1050 { 1051 if (i == 10000) 1052 { 1053 WriteLiteral(" <option>"); 1054 Write(i); 1055 WriteLiteral("+</option>\r\n"); 1056 } 1057 else 1058 { 1059 WriteLiteral(" <option>"); 1060 Write(i); 1061 WriteLiteral("</option>\r\n"); 1062 } 1063 } 1064 WriteLiteral(@" </select> 1065 </div> 1066 </div> 1067 </div> 1068 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 1069 <div class=""filter-container row""> 1070 <label class=""d-block col-12"">Antal rum</label> 1071 <div class=""col-6 pr-sm-0 pr-2""> 1072 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count""> 1073 <option selected=""selected"" disabled=""disabled"">"); 1074 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 1075 WriteLiteral("</option>\r\n"); 1076 1077 RenderSelectValue("1", "1", "roomsmin"); 1078 RenderSelectValue("2", "2", "roomsmin"); 1079 RenderSelectValue("3", "3", "roomsmin"); 1080 RenderSelectValue("4", "4", "roomsmin"); 1081 RenderSelectValue("5+", "5", "roomsmin"); 1082 WriteLiteral(@" </select> 1083 </div> 1084 <div class=""col-6 pl-sm-0 pl-2""> 1085 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count""> 1086 <option selected=""selected"" disabled=""disabled"">"); 1087 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 1088 WriteLiteral("</option>\r\n"); 1089 1090 RenderSelectValue("1", "1", "roomsmax"); 1091 RenderSelectValue("2", "2", "roomsmax"); 1092 RenderSelectValue("3", "3", "roomsmax"); 1093 RenderSelectValue("4", "4", "roomsmax"); 1094 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax"); 1095 WriteLiteral(@" </select> 1096 </div> 1097 </div> 1098 </div> 1099 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 1100 <div class=""row""> 1101 <div class=""col-12 pr-2""> 1102 <div class=""filter-container""> 1103 <label class=""d-block"">Energimærke</label> 1104 <select name=""energylabel"" id=""energylabel"" class=""form-control reverse js-energylabel-select js-count""> 1105 <option selected=""selected"" disabled=""disabled"">"); 1106 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 1107 WriteLiteral(@"</option> 1108 <option value=""01"">G</option> 1109 <option value=""02"">F</option> 1110 <option value=""03"">E</option> 1111 <option value=""04"">D</option> 1112 <option value=""05"">C</option> 1113 <option value=""06"">B</option> 1114 <option value=""07"">A</option> 1115 <option value=""08"">A2010</option> 1116 <option value=""09"">A2015</option> 1117 <option value=""10"">A2020+</option> 1118 </select> 1119 </div> 1120 "); 1121 WriteLiteral(@" </div> 1122 </div> 1123 </div> 1124 <div class=""col-12 col-sm-6 col-lg-3 mt-3""> 1125 <h4"); 1126 BeginWriteAttribute("class", " class=\"", 153743, "\"", 153751, 0); 1127 EndWriteAttribute(); 1128 WriteLiteral("><b>"); 1129 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 1130 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 1131 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 1132 WriteLiteral("</label>\r\n <div class=\"col-6 pr-sm-0 pr-2\">\r\n <input type=\"text\" name=\"subsidymin\" id=\"subsidymin\" class=\"form-control js-subsidymin-frontpage-input js-count\""); 1133 BeginWriteAttribute("placeholder", " placeholder=\'", 154313, "\'", 154388, 1); 1134 WriteAttributeValue("", 154327, Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"), 154327, 61, false); 1135 EndWriteAttribute(); 1136 BeginWriteAttribute("value", " value=\'", 154389, "\'", 154530, 1); 1137 WriteAttributeValue("", 154397, !string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymin"]) ? Context.Current.Request.QueryString["subsidymin"] : "", 154397, 133, false); 1138 EndWriteAttribute(); 1139 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">"); 1140 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 1141 WriteLiteral("</option>\r\n"); 1142 for (var i = 0; i <= 25000; i += 1250) 1143 { 1144 if (i == 25000) 1145 { 1146 WriteLiteral(" <option"); 1147 BeginWriteAttribute("value", " value=\"", 155174, "\"", 155203, 1); 1148 WriteAttributeValue("", 155182, Converter.ToInt32(i), 155182, 21, false); 1149 EndWriteAttribute(); 1150 WriteLiteral(">"); 1151 Write(Converter.ToInt32(i).ToString("N0")); 1152 WriteLiteral("+</option>\r\n"); 1153 } 1154 else 1155 { 1156 WriteLiteral(" <option"); 1157 BeginWriteAttribute("value", " value=\"", 155500, "\"", 155529, 1); 1158 WriteAttributeValue("", 155508, Converter.ToInt32(i), 155508, 21, false); 1159 EndWriteAttribute(); 1160 WriteLiteral(">"); 1161 Write(Converter.ToInt32(i).ToString("N0")); 1162 WriteLiteral("</option>\r\n"); 1163 } 1164 } 1165 WriteLiteral(@" </select> 1166 </div> 1167 <div class=""col-6 pl-sm-0 pl-2""> 1168 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count"""); 1169 BeginWriteAttribute("placeholder", " placeholder=\'", 156041, "\'", 156116, 1); 1170 WriteAttributeValue("", 156055, Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"), 156055, 61, false); 1171 EndWriteAttribute(); 1172 BeginWriteAttribute("value", " value=\'", 156117, "\'", 156258, 1); 1173 WriteAttributeValue("", 156125, !string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymax"]) ? Context.Current.Request.QueryString["subsidymax"] : "", 156125, 133, false); 1174 EndWriteAttribute(); 1175 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1176 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 1177 WriteLiteral("</option>\r\n"); 1178 for (var i = 0; i <= 25000; i += 1250) 1179 { 1180 if (i == 25000) 1181 { 1182 WriteLiteral(" <option"); 1183 BeginWriteAttribute("value", " value=\"", 156898, "\"", 156927, 1); 1184 WriteAttributeValue("", 156906, Converter.ToInt32(i), 156906, 21, false); 1185 EndWriteAttribute(); 1186 WriteLiteral(">"); 1187 Write(Convert.ToInt32(i).ToString("N0")); 1188 WriteLiteral("+</option>\r\n"); 1189 } 1190 else 1191 { 1192 WriteLiteral(" <option"); 1193 BeginWriteAttribute("value", " value=\"", 157222, "\"", 157251, 1); 1194 WriteAttributeValue("", 157230, Converter.ToInt32(i), 157230, 21, false); 1195 EndWriteAttribute(); 1196 WriteLiteral(">"); 1197 Write(Convert.ToInt32(i).ToString("N0")); 1198 WriteLiteral("</option>\r\n"); 1199 } 1200 } 1201 WriteLiteral(@" </select> 1202 </div> 1203 </div> 1204 </div> 1205 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0""> 1206 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1207 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 1208 WriteLiteral(@"</button> 1209 </div> 1210 </div> 1211 </div> 1212 </div> 1213 </div> 1214 <div class=""row d-block d-md-none form-wrapper no-gutters""> 1215 <div class=""col-xs-12 col-md-2""> 1216 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1217 Write(Translate("Smartpage:Search.Søg", "Søg")); 1218 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n"); 1219 } 1220 else 1221 { 1222 WriteLiteral(@" <div class=""main-search-form center""> 1223 <i class=""fal fa-times float-right fa-2x js-close-search""></i> 1224 <div class=""row mb-3 align-items-center""> 1225 <div class=""col-xs-12 col-md-5 border-right""> 1226 <h3>"); 1227 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 1228 WriteLiteral("</h3>\r\n </div>\r\n <div class=\"col-xs-12 col-md-7 home-count d-none d-md-block\">\r\n <span class=\"search-count\" id=\"searchCounterMain\">0</span> <span>"); 1229 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 1230 WriteLiteral("</span>\r\n </div>\r\n </div>\r\n\r\n <form id=\"main-search\" class=\"searchbar-wrapper\" action=\"/Default.aspx\" method=\"GET\">\r\n <input type=\"hidden\" name=\"ID\""); 1231 BeginWriteAttribute("value", " value=\'", 159365, "\'", 159386, 1); 1232 WriteAttributeValue("", 159373, searchPageId, 159373, 13, false); 1233 EndWriteAttribute(); 1234 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" /> 1235 <div class=""row form-wrapper no-gutters""> 1236 1237 <div class=""col-12 mb-10""> 1238 <div class=""searchbar""> 1239 <input type=""text"""); 1240 BeginWriteAttribute("name", " name=\"", 159650, "\"", 159677, 1); 1241 WriteAttributeValue("", 159657, querySearchNameAttr, 159657, 20, false); 1242 EndWriteAttribute(); 1243 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 1244 BeginWriteAttribute("value", " value=\'", 159780, "\'", 159800, 1); 1245 WriteAttributeValue("", 159788, querySearch, 159788, 12, false); 1246 EndWriteAttribute(); 1247 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\""); 1248 BeginWriteAttribute("value", " value=\'", 159894, "\'", 159919, 1); 1249 WriteAttributeValue("", 159902, queryZipCodeFrom, 159902, 17, false); 1250 EndWriteAttribute(); 1251 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\""); 1252 BeginWriteAttribute("value", " value=\'", 160009, "\'", 160032, 1); 1253 WriteAttributeValue("", 160017, queryZipCodeTo, 160017, 15, false); 1254 EndWriteAttribute(); 1255 WriteLiteral(@" /> 1256 </div> 1257 </div> 1258 <div class=""col-xs-12 col-md-8""> 1259 <div class=""row no-gutters""> 1260 <div class=""col-xs-12 col-md-6 input-col""> 1261 <div class=""dropdown""> 1262 <button class=""btn btn-dropdown dropdown-toggle reverse js-count"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 1263 "); 1264 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 1265 WriteLiteral(@" 1266 </button> 1267 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 1268 <ul class=""bolig-dropdown list-unstyled""> 1269 "); 1270 1271 RenderBoligtypeCheckboxesDropdown(); 1272 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 1273 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 1274 WriteLiteral(@"</button> 1275 </div> 1276 1277 </div> 1278 1279 </div> 1280 <div class=""col-xs-12 col-md-6 input-col""> 1281 <div class=""dropdown""> 1282 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 1283 "); 1284 Write(Translate("Smartpage:Search.Pris", "Pris")); 1285 WriteLiteral(@" 1286 </button> 1287 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris""> 1288 <input type=""text"" name=""pricemin"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 1289 BeginWriteAttribute("placeholder", " placeholder=\'", 162274, "\'", 162351, 1); 1290 WriteAttributeValue("", 162288, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 162288, 63, false); 1291 EndWriteAttribute(); 1292 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1293 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 1294 WriteLiteral("</option>\r\n"); 1295 for (var i = 0; i <= 10000000; i += 100000) 1296 { 1297 if (i == 10000000) 1298 { 1299 WriteLiteral(" <option"); 1300 BeginWriteAttribute("value", " value=\"", 162988, "\"", 162998, 1); 1301 WriteAttributeValue("", 162996, i, 162996, 2, false); 1302 EndWriteAttribute(); 1303 WriteLiteral(" data-value=\'"); 1304 Write(Converter.ToInt32(i).ToString("N0")); 1305 WriteLiteral("+\'>"); 1306 Write(Converter.ToInt32(i).ToString("N0")); 1307 WriteLiteral("+</option>\r\n"); 1308 } 1309 else 1310 { 1311 WriteLiteral(" <option"); 1312 BeginWriteAttribute("value", " value=\"", 163330, "\"", 163340, 1); 1313 WriteAttributeValue("", 163338, i, 163338, 2, false); 1314 EndWriteAttribute(); 1315 WriteLiteral(" data-value=\'"); 1316 Write(Converter.ToInt32(i).ToString("N0")); 1317 WriteLiteral("\'>"); 1318 Write(Converter.ToInt32(i).ToString("N0")); 1319 WriteLiteral("</option>\r\n"); 1320 } 1321 } 1322 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\""); 1323 BeginWriteAttribute("placeholder", " placeholder=\'", 163746, "\'", 163823, 1); 1324 WriteAttributeValue("", 163760, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 163760, 63, false); 1325 EndWriteAttribute(); 1326 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1327 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 1328 WriteLiteral("</option>\r\n"); 1329 for (var i = 0; i <= 10000000; i += 100000) 1330 { 1331 if (i == 10000000) 1332 { 1333 WriteLiteral(" <option"); 1334 BeginWriteAttribute("value", " value=\"", 164454, "\"", 164464, 1); 1335 WriteAttributeValue("", 164462, i, 164462, 2, false); 1336 EndWriteAttribute(); 1337 WriteLiteral(" data-value=\'"); 1338 Write(Converter.ToInt32(i).ToString("N0")); 1339 WriteLiteral("+\'>"); 1340 Write(Converter.ToInt32(i).ToString("N0")); 1341 WriteLiteral("+</option>\r\n"); 1342 } 1343 else 1344 { 1345 WriteLiteral(" <option"); 1346 BeginWriteAttribute("value", " value=\"", 164796, "\"", 164806, 1); 1347 WriteAttributeValue("", 164804, i, 164804, 2, false); 1348 EndWriteAttribute(); 1349 WriteLiteral(" data-value=\'"); 1350 Write(Converter.ToInt32(i).ToString("N0")); 1351 WriteLiteral("\'>"); 1352 Write(Converter.ToInt32(i).ToString("N0")); 1353 WriteLiteral("</option>\r\n"); 1354 } 1355 } 1356 WriteLiteral(@" </select> 1357 </div> 1358 </div> 1359 </div> 1360 </div> 1361 </div> 1362 <div class=""col-xs-12 col-md-4 d-none d-md-block""> 1363 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1364 Write(Translate("Smartpage:Search.Søg", "Søg")); 1365 WriteLiteral(@"</button> 1366 </div> 1367 </div> 1368 1369 <div class=""row moresearch-btn no-gutters""> 1370 <div class=""col-sm-12""> 1371 <div class=""row align-items-center no-gutters""> 1372 <div class=""col-12 col-md-5""> 1373 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch-master""> 1374 <span class=""moreSearch-text""><i class=""fas fa-plus open-close white""></i> <span class=""not-open white"">"); 1375 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 1376 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> "); 1377 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 1378 WriteLiteral(" </span></span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-md-3 mb-xs-4\">\r\n <a class=\"js-reset reset-btn white\">"); 1379 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 1380 WriteLiteral(@"</a> 1381 </div> 1382 <div class=""col-6 col-md-4 mb-xs-4""> 1383 <div class=""parent-purchases""> 1384 <label class=""checkbox-container white""> 1385 "); 1386 Write(Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet")); 1387 WriteLiteral(@" 1388 <input type=""checkbox"" name=""foraeldrekoebegnet"" value=""true"" class=""js-input-check""> 1389 <span class=""checkmark grey""></span> 1390 </label> 1391 </div> 1392 </div> 1393 </div> 1394 1395 <div class=""collapse"" id=""moreSearch-master""> 1396 1397 <h4 class=""mt-20""><b>"); 1398 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 1399 WriteLiteral(@"</b></h4> 1400 <div class=""row align-items-end mb-30""> 1401 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1402 <div class=""filter-container row""> 1403 <label class=""d-block col-12"">"); 1404 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 1405 WriteLiteral(@"</label> 1406 <div class=""col-6 pr-sm-0 pr-2""> 1407 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 1408 BeginWriteAttribute("placeholder", " placeholder=\'", 168263, "\'", 168336, 1); 1409 WriteAttributeValue("", 168277, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 168277, 59, false); 1410 EndWriteAttribute(); 1411 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1412 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 1413 WriteLiteral("</option>\r\n"); 1414 for (var i = 0; i <= 300; i += 10) 1415 { 1416 if (i == 300) 1417 { 1418 WriteLiteral(" <option>"); 1419 Write(i); 1420 WriteLiteral("+</option>\r\n"); 1421 } 1422 else 1423 { 1424 WriteLiteral(" <option>"); 1425 Write(i); 1426 WriteLiteral("</option>\r\n"); 1427 } 1428 } 1429 WriteLiteral(@" </select> 1430 </div> 1431 <div class=""col-6 pl-sm-0 pl-2""> 1432 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 1433 BeginWriteAttribute("placeholder", " placeholder=\'", 169719, "\'", 169792, 1); 1434 WriteAttributeValue("", 169733, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 169733, 59, false); 1435 EndWriteAttribute(); 1436 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1437 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 1438 WriteLiteral("</option>\r\n"); 1439 for (var i = 0; i <= 300; i += 10) 1440 { 1441 if (i == 300) 1442 { 1443 WriteLiteral(" <option>"); 1444 Write(i); 1445 WriteLiteral("+</option>\r\n"); 1446 } 1447 else 1448 { 1449 WriteLiteral(" <option>"); 1450 Write(i); 1451 WriteLiteral("</option>\r\n"); 1452 } 1453 } 1454 WriteLiteral(@" </select> 1455 </div> 1456 </div> 1457 </div> 1458 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1459 <div class=""filter-container row""> 1460 <label class=""d-block col-12"">"); 1461 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 1462 WriteLiteral(@"</label> 1463 <div class=""col-6 pr-sm-0 pr-2""> 1464 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 1465 BeginWriteAttribute("placeholder", " placeholder=\'", 171571, "\'", 171644, 1); 1466 WriteAttributeValue("", 171585, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 171585, 59, false); 1467 EndWriteAttribute(); 1468 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1469 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 1470 WriteLiteral("</option>\r\n"); 1471 for (var i = 0; i <= 10000; i += 100) 1472 { 1473 if (i == 10000) 1474 { 1475 WriteLiteral(" <option"); 1476 BeginWriteAttribute("value", " value=\"", 172284, "\"", 172313, 1); 1477 WriteAttributeValue("", 172292, Converter.ToInt32(i), 172292, 21, false); 1478 EndWriteAttribute(); 1479 WriteLiteral(">"); 1480 Write(Converter.ToInt32(i).ToString("N0")); 1481 WriteLiteral("+</option>\r\n"); 1482 } 1483 else 1484 { 1485 WriteLiteral(" <option"); 1486 BeginWriteAttribute("value", " value=\"", 172610, "\"", 172639, 1); 1487 WriteAttributeValue("", 172618, Converter.ToInt32(i), 172618, 21, false); 1488 EndWriteAttribute(); 1489 WriteLiteral(">"); 1490 Write(Converter.ToInt32(i).ToString("N0")); 1491 WriteLiteral("</option>\r\n"); 1492 } 1493 } 1494 WriteLiteral(@" </select> 1495 </div> 1496 <div class=""col-6 pl-sm-0 pl-2""> 1497 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 1498 BeginWriteAttribute("placeholder", " placeholder=\'", 173160, "\'", 173233, 1); 1499 WriteAttributeValue("", 173174, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 173174, 59, false); 1500 EndWriteAttribute(); 1501 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1502 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 1503 WriteLiteral("</option>\r\n"); 1504 for (var i = 0; i <= 10000; i += 100) 1505 { 1506 if (i == 10000) 1507 { 1508 WriteLiteral(" <option"); 1509 BeginWriteAttribute("value", " value=\"", 173864, "\"", 173893, 1); 1510 WriteAttributeValue("", 173872, Converter.ToInt32(i), 173872, 21, false); 1511 EndWriteAttribute(); 1512 WriteLiteral(">"); 1513 Write(Converter.ToInt32(i).ToString("N0")); 1514 WriteLiteral("+</option>\r\n"); 1515 } 1516 else 1517 { 1518 WriteLiteral(" <option"); 1519 BeginWriteAttribute("value", " value=\"", 174190, "\"", 174219, 1); 1520 WriteAttributeValue("", 174198, Converter.ToInt32(i), 174198, 21, false); 1521 EndWriteAttribute(); 1522 WriteLiteral(">"); 1523 Write(Converter.ToInt32(i).ToString("N0")); 1524 WriteLiteral("</option>\r\n"); 1525 } 1526 } 1527 WriteLiteral(@" </select> 1528 </div> 1529 </div> 1530 </div> 1531 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1532 <div class=""filter-container row""> 1533 <label class=""d-block col-12"">Antal rum</label> 1534 1535 <div class=""col-6 pr-sm-0 pr-2""> 1536 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count""> 1537 <option selected=""selected"" disabled=""disabled"">"); 1538 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 1539 WriteLiteral(@"</option> 1540 <option value=""1"">1</option> 1541 <option value=""2"">2</option> 1542 <option value=""3"">3</option> 1543 <option value=""4"">4</option> 1544 <option value=""5"">5+</option> 1545 </select> 1546 </div> 1547 <div class=""col-6 pl-sm-0 pl-2""> 1548 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count""> 1549 <option selected=""selected"" disabled=""disabled"">"); 1550 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 1551 WriteLiteral(@"</option> 1552 <option value=""1"">1</option> 1553 <option value=""2"">2</option> 1554 <option value=""3"">3</option> 1555 <option value=""4"">4</option> 1556 <option value=""5"">5+</option> 1557 </select> 1558 </div> 1559 </div> 1560 </div> 1561 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1562 <div class=""row""> 1563 <div class=""col-12 pr-2""> 1564 <div class=""filter-container""> 1565 <label class=""d-block"">Energimærke</label> 1566 "); 1567 WriteLiteral(" <select name=\"energylabel\" id=\"energylabel\" class=\"form-control reverse js-energylabel-select js-count\">\r\n <option disabled selected=\"selected\">"); 1568 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 1569 WriteLiteral(@"</option> 1570 <option value=""01"">G</option> 1571 <option value=""02"">F</option> 1572 <option value=""03"">E</option> 1573 <option value=""04"">D</option> 1574 <option value=""05"">C</option> 1575 <option value=""06"">B</option> 1576 <option value=""07"">A</option> 1577 <option value=""08"">A2010</option> 1578 <option value=""09"">A2015</option> 1579 <option value=""10"">A2020+</option> 1580 </select> 1581 </div> 1582 "); 1583 WriteLiteral(@" </div> 1584 </div> 1585 </div> 1586 <div class=""col-12 col-sm-6 col-lg-6 mt-3""> 1587 <h4"); 1588 BeginWriteAttribute("class", " class=\"", 178725, "\"", 178733, 0); 1589 EndWriteAttribute(); 1590 WriteLiteral("><b>"); 1591 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 1592 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 1593 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 1594 WriteLiteral("</label>\r\n <div class=\"col-6 pr-sm-0 pr-2\">\r\n <input type=\"text\" name=\"subsidymin\" id=\"subsidymin\" class=\"form-control js-subsidymin-frontpage-input js-count\""); 1595 BeginWriteAttribute("placeholder", " placeholder=\'", 179295, "\'", 179362, 1); 1596 WriteAttributeValue("", 179309, Translate("Smartpage:Search.Placeholder.Min", "Min"), 179309, 53, false); 1597 EndWriteAttribute(); 1598 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">"); 1599 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 1600 WriteLiteral("</option>\r\n"); 1601 for (var i = 0; i <= 25000; i += 1250) 1602 { 1603 if (i == 25000) 1604 { 1605 WriteLiteral(" <option"); 1606 BeginWriteAttribute("value", " value=\"", 180006, "\"", 180035, 1); 1607 WriteAttributeValue("", 180014, Converter.ToInt32(i), 180014, 21, false); 1608 EndWriteAttribute(); 1609 WriteLiteral(">"); 1610 Write(Converter.ToInt32(i).ToString("N0")); 1611 WriteLiteral("+</option>\r\n"); 1612 } 1613 else 1614 { 1615 WriteLiteral(" <option"); 1616 BeginWriteAttribute("value", " value=\"", 180332, "\"", 180361, 1); 1617 WriteAttributeValue("", 180340, Converter.ToInt32(i), 180340, 21, false); 1618 EndWriteAttribute(); 1619 WriteLiteral(">"); 1620 Write(Converter.ToInt32(i).ToString("N0")); 1621 WriteLiteral("</option>\r\n"); 1622 } 1623 } 1624 WriteLiteral(@" </select> 1625 </div> 1626 <div class=""col-6 pl-sm-0 pl-2""> 1627 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count"""); 1628 BeginWriteAttribute("placeholder", " placeholder=\'", 180873, "\'", 180940, 1); 1629 WriteAttributeValue("", 180887, Translate("Smartpage:Search.Placeholder.Max", "Max"), 180887, 53, false); 1630 EndWriteAttribute(); 1631 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1632 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 1633 WriteLiteral("</option>\r\n"); 1634 for (var i = 0; i <= 25000; i += 1250) 1635 { 1636 if (i == 25000) 1637 { 1638 WriteLiteral(" <option"); 1639 BeginWriteAttribute("value", " value=\"", 181580, "\"", 181609, 1); 1640 WriteAttributeValue("", 181588, Converter.ToInt32(i), 181588, 21, false); 1641 EndWriteAttribute(); 1642 WriteLiteral(">"); 1643 Write(Converter.ToInt32(i).ToString("N0")); 1644 WriteLiteral("+</option>\r\n"); 1645 } 1646 else 1647 { 1648 WriteLiteral(" <option"); 1649 BeginWriteAttribute("value", " value=\"", 181906, "\"", 181935, 1); 1650 WriteAttributeValue("", 181914, Converter.ToInt32(i), 181914, 21, false); 1651 EndWriteAttribute(); 1652 WriteLiteral(">"); 1653 Write(Converter.ToInt32(i).ToString("N0")); 1654 WriteLiteral("</option>\r\n"); 1655 } 1656 } 1657 WriteLiteral(@" </select> 1658 </div> 1659 </div> 1660 </div> 1661 <div class=""col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0""> 1662 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1663 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 1664 WriteLiteral(@"</button> 1665 </div> 1666 </div> 1667 </div> 1668 </div> 1669 </div> 1670 <div class=""row d-block d-md-none form-wrapper no-gutters""> 1671 <div class=""col-xs-12 col-md-2""> 1672 <button type=""submit"" class=""btn btn-block btn-search dark-red""><i class=""fa fa-search""></i> "); 1673 Write(Translate("Smartpage:Search.Søg", "Søg")); 1674 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n"); 1675 } 1676 WriteLiteral(" </div>\r\n\r\n"); 1677 1678 RenderSlideMenu(false, Convert.ToString(settings_Maeglersogning)); 1679 WriteLiteral("\r\n"); 1680 if (isBrokerPage) 1681 { 1682 WriteLiteral(" <section class=\"maegler-navbar\">\r\n "); 1683 Write(RenderNavigation(new 1684 { 1685 id = "navbar-main", 1686 cssclass = "dwnavigation", 1687 template = "ul_li.xslt", 1688 StartLevel = 1, 1689 EndLevel = 1 1690 })); 1691 WriteLiteral("\r\n </section>\r\n"); 1692 } 1693 WriteLiteral("\r\n <div class=\"visual-editor\">\r\n"); 1694 WriteLiteral("\r\n\r\n"); 1695 WriteLiteral("\r\n"); 1696 WriteLiteral("\r\n"); 1697 1698 string listPageId = Converter.ToString(GetPageIdByNavigationTag("DynamicListFeed")); 1699 string parentPageId = Dynamicweb.Services.Pages.GetPage(Model.ID).Parent.ID.ToString(); 1700 string topLayout = Model.Item.GetList("TopLayout") != null ? Model.Item.GetList("TopLayout").SelectedValue : "default"; 1701 topLayout = topLayout == "default" && GetParentSettingsItem("ArticleTopLayout") != null ? GetParentSettingsItem("ArticleTopLayout").ToString().ToLower() : topLayout; 1702 string textLayout = Model.Item.GetList("TextLayout") != null ? Model.Item.GetList("TextLayout").SelectedValue : "default"; 1703 textLayout = textLayout == "default" && GetParentSettingsItem("ArticleTextLayout") != null ? GetParentSettingsItem("ArticleTextLayout").ToString().ToLower() : textLayout; 1704 string imageLayout = Model.Item.GetList("ImageLayout") != null ? Model.Item.GetList("ImageLayout").SelectedValue : "default"; 1705 imageLayout = imageLayout == "default" && GetParentSettingsItem("ArticleImageLayout") != null ? GetParentSettingsItem("ArticleImageLayout").ToString().ToLower() : imageLayout; 1706 1707 //string imageColumns = imageLayout == "straight" && textLayout != "full" ? "8" : "12"; 1708 //string contentColumns = textLayout != "full" ? "8" : "12"; 1709 string imageColumns = "12"; 1710 string contentColumns = "12"; 1711 1712 int externalParagraphId = Model.Item.GetItem("CTAParagraphLink") != null ? Model.Item.GetItem("CTAParagraphLink").ParagraphID : 0; 1713 1714 ArticleHeaderLayout headerLayout; 1715 1716 switch (topLayout) 1717 { 1718 case "default": 1719 headerLayout = ArticleHeaderLayout.Clean; 1720 break; 1721 case "split": 1722 headerLayout = ArticleHeaderLayout.Split; 1723 break; 1724 case "banner": 1725 headerLayout = ArticleHeaderLayout.Banner; 1726 break; 1727 case "overlay": 1728 headerLayout = ArticleHeaderLayout.Overlay; 1729 break; 1730 default: 1731 headerLayout = ArticleHeaderLayout.Clean; 1732 break; 1733 } 1734 1735 1736 Block articleContainer = new Block 1737 { 1738 Id = "ArticleContainer", 1739 SortId = 10, 1740 Design = new Design 1741 { 1742 RenderType = RenderType.Row 1743 }, 1744 BlocksList = new List<Block> { 1745 new Block { 1746 Id = "ArticleBody", 1747 SortId = 30, 1748 Design = new Design { 1749 RenderType = RenderType.Column, 1750 Size = "12", 1751 HidePadding = true, 1752 CssClass = "margin-top-large" 1753 } 1754 } 1755 } 1756 }; 1757 articlePage.Add(articleContainer); 1758 1759 ButtonLayout topBannerButtonLayout = ButtonLayout.Primary; 1760 1761 switch (Model.Item.GetString("ButtonDesign")) 1762 { 1763 case "primary": 1764 topBannerButtonLayout = ButtonLayout.Primary; 1765 break; 1766 case "secondary": 1767 topBannerButtonLayout = ButtonLayout.Secondary; 1768 break; 1769 case "teritary": 1770 topBannerButtonLayout = ButtonLayout.Tertiary; 1771 break; 1772 case "link": 1773 topBannerButtonLayout = ButtonLayout.Link; 1774 break; 1775 } 1776 1777 ArticleHeader topBanner = new ArticleHeader 1778 { 1779 Layout = headerLayout, 1780 Image = new Image { Path = Model.Item.GetFile("Image"), ImageDefault = new ImageSettings { Width = 1920, Height = 640 } }, 1781 Heading = Model.Item.GetString("Title"), 1782 Subheading = Model.Item.GetString("Summary"), 1783 TextColor = "#fff", 1784 Author = Model.Item.GetString("Author"), 1785 Date = Model.Item.GetString("Date"), 1786 Category = GetArticleCategory(Model.ID), 1787 CategoryColor = GetArticleCategoryColor(Model.ID), 1788 Link = Model.Item.GetString("Link"), 1789 LinkText = Model.Item.GetString("LinkText"), 1790 ButtonLayout = topBannerButtonLayout, 1791 RatingScore = Model.Item.GetString("Rating") != null ? Converter.ToInt32(Model.Item.GetList("Rating").SelectedValue) : 0, 1792 RatingOutOf = Model.Item.GetString("Rating") != null ? Model.Item.GetList("Rating").Options.Count : 0, 1793 ExternalParagraphId = externalParagraphId 1794 }; 1795 1796 Block articleTop = new Block 1797 { 1798 Id = "ArticleHead", 1799 SortId = 20, 1800 Component = topBanner, 1801 Design = new Design 1802 { 1803 RenderType = RenderType.Column, 1804 Size = "12", 1805 HidePadding = true, 1806 CssClass = "article-head" 1807 } 1808 }; 1809 //articlePage.Add("ArticleContainer", articleTop); 1810 1811 1812 Block articleBodyRow = new Block 1813 { 1814 Id = "ArticleBodyRow", 1815 SortId = 10, 1816 SkipRenderBlocksList = true 1817 }; 1818 articlePage.Add("ArticleBody", articleBodyRow); 1819 1820 1821 if (Model.Item.GetString("Paragraphs") != null) 1822 { 1823 int count = 0; 1824 foreach (var paragraph in Model.Item.GetItems("Paragraphs")) 1825 { 1826 if (!paragraph.GetBoolean("RenderAsQuote")) 1827 { 1828 string enableDropCap = Model.Item.GetString("EnableDropCap") != null ? Model.Item.GetList("EnableDropCap").SelectedValue.ToLower() : "default"; 1829 enableDropCap = enableDropCap == "default" && GetParentSettingsItem("EnableDropCap") != null ? GetParentSettingsItem("EnableDropCap").ToString().ToLower() : enableDropCap; 1830 string text = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : ""; 1831 1832 if (!String.IsNullOrEmpty(text) && enableDropCap == "true" && count == 0 && paragraph.GetString("Text").Substring(0, 3) == "<p>") 1833 { 1834 string firstLetter = paragraph.GetString("Text").Substring(3, 1); 1835 text = paragraph.GetString("Text").Remove(3, 1); 1836 text = text.Insert(3, "<span class=\"article__drop-cap\">" + firstLetter + "</span>"); 1837 } 1838 1839 if (!String.IsNullOrEmpty(paragraph.GetString("Heading"))) 1840 { 1841 Block articleParagraphHeader = new Block 1842 { 1843 Id = "ArticleParagraph" + count + "Heading", 1844 SortId = (count * 10) , 1845 Component = new ArticleSubHeader { Title = paragraph.GetString("Heading") }, 1846 Design = new Design 1847 { 1848 RenderType = RenderType.Column, 1849 Size = contentColumns, 1850 CssClass = "u-color-light--bg u-padding--lg" 1851 } 1852 }; 1853 articlePage.Add("ArticleBodyRow", articleParagraphHeader); 1854 } 1855 1856 if (paragraph.GetFile("Image") != null) 1857 { 1858 string imageTitle = !string.IsNullOrEmpty(paragraph.GetString("Heading")) ? paragraph.GetString("Heading") : ""; 1859 1860 Block articleParagraphImage = new Block 1861 { 1862 Id = "ArticleParagraph" + count + "Image", 1863 SortId = (count * 10) + 2, 1864 Design = new Design 1865 { 1866 RenderType = RenderType.Column, 1867 Size = imageColumns, 1868 CssClass = "u-color-light--bg u-padding--lg" 1869 } 1870 }; 1871 1872 if (imageLayout == "banner") 1873 { 1874 ArticleBanner banner = new ArticleBanner 1875 { 1876 Image = new Image { Path = paragraph.GetFile("Image"), ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, Caption = paragraph.GetString("ImageCaption") }, 1877 Heading = imageTitle, 1878 UseFilters = false 1879 }; 1880 articleParagraphImage.Component = banner; 1881 } 1882 else 1883 { 1884 ArticleImage image = new ArticleImage 1885 { 1886 Image = new Image 1887 { 1888 Path = paragraph.GetFile("Image"), 1889 Title = imageTitle, 1890 ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, 1891 Caption = paragraph.GetString("ImageCaption"), 1892 CssClass = "u-full-width" 1893 } 1894 }; 1895 articleParagraphImage.Component = image; 1896 } 1897 1898 articlePage.Add("ArticleBodyRow", articleParagraphImage); 1899 } 1900 1901 if (!String.IsNullOrEmpty(paragraph.GetString("VideoURL"))) 1902 { 1903 Block articleParagraphVideo = new Block 1904 { 1905 Id = "ArticleParagraph" + count + "Video", 1906 SortId = (count * 10) + 3, 1907 Component = new ArticleVideo { Url = paragraph.GetString("VideoURL"), AutoPlay = "false" }, 1908 Design = new Design 1909 { 1910 RenderType = RenderType.Column, 1911 Size = imageColumns, 1912 CssClass = "u-color-light--bg u-padding--lg" 1913 } 1914 }; 1915 articlePage.Add("ArticleBodyRow", articleParagraphVideo); 1916 } 1917 1918 if (!String.IsNullOrEmpty(text)) 1919 { 1920 Block articleParagraphText = new Block 1921 { 1922 Id = "ArticleParagraph" + count + "Text", 1923 SortId = (count * 10) + 3, 1924 Component = new ArticleText { Text = text }, 1925 Design = new Design 1926 { 1927 RenderType = RenderType.Column, 1928 Size = contentColumns, 1929 CssClass = "u-color-light--bg u-padding--lg" 1930 } 1931 }; 1932 1933 articlePage.Add("ArticleBodyRow", articleParagraphText); 1934 } 1935 } 1936 else 1937 { 1938 if (!String.IsNullOrEmpty(paragraph.GetString("Text"))) 1939 { 1940 string quoteText = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : ""; 1941 string quoteAuthor = paragraph.GetString("Heading") != null ? paragraph.GetString("Heading") : ""; 1942 1943 Block articleParagraphQuote = new Block 1944 { 1945 Id = "ArticleParagraph" + count + "Quote", 1946 SortId = (count * 10) + 3, 1947 Component = new ArticleQuote { Image = new Image { Path = paragraph.GetFile("Image") }, Text = quoteText, Author = quoteAuthor }, 1948 Design = new Design 1949 { 1950 RenderType = RenderType.Column, 1951 Size = contentColumns, 1952 CssClass = "u-color-light--bg u-padding--lg" 1953 } 1954 }; 1955 articlePage.Add("ArticleBodyRow", articleParagraphQuote); 1956 } 1957 } 1958 1959 count++; 1960 } 1961 } 1962 1963 articleBodyRow.Component = new ArticleBodyRow { SubBlocks = articleBodyRow.BlocksList, TopLayout = topLayout, TextLayout = textLayout }; 1964 1965 1966 //Related 1967 string showRelatedArtices = Model.Item.GetString("ShowRelatedArticles") != null ? Model.Item.GetList("ShowRelatedArticles").SelectedValue.ToLower() : "default"; 1968 showRelatedArtices = showRelatedArtices == "default" && GetParentSettingsItem("ShowRelatedArticles") != null ? GetParentSettingsItem("ShowRelatedArticles").ToString().ToLower() : showRelatedArtices; 1969 1970 if (showRelatedArtices == "true") 1971 { 1972 Block articleRelated = new Block 1973 { 1974 Id = "ArticleRelated", 1975 SortId = 30, 1976 Component = new ArticleRelated { Title = Translate("Related articles"), FeedPageId = listPageId, Query = "sourceType=Page&sourcePage=" + parentPageId, PageSize = 4, CurrentPageId = Model.ID.ToString() }, 1977 Design = new Design 1978 { 1979 RenderType = RenderType.Column, 1980 Size = "12" 1981 } 1982 }; 1983 articlePage.Add("ArticleContainer", articleRelated); 1984 } 1985 WriteLiteral("\r\n\r\n"); 1986 WriteLiteral("<section class=\"center-container content-container dw-mod\">\r\n "); 1987 Write(RenderBlockList(articlePage.BlocksRoot.BlocksList)); 1988 WriteLiteral("\r\n</section>\r\n </div>\r\n\r\n"); 1989 if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true) 1990 { 1991 string bName = MyBroker.Broker.Name; 1992 string bClass = "na"; 1993 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 1994 1995 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName)) 1996 { 1997 bName = MyBroker.Broker.CompanyName; 1998 } 1999 try 2000 { 2001 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl"); 2002 if (!string.IsNullOrEmpty(imgUrl)) 2003 { 2004 bImage = imgUrl; 2005 bClass = ""; 2006 } 2007 } 2008 catch 2009 { 2010 // Ignore 2011 } 2012 2013 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId"); 2014 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 2015 2016 WriteLiteral(" <section class=\"din-maegler\">\r\n <div"); 2017 BeginWriteAttribute("class", " class=\"", 200729, "\"", 200756, 2); 2018 WriteAttributeValue("", 200737, "img-wrapper", 200737, 11, true); 2019 WriteAttributeValue(" ", 200748, bClass, 200749, 7, false); 2020 EndWriteAttribute(); 2021 BeginWriteAttribute("style", " style=\"", 200757, "\"", 200796, 3); 2022 WriteAttributeValue("", 200765, "background-image:url(\'", 200765, 22, true); 2023 WriteAttributeValue("", 200787, bImage, 200787, 7, false); 2024 WriteAttributeValue("", 200794, "\')", 200794, 2, true); 2025 EndWriteAttribute(); 2026 WriteLiteral(@"></div> 2027 <div class=""container""> 2028 <div class=""col-12 col-sm-12 col-md-6 offset-md-6""> 2029 <h2>Din personlige mægler</h2> 2030 <div class=""row""> 2031 <div class=""col-12 col-sm-6""> 2032 <p> 2033 <b class=""my-broker-name"">"); 2034 Write(MyBroker.Employee.Name); 2035 WriteLiteral("</b><br>\r\n"); 2036 if (!string.IsNullOrEmpty(MyBroker.Employee.Email)) 2037 { 2038 WriteLiteral("Mail: <a"); 2039 BeginWriteAttribute("href", " href=\"", 201353, "\"", 201413, 2); 2040 WriteAttributeValue("", 201360, "mailto:", 201360, 7, true); 2041 WriteAttributeValue("", 201367, ExtractMaskedEmail(MyBroker.Employee.Email), 201367, 46, false); 2042 EndWriteAttribute(); 2043 WriteLiteral(" class=\"my-broker-email\">"); 2044 Write(ExtractMaskedEmail(MyBroker.Employee.Email)); 2045 WriteLiteral("</a><br>"); 2046 2047 } 2048 if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile)) 2049 { 2050 WriteLiteral("Tlf.: <a"); 2051 BeginWriteAttribute("href", " href=\"", 201712, "\"", 201755, 2); 2052 WriteAttributeValue("", 201719, "tel:", 201719, 4, true); 2053 WriteAttributeValue("", 201723, MyBroker.Employee.PhoneMobile, 201723, 32, false); 2054 EndWriteAttribute(); 2055 WriteLiteral(" class=\"my-broker-phone\">"); 2056 Write(FormatPhoneNumber(MyBroker.Employee.PhoneMobile)); 2057 WriteLiteral("</a>"); 2058 2059 } 2060 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2061 { 2062 WriteLiteral("Tlf.: <a"); 2063 BeginWriteAttribute("href", " href=\"", 202055, "\"", 202094, 2); 2064 WriteAttributeValue("", 202062, "tel:", 202062, 4, true); 2065 WriteAttributeValue("", 202066, MyBroker.Broker.Telephone, 202066, 28, false); 2066 EndWriteAttribute(); 2067 WriteLiteral(" class=\"my-broker-phone\">"); 2068 Write(FormatPhoneNumber(MyBroker.Broker.Telephone)); 2069 WriteLiteral("</a>"); 2070 2071 } 2072 WriteLiteral(" </p>\r\n </div>\r\n <div class=\"col-12 col-sm-6\">\r\n <p>\r\n <b class=\"my-broker-company-name\">"); 2073 Write(bName); 2074 WriteLiteral("</b><br>\r\n <span class=\"my-broker-company-address\">"); 2075 Write(MyBroker.Broker.Address); 2076 WriteLiteral("</span><br>\r\n <span class=\"my-broker-company-zip\">"); 2077 Write(MyBroker.Broker.ZipCode); 2078 WriteLiteral("</span> <span class=\"my-broker-company-city\">"); 2079 Write(MyBroker.Broker.City); 2080 WriteLiteral("</span><br>\r\n"); 2081 if (!string.IsNullOrEmpty(bEmail)) 2082 { 2083 WriteLiteral("Mail: <a"); 2084 BeginWriteAttribute("href", " href=\"", 202883, "\"", 202906, 2); 2085 WriteAttributeValue("", 202890, "mailto:", 202890, 7, true); 2086 WriteAttributeValue("", 202897, bEmail, 202897, 9, false); 2087 EndWriteAttribute(); 2088 WriteLiteral(" class=\"my-broker-broker-email\">"); 2089 Write(bEmail); 2090 WriteLiteral("</a><br>"); 2091 2092 } 2093 if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2094 { 2095 WriteLiteral("Tlf.: <a"); 2096 BeginWriteAttribute("href", " href=\"", 203171, "\"", 203210, 2); 2097 WriteAttributeValue("", 203178, "tel:", 203178, 4, true); 2098 WriteAttributeValue("", 203182, MyBroker.Broker.Telephone, 203182, 28, false); 2099 EndWriteAttribute(); 2100 WriteLiteral(" class=\"my-broker-broker-phone\">"); 2101 Write(FormatPhoneNumber(MyBroker.Broker.Telephone)); 2102 WriteLiteral("</a>"); 2103 2104 } 2105 WriteLiteral(" </p>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <br />\r\n <div class=\"col-12 col-sm-6\">\r\n <a"); 2106 BeginWriteAttribute("href", " href=\"", 203586, "\"", 203621, 2); 2107 WriteAttributeValue("", 203593, "/", 203593, 1, true); 2108 WriteAttributeValue("", 203594, medlemsnummer.Substring(1), 203594, 27, false); 2109 EndWriteAttribute(); 2110 WriteLiteral(" class=\"btn btn-primary btn-block my-broker-company-url\">Til mæglerens side</a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n"); 2111 } 2112 WriteLiteral(" <footer>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n"); 2113 2114 var navigationSettings = new NavigationSettings(); 2115 navigationSettings.StartLevel = 1; 2116 navigationSettings.StopLevel = 3; 2117 navigationSettings.ExpandMode = ExpandMode.All; 2118 navigationSettings.RootAreaId = 1; 2119 navigationSettings.RootNavigationTag = "footer-nav"; 2120 2121 WriteLiteral(" "); 2122 Write(Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings)); 2123 WriteLiteral("\r\n </div>\r\n </div>\r\n </footer>\r\n\r\n"); 2124 if (Model.CurrentUser?.ID <= 0) 2125 { 2126 WriteLiteral(" <div id=\"panel-login\" class=\"panel panel-form\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"panel-form\" aria-label=\"Close\">\r\n <b></b>\r\n </button>\r\n <div class=\"loginform login\">\r\n"); 2127 if (loginParagraphId > 0) 2128 { 2129 WriteLiteral("\r\n "); 2130 Write(RenderParagraphContent(loginParagraphId)); 2131 WriteLiteral("\r\n "); 2132 2133 } 2134 WriteLiteral(" </div>\r\n <div class=\"loginform register js-register-form-wrapper\" style=\"display: none;\">\r\n"); 2135 if (createUserParagraphId > 0) 2136 { 2137 WriteLiteral("\r\n "); 2138 Write(RenderParagraphContent(createUserParagraphId)); 2139 WriteLiteral("\r\n "); 2140 2141 } 2142 WriteLiteral(" </div>\r\n <div class=\"loginform forgotpw\" style=\"display: none;\">\r\n <h2 class=\"forgotpw-reg\">"); 2143 Write(Translate("forgot-pw-reg-title", "Glemt adgangskode")); 2144 WriteLiteral("</h2>\r\n <h2 class=\"forgotpw-broker\">"); 2145 Write(Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")); 2146 WriteLiteral("</h2>\r\n <form id=\"forgotPwForm\" class=\"form-body\" method=\"post\""); 2147 BeginWriteAttribute("action", " action=\"", 205684, "\"", 205693, 0); 2148 EndWriteAttribute(); 2149 WriteLiteral(">\r\n <input type=\"hidden\" id=\"AccessUserShopID\" name=\"AccessUserShopID\" value=\"SHOP6\" />\r\n <p class=\"forgotpw-reg\">"); 2150 Write(Translate("forgot-pw-reg-teaser", "Har du glemt din adgangskode? Udfyld din e-mail herunder og få tilsendt instrukser for nulstillelse/ændring af din adgangskode.")); 2151 WriteLiteral("</p>\r\n <p class=\"forgotpw-broker\">"); 2152 Write(Translate("forgot-pw-broker-teaser", "Er du blevet tilmeldt via. din mægler, men mangler adgangskode til dit login? Udfyld e-mailen du har oplyst hos mægleren og få tilsendt instrukser for nulstillelse/ændring af din adgangskode.")); 2153 WriteLiteral(@"</p> 2154 <div class=""form-group""> 2155 <input id=""AccessUserEmail"" name=""AccessUserEmail"" type=""email"" pattern=""[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$"" placeholder=""E-mail"" class=""form-control"" required /> 2156 </div> 2157 <button class=""btn btn-primary btn-block"" type=""submit"">"); 2158 Write(Translate("forgot-pw-cta", "Nulstil adgangskode")); 2159 WriteLiteral("</button>\r\n <br />\r\n <div id=\"submitMessage\"></div>\r\n </form>\r\n </div>\r\n </div>\r\n"); 2160 } 2161 WriteLiteral("\r\n"); 2162 WriteLiteral("\r\n"); 2163 2164 string privacyPolicyText = Translate("Smartpage:PrivacyPolicyText", "* Der samles ingen personlige oplysninger uden dit udtrykkelige samtykke. Ved at klikke på denne checkboks giver du dit samtykke til, at dine data samles og behandles af RealMæglerne A/S for at kunne kontakte dig. Du kan til enhver tid tilbagekalde dit samtykke. For at gøre dette skal du blot sende en meddelelse til"); 2165 WriteLiteral("\r\n<div id=\"panel-kontakt-koeberraadgivning\" class=\"panel panel-form\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"panel-form\" aria-label=\"Close\">\r\n <b></b>\r\n </button>\r\n <h2>"); 2166 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")); 2167 WriteLiteral("</h2>\r\n <form id=\"form-koeberraadgivning\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>"); 2168 Write(Translate("form-navn", "Navn")); 2169 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\" tabindex=\"1\""); 2170 BeginWriteAttribute("placeholder", " placeholder=\'", 207933, "\'", 208015, 1); 2171 WriteAttributeValue("", 207947, Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn"), 207947, 68, false); 2172 EndWriteAttribute(); 2173 BeginWriteAttribute("value", " value=\'", 208016, "\'", 208055, 1); 2174 WriteAttributeValue("", 208024, UserContext.Current.User?.Name, 208024, 31, false); 2175 EndWriteAttribute(); 2176 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2177 Write(Translate("form-email", "E-mail")); 2178 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" tabindex=\"2\" pattern=\"[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\""); 2179 BeginWriteAttribute("placeholder", " placeholder=\'", 208332, "\'", 208417, 1); 2180 WriteAttributeValue("", 208346, Translate("Smartpage:Kontakt.Placeholder.Email", "Indtast din e-mail"), 208346, 71, false); 2181 EndWriteAttribute(); 2182 BeginWriteAttribute("value", " value=\'", 208418, "\'", 208458, 1); 2183 WriteAttributeValue("", 208426, UserContext.Current.User?.Email, 208426, 32, false); 2184 EndWriteAttribute(); 2185 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2186 Write(Translate("form-mobile", "Mobil nr.")); 2187 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"3\" maxlength=\"20\" name=\"mobile\""); 2188 BeginWriteAttribute("placeholder", " placeholder=\'", 208769, "\'", 208854, 1); 2189 WriteAttributeValue("", 208783, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 208783, 71, false); 2190 EndWriteAttribute(); 2191 BeginWriteAttribute("value", " value=\'", 208855, "\'", 208895, 1); 2192 WriteAttributeValue("", 208863, UserContext.Current.User?.Phone, 208863, 32, false); 2193 EndWriteAttribute(); 2194 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2195 Write(Translate("form-telephone", "Telefon nr.")); 2196 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"4\" maxlength=\"20\" name=\"telefonnummer\""); 2197 BeginWriteAttribute("placeholder", " placeholder=\'", 209178, "\'", 209262, 1); 2198 WriteAttributeValue("", 209192, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 209192, 70, false); 2199 EndWriteAttribute(); 2200 BeginWriteAttribute("value", " value=\'", 209263, "\'", 209304, 1); 2201 WriteAttributeValue("", 209271, UserContext.Current?.User?.Phone, 209271, 33, false); 2202 EndWriteAttribute(); 2203 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <h3>"); 2204 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2205 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2206 Write(Translate("form-zip", "Post nr")); 2207 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\" tabindex=\"5\""); 2208 BeginWriteAttribute("placeholder", " placeholder=\'", 209712, "\'", 209790, 1); 2209 WriteAttributeValue("", 209726, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 209726, 64, false); 2210 EndWriteAttribute(); 2211 BeginWriteAttribute("value", " value=\"", 209791, "\"", 209807, 1); 2212 WriteAttributeValue("", 209799, userZip, 209799, 8, false); 2213 EndWriteAttribute(); 2214 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2215 Write(Translate("form-city", "By")); 2216 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-city\" type=\"text\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"form-group overflow-unset\">\r\n <label><strong>"); 2217 Write(Translate("form-adresse", "Adresse")); 2218 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\" tabindex=\"6\""); 2219 BeginWriteAttribute("placeholder", " placeholder=\'", 210374, "\'", 210464, 1); 2220 WriteAttributeValue("", 210388, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 210388, 76, false); 2221 EndWriteAttribute(); 2222 WriteLiteral(" required />\r\n\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2223 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2224 WriteLiteral(@"</label> 2225 </div> 2226 <button class=""form-control text-left js-collapse-focus"" type=""button"" data-toggle=""collapse"" data-target=""#kontaktkoeberrradgiver-collapse"" aria-expanded=""false"" aria-controls=""kontaktkoeberrradgiver-collapse""> 2227 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2228 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2229 WriteLiteral("</strong>\r\n </button>\r\n <div class=\"collapse\" id=\"kontaktkoeberrradgiver-collapse\">\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\""); 2230 BeginWriteAttribute("placeholder", " placeholder=\'", 211258, "\'", 211336, 1); 2231 WriteAttributeValue("", 211272, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 211272, 64, false); 2232 EndWriteAttribute(); 2233 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button type=\"submit\" class=\"btn btn-green btn-block\">"); 2234 Write(Translate("KontaktMægler", "Kontakt Mægler")); 2235 WriteLiteral(@"</button> 2236 </div> 2237 </div> 2238 </div> 2239 <div class=""form-group mt-3""> 2240 <div class=""checkbox""> 2241 <label> 2242 <input type=""checkbox"" name=""kontaktmigok"" required /> 2243 2244 <span>"); 2245 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2246 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2247 Write(privacyPolicyText); 2248 WriteLiteral(" <a"); 2249 BeginWriteAttribute("href", " href=\"", 212149, "\"", 212173, 2); 2250 WriteAttributeValue("", 212156, "mailto:", 212156, 7, true); 2251 WriteAttributeValue("", 212163, termsMail, 212163, 10, false); 2252 EndWriteAttribute(); 2253 WriteLiteral(">"); 2254 Write(termsMail); 2255 WriteLiteral("</a>.\r\n Læs mere på <a"); 2256 BeginWriteAttribute("href", " href=\"", 212218, "\"", 212252, 1); 2257 WriteAttributeValue("", 212225, settings_Persondatapolitik, 212225, 27, false); 2258 EndWriteAttribute(); 2259 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n\r\n <input type=\"hidden\" name=\"fn\" value=\"krk\" />\r\n <input type=\"hidden\" name=\"origin\""); 2260 BeginWriteAttribute("value", " value=\"", 212398, "\"", 212406, 0); 2261 EndWriteAttribute(); 2262 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2263 BeginWriteAttribute("value", " value=\"", 212456, "\"", 212464, 0); 2264 EndWriteAttribute(); 2265 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2266 BeginWriteAttribute("value", " value=\"", 212512, "\"", 212536, 1); 2267 WriteAttributeValue("", 212520, Pageview.AreaID, 212520, 16, false); 2268 EndWriteAttribute(); 2269 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2270 BeginWriteAttribute("value", " value=\"", 212585, "\"", 212601, 1); 2271 WriteAttributeValue("", 212593, butikId, 212593, 8, false); 2272 EndWriteAttribute(); 2273 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2274 BeginWriteAttribute("value", " value=\"", 212655, "\"", 212663, 0); 2275 EndWriteAttribute(); 2276 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2277 BeginWriteAttribute("value", " value=\"", 212714, "\"", 212722, 0); 2278 EndWriteAttribute(); 2279 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2280 BeginWriteAttribute("value", " value=\"", 212772, "\"", 212780, 0); 2281 EndWriteAttribute(); 2282 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-advisor\" style=\"display:none;\">\r\n <h2>"); 2283 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2284 WriteLiteral("</h2>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2285 BeginWriteAttribute("src", " src=\"", 213013, "\"", 213019, 0); 2286 EndWriteAttribute(); 2287 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2288 </div> 2289 <div class=""col-6""> 2290 <p class=""js-maegler-name""></p> 2291 <p class=""js-maegler-address""></p> 2292 <p class=""js-maegler-phone""></p> 2293 <p class=""js-maegler-mail""></p> 2294 </div> 2295 </div> 2296 <p>"); 2297 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2298 WriteLiteral(@"</p> 2299 </div> 2300 </div> 2301 2302 <!--ÅBENT HUS--> 2303 <div id=""panel-aabenthus"" class=""panel panel-form""> 2304 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2305 <b></b> 2306 </button> 2307 2308 2309 <form id=""form-aabenthus"" method=""POST"" action=""/InboxHandler""> 2310 <h2>"); 2311 Write(Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")); 2312 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>"); 2313 Write(Translate("Smarptage:Adresse", "Adresse:")); 2314 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>"); 2315 Write(Translate("Smarptage:Date", "Dato:")); 2316 WriteLiteral("</strong> <label class=\"js-aabenthus-date mb-0\"></label>\r\n </div>\r\n <div class=\"d-block mb-4\">\r\n <strong>"); 2317 Write(Translate("Smarptage:Time", "Tidspunkt:")); 2318 WriteLiteral("</strong> <label class=\"js-aabenthus-time mb-0\"></label>\r\n </div>\r\n <h3>"); 2319 Write(Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")); 2320 WriteLiteral("</h3>\r\n <div class=\"form-group\">\r\n <label for=\"aabenthus-name\"><strong>"); 2321 Write(Translate("form-navn", "Navn")); 2322 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2323 BeginWriteAttribute("placeholder", " placeholder=\'", 214637, "\'", 214721, 1); 2324 WriteAttributeValue("", 214651, Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn"), 214651, 70, false); 2325 EndWriteAttribute(); 2326 BeginWriteAttribute("value", " value=\'", 214722, "\'", 214762, 1); 2327 WriteAttributeValue("", 214730, UserContext.Current?.User?.Name, 214730, 32, false); 2328 EndWriteAttribute(); 2329 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2330 Write(Translate("form-email", "E-mail")); 2331 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\""); 2332 BeginWriteAttribute("placeholder", " placeholder=\'", 215026, "\'", 215113, 1); 2333 WriteAttributeValue("", 215040, Translate("Smartpage:Aabenthus.Placeholder.Email", "Indtast din e-mail"), 215040, 73, false); 2334 EndWriteAttribute(); 2335 BeginWriteAttribute("value", " value=\'", 215114, "\'", 215154, 1); 2336 WriteAttributeValue("", 215122, UserContext.Current.User?.Email, 215122, 32, false); 2337 EndWriteAttribute(); 2338 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2339 Write(Translate("form-mobile", "Mobil nr.")); 2340 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2341 BeginWriteAttribute("placeholder", " placeholder=\'", 215447, "\'", 215534, 1); 2342 WriteAttributeValue("", 215461, Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr."), 215461, 73, false); 2343 EndWriteAttribute(); 2344 BeginWriteAttribute("value", " value=\'", 215535, "\'", 215575, 1); 2345 WriteAttributeValue("", 215543, UserContext.Current.User?.Phone, 215543, 32, false); 2346 EndWriteAttribute(); 2347 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2348 Write(Translate("form-telephone", "Telefon nr.")); 2349 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2350 BeginWriteAttribute("placeholder", " placeholder=\'", 215845, "\'", 215931, 1); 2351 WriteAttributeValue("", 215859, Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr."), 215859, 72, false); 2352 EndWriteAttribute(); 2353 BeginWriteAttribute("value", " value=\'", 215932, "\'", 215972, 1); 2354 WriteAttributeValue("", 215940, UserContext.Current.User?.Phone, 215940, 32, false); 2355 EndWriteAttribute(); 2356 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button type=\"submit\" class=\"btn btn-block btn-green\">"); 2357 Write(Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")); 2358 WriteLiteral(@"</button> 2359 </div> 2360 </div> 2361 </div> 2362 <div class=""form-group""> 2363 <div class=""checkbox""> 2364 <label> 2365 <input type=""checkbox"" name=""kontaktmigok"" required /> 2366 2367 <span class=""base-color"">"); 2368 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2369 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n "); 2370 Write(string.Format(Translate("Smartpage:Panel.Accept", "Du accepterer samtidig vores {0} og giver samtykke til, at dine data samles og behandles af RealMæglerne A/S for at kunne kontakte dig"), "<a href='" + settings_Persondatapolitik + "'>privatlivspolitikkerne</a>")); 2371 WriteLiteral("\r\n\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"ah\" />\r\n <input type=\"hidden\" name=\"origin\""); 2372 BeginWriteAttribute("value", " value=\"", 217135, "\"", 217143, 0); 2373 EndWriteAttribute(); 2374 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2375 BeginWriteAttribute("value", " value=\"", 217193, "\"", 217208, 1); 2376 WriteAttributeValue("", 217201, userID, 217201, 7, false); 2377 EndWriteAttribute(); 2378 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2379 BeginWriteAttribute("value", " value=\"", 217256, "\"", 217280, 1); 2380 WriteAttributeValue("", 217264, Pageview.AreaID, 217264, 16, false); 2381 EndWriteAttribute(); 2382 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2383 BeginWriteAttribute("value", " value=\"", 217329, "\"", 217345, 1); 2384 WriteAttributeValue("", 217337, butikId, 217337, 8, false); 2385 EndWriteAttribute(); 2386 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsaddresse\""); 2387 BeginWriteAttribute("value", " value=\"", 217399, "\"", 217407, 0); 2388 EndWriteAttribute(); 2389 WriteLiteral(" class=\"js-aabenthus-address-input\" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2390 BeginWriteAttribute("value", " value=\"", 217496, "\"", 217504, 0); 2391 EndWriteAttribute(); 2392 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2393 BeginWriteAttribute("value", " value=\"", 217555, "\"", 217563, 0); 2394 EndWriteAttribute(); 2395 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2396 BeginWriteAttribute("value", " value=\"", 217613, "\"", 217621, 0); 2397 EndWriteAttribute(); 2398 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2399 BeginWriteAttribute("value", " value=\"", 217671, "\"", 217679, 0); 2400 EndWriteAttribute(); 2401 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsnr\""); 2402 BeginWriteAttribute("value", " value=\"", 217727, "\"", 217735, 0); 2403 EndWriteAttribute(); 2404 WriteLiteral(" class=\"js-sagsnr\" />\r\n <input type=\"hidden\" name=\"productId\""); 2405 BeginWriteAttribute("value", " value=\"", 217804, "\"", 217860, 1); 2406 WriteAttributeValue("", 217812, Dynamicweb.Context.Current.Request["ProductId"], 217812, 48, false); 2407 EndWriteAttribute(); 2408 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"aftaleid\""); 2409 BeginWriteAttribute("value", " value=\"", 217910, "\"", 217918, 0); 2410 EndWriteAttribute(); 2411 WriteLiteral(@" class=""js-aftaleid"" /> 2412 2413 <input type=""hidden"" name=""dateMail"" class=""js-aabenthus-date-input"" /> 2414 <input type=""hidden"" name=""timeMail"" class=""js-aabenthus-time-input"" /> 2415 <input type=""hidden"" name=""brokerImageMail"" class=""property-broker-image-input"" /> 2416 <input type=""hidden"" name=""employeeNameMail"" class=""js-maegler-employee-name-input"" /> 2417 <input type=""hidden"" name=""employeeTitleMail"" class=""js-maegler-employee-title-input"" /> 2418 <input type=""hidden"" name=""employeeMailMail"" class=""js-maegler-mail-input"" /> 2419 <input type=""hidden"" name=""employeeMobileMail"" class=""js-maegler-mobile-input"" /> 2420 <input type=""hidden"" name=""employeePhoneMail"" class=""js-maegler-phone-input"" /> 2421 2422 <input type=""hidden"" name=""brokerNameMail"" class=""js-broker-name-input"" /> 2423 <input type=""hidden"" name=""brokerAddressMail"" class=""js-broker-address-input"" /> 2424 <input type=""hidden"" name=""brokerPhoneMail"" class=""js-broker-phone-input"" /> 2425 </form> 2426 <di"); 2427 WriteLiteral("v id=\"tak-aabenthus\" style=\"display:none;\">\r\n <h2>"); 2428 Write(Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")); 2429 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>"); 2430 Write(Translate("Smarptage:Adresse", "Adresse:")); 2431 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>"); 2432 Write(Translate("Smarptage:Date", "Dato:")); 2433 WriteLiteral("</strong> <label class=\"js-aabenthus-date mb-0\"></label>\r\n\r\n </div>\r\n <div class=\"d-block mb-4\">\r\n <strong>"); 2434 Write(Translate("Smarptage:Time", "Tidspunkt:")); 2435 WriteLiteral("</strong> <label class=\"js-aabenthus-time mb-0\"></label>\r\n\r\n </div>\r\n\r\n <div class=\"js-employee\">\r\n <p>"); 2436 Write(String.Format(Translate("Smartpage:Aabenthus.Tak", "Vi glæder os til at vise dig boligen. Har du spørgsmål inden vi ses, kan du kontakte {0} fra RealMæglerne"), "<b class='js-aabenthus-employee-name'></b>")); 2437 WriteLiteral("</p>\r\n </div>\r\n <div class=\"js-not-employee\">\r\n <p>"); 2438 Write(Translate("Smartpage:Aabenthus.Tak.NoEmployee", "Vi glæder os til at vise dig boligen. Har du spørgsmål inden vi ses, er du velkommen til at kontakte os")); 2439 WriteLiteral("</p>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"js-employee\">\r\n <div class=\"col-12 js-maegler-img aabenthus-image\">\r\n <div class=\"property-broker-image\""); 2440 BeginWriteAttribute("style", " style=\"", 220310, "\"", 220318, 0); 2441 EndWriteAttribute(); 2442 WriteLiteral(@"></div> 2443 2444 </div> 2445 </div> 2446 <div class=""col-12""> 2447 <div class=""bg-base""> 2448 2449 <div class=""js-employee""> 2450 <h4 class=""js-maegler-employee-name""></h4> 2451 <div class=""icon-container""> 2452 <i class=""fas fa-envelope""></i> <span class=""js-maegler-mail""></span> 2453 </div> 2454 <div class=""icon-container""> 2455 <i class=""fas fa-phone""></i> <span class=""js-maegler-mobile""></span> 2456 </div> 2457 </div> 2458 2459 2460 <h4 class=""js-maegler-name""></h4> 2461 <div class=""icon-container""> 2462 <i class=""fas fa-map-marker-alt""></i> <span class=""js-maegler-address""></span> 2463 </div> 2464 <div class=""icon-container""> 2465 <i class=""fas fa-phone""></i> <span class=""js-maegler-phone""></span>"); 2466 WriteLiteral(@" 2467 2468 </div> 2469 <a class=""btn btn-border"" onclick=""panelKontaktmaeglerGuldkoeber()"">KONTAKT MÆGLER</a> 2470 </div> 2471 </div> 2472 </div> 2473 </div> 2474 </div> 2475 2476 <!-- KONTAKT GULDKØBER --> 2477 <div id=""panel-kontakt-guldkoeber"" class=""panel panel-form""> 2478 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2479 <b></b> 2480 </button> 2481 <h2>"); 2482 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")); 2483 WriteLiteral("</h2>\r\n <form id=\"form-kontaktmaegler\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>"); 2484 Write(Translate("form-navn", "Navn")); 2485 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2486 BeginWriteAttribute("placeholder", " placeholder=\'", 222103, "\'", 222148, 1); 2487 WriteAttributeValue("", 222117, Translate("form-navn", "Navn"), 222117, 31, false); 2488 EndWriteAttribute(); 2489 BeginWriteAttribute("value", " value=\'", 222149, "\'", 222188, 1); 2490 WriteAttributeValue("", 222157, UserContext.Current.User?.Name, 222157, 31, false); 2491 EndWriteAttribute(); 2492 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2493 Write(Translate("form-email", "E-mail")); 2494 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\""); 2495 BeginWriteAttribute("placeholder", " placeholder=\'", 222452, "\'", 222500, 1); 2496 WriteAttributeValue("", 222466, Translate("form-email", "E-mail"), 222466, 34, false); 2497 EndWriteAttribute(); 2498 BeginWriteAttribute("value", " value=\'", 222501, "\'", 222541, 1); 2499 WriteAttributeValue("", 222509, UserContext.Current.User?.Email, 222509, 32, false); 2500 EndWriteAttribute(); 2501 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2502 Write(Translate("form-mobile", "Mobil nr.")); 2503 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2504 BeginWriteAttribute("placeholder", " placeholder=\'", 222839, "\'", 222924, 1); 2505 WriteAttributeValue("", 222853, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 222853, 71, false); 2506 EndWriteAttribute(); 2507 BeginWriteAttribute("value", " value=\'", 222925, "\'", 222965, 1); 2508 WriteAttributeValue("", 222933, UserContext.Current.User?.Phone, 222933, 32, false); 2509 EndWriteAttribute(); 2510 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2511 Write(Translate("form-telephone", "Telefon nr.")); 2512 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2513 BeginWriteAttribute("placeholder", " placeholder=\'", 223235, "\'", 223319, 1); 2514 WriteAttributeValue("", 223249, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 223249, 70, false); 2515 EndWriteAttribute(); 2516 BeginWriteAttribute("value", " value=\'", 223320, "\'", 223360, 1); 2517 WriteAttributeValue("", 223328, UserContext.Current.User?.Phone, 223328, 32, false); 2518 EndWriteAttribute(); 2519 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2520 Write(Translate("form-zip", "Post nr")); 2521 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2522 BeginWriteAttribute("placeholder", " placeholder=\'", 223676, "\'", 223754, 1); 2523 WriteAttributeValue("", 223690, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 223690, 64, false); 2524 EndWriteAttribute(); 2525 BeginWriteAttribute("value", " value=\"", 223755, "\"", 223771, 1); 2526 WriteAttributeValue("", 223763, userZip, 223763, 8, false); 2527 EndWriteAttribute(); 2528 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2529 Write(Translate("form-city", "By")); 2530 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-city\" type=\"text\" readonly />\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group overflow-unset\">\r\n <label><strong>"); 2531 Write(Translate("form-adresse", "Adresse")); 2532 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2533 BeginWriteAttribute("placeholder", " placeholder=\'", 224327, "\'", 224417, 1); 2534 WriteAttributeValue("", 224341, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 224341, 76, false); 2535 EndWriteAttribute(); 2536 BeginWriteAttribute("value", " value=\"", 224418, "\"", 224438, 1); 2537 WriteAttributeValue("", 224426, userAddress, 224426, 12, false); 2538 EndWriteAttribute(); 2539 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2540 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2541 WriteLiteral("</label>\r\n </div>\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\""); 2542 BeginWriteAttribute("placeholder", " placeholder=\'", 224764, "\'", 224842, 1); 2543 WriteAttributeValue("", 224778, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 224778, 64, false); 2544 EndWriteAttribute(); 2545 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"checkbox\">\r\n <label>\r\n <input type=\"checkbox\" name=\"kontaktmigok\" required />\r\n\r\n <span>"); 2546 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2547 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button type=\"submit\" class=\"btn btn-green btn-block\">"); 2548 Write(Translate("KontaktMægler", "Kontakt Mægler")); 2549 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2550 Write(privacyPolicyText); 2551 WriteLiteral(" <a"); 2552 BeginWriteAttribute("href", " href=\"", 225628, "\"", 225652, 2); 2553 WriteAttributeValue("", 225635, "mailto:", 225635, 7, true); 2554 WriteAttributeValue("", 225642, termsMail, 225642, 10, false); 2555 EndWriteAttribute(); 2556 WriteLiteral(">"); 2557 Write(termsMail); 2558 WriteLiteral("</a>.\r\n Læs mere på <a"); 2559 BeginWriteAttribute("href", " href=\"", 225697, "\"", 225731, 1); 2560 WriteAttributeValue("", 225704, settings_Persondatapolitik, 225704, 27, false); 2561 EndWriteAttribute(); 2562 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"gk\" />\r\n <input type=\"hidden\" name=\"origin\""); 2563 BeginWriteAttribute("value", " value=\"", 225874, "\"", 225882, 0); 2564 EndWriteAttribute(); 2565 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2566 BeginWriteAttribute("value", " value=\"", 225932, "\"", 225947, 1); 2567 WriteAttributeValue("", 225940, userID, 225940, 7, false); 2568 EndWriteAttribute(); 2569 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2570 BeginWriteAttribute("value", " value=\"", 225995, "\"", 226019, 1); 2571 WriteAttributeValue("", 226003, Pageview.AreaID, 226003, 16, false); 2572 EndWriteAttribute(); 2573 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2574 BeginWriteAttribute("value", " value=\"", 226068, "\"", 226084, 1); 2575 WriteAttributeValue("", 226076, butikId, 226076, 8, false); 2576 EndWriteAttribute(); 2577 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2578 BeginWriteAttribute("value", " value=\"", 226138, "\"", 226146, 0); 2579 EndWriteAttribute(); 2580 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2581 BeginWriteAttribute("value", " value=\"", 226197, "\"", 226205, 0); 2582 EndWriteAttribute(); 2583 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2584 BeginWriteAttribute("value", " value=\"", 226255, "\"", 226263, 0); 2585 EndWriteAttribute(); 2586 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2587 BeginWriteAttribute("value", " value=\"", 226313, "\"", 226321, 0); 2588 EndWriteAttribute(); 2589 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-maegler-guldkoeber\" style=\"display:none;\">\r\n <h2>"); 2590 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2591 WriteLiteral("</h2>\r\n <p>"); 2592 Write(Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")); 2593 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2594 BeginWriteAttribute("src", " src=\"", 226683, "\"", 226689, 0); 2595 EndWriteAttribute(); 2596 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2597 </div> 2598 <div class=""col-6""> 2599 <p class=""js-maegler-name""></p> 2600 <p class=""js-maegler-address""></p> 2601 <p class=""js-maegler-phone""></p> 2602 <p class=""js-maegler-mail""></p> 2603 </div> 2604 </div> 2605 <p>"); 2606 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2607 WriteLiteral(@"</p> 2608 </div> 2609 </div> 2610 2611 <!-- BESTIL SALGSVURDERING --> 2612 <div id=""panel-salgsvurdering"" class=""panel panel-form""> 2613 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2614 <b></b> 2615 </button> 2616 2617 <form id=""bestil-salgsvurdering"" class=""buyer-advisor-form js-buyer-advisor-form"" method=""POST"" action=""/InboxHandler""> 2618 <h2 class=""js-buyer-advisor-header"">"); 2619 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")); 2620 WriteLiteral("</h2>\r\n <p>"); 2621 Write(Translate("form-salgsvurdering-beskrivelse", "")); 2622 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2623 Write(Translate("form-navn", "Navn")); 2624 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2625 BeginWriteAttribute("placeholder", " placeholder=\'", 227846, "\'", 227935, 1); 2626 WriteAttributeValue("", 227860, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 227860, 75, false); 2627 EndWriteAttribute(); 2628 BeginWriteAttribute("value", " value=\'", 227936, "\'", 227975, 1); 2629 WriteAttributeValue("", 227944, UserContext.Current.User?.Name, 227944, 31, false); 2630 EndWriteAttribute(); 2631 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2632 Write(Translate("form-email", "E-mail")); 2633 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\""); 2634 BeginWriteAttribute("placeholder", " placeholder=\'", 228239, "\'", 228331, 1); 2635 WriteAttributeValue("", 228253, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 228253, 78, false); 2636 EndWriteAttribute(); 2637 BeginWriteAttribute("value", " value=\'", 228332, "\'", 228372, 1); 2638 WriteAttributeValue("", 228340, UserContext.Current.User?.Email, 228340, 32, false); 2639 EndWriteAttribute(); 2640 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2641 Write(Translate("form-mobile", "Mobil nr.")); 2642 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2643 BeginWriteAttribute("placeholder", " placeholder=\'", 228670, "\'", 228762, 1); 2644 WriteAttributeValue("", 228684, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 228684, 78, false); 2645 EndWriteAttribute(); 2646 BeginWriteAttribute("value", " value=\'", 228763, "\'", 228803, 1); 2647 WriteAttributeValue("", 228771, UserContext.Current.User?.Phone, 228771, 32, false); 2648 EndWriteAttribute(); 2649 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2650 Write(Translate("form-telephone", "Telefon nr.")); 2651 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2652 BeginWriteAttribute("placeholder", " placeholder=\'", 229073, "\'", 229164, 1); 2653 WriteAttributeValue("", 229087, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 229087, 77, false); 2654 EndWriteAttribute(); 2655 BeginWriteAttribute("value", " value=\'", 229165, "\'", 229205, 1); 2656 WriteAttributeValue("", 229173, UserContext.Current.User?.Phone, 229173, 32, false); 2657 EndWriteAttribute(); 2658 WriteLiteral(" />\r\n </div>\r\n\r\n </div>\r\n\r\n <h3>"); 2659 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2660 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2661 Write(Translate("form-zip", "Post nr")); 2662 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2663 BeginWriteAttribute("placeholder", " placeholder=\'", 229625, "\'", 229703, 1); 2664 WriteAttributeValue("", 229639, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 229639, 64, false); 2665 EndWriteAttribute(); 2666 BeginWriteAttribute("value", " value=\"", 229704, "\"", 229720, 1); 2667 WriteAttributeValue("", 229712, userZip, 229712, 8, false); 2668 EndWriteAttribute(); 2669 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2670 Write(Translate("form-city", "By")); 2671 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-city\" type=\"text\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"form-group overflow-unset\">\r\n <label><strong>"); 2672 Write(Translate("form-adresse", "Adresse")); 2673 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2674 BeginWriteAttribute("placeholder", " placeholder=\'", 230274, "\'", 230364, 1); 2675 WriteAttributeValue("", 230288, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 230288, 76, false); 2676 EndWriteAttribute(); 2677 BeginWriteAttribute("value", " value=\"", 230365, "\"", 230385, 1); 2678 WriteAttributeValue("", 230373, userAddress, 230373, 12, false); 2679 EndWriteAttribute(); 2680 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2681 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2682 WriteLiteral(@"</label> 2683 </div> 2684 2685 <button class=""form-control text-left js-collapse-focus"" type=""button"" data-toggle=""collapse"" data-target=""#salgsvurdering-collapse"" aria-expanded=""false"" aria-controls=""salgsvurdering-collapse""> 2686 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2687 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2688 WriteLiteral("</strong>\r\n </button>\r\n <div class=\"collapse\" id=\"salgsvurdering-collapse\">\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\""); 2689 BeginWriteAttribute("placeholder", " placeholder=\'", 231155, "\'", 231233, 1); 2690 WriteAttributeValue("", 231169, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 231169, 64, false); 2691 EndWriteAttribute(); 2692 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>"); 2693 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")); 2694 WriteLiteral("</h3>\r\n <div class=\"col-12\">\r\n <div class=\"choose-broker row align-items-center active\">\r\n <div class=\"col-2\">\r\n <input class=\"js-broker-radio\" type=\"radio\""); 2695 BeginWriteAttribute("id", " id=\"", 231679, "\"", 231684, 0); 2696 EndWriteAttribute(); 2697 WriteLiteral(" name=\"choose-broker\""); 2698 BeginWriteAttribute("value", " value=\"", 231706, "\"", 231714, 0); 2699 EndWriteAttribute(); 2700 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\""); 2701 BeginWriteAttribute("for", " for=\"", 231780, "\"", 231786, 0); 2702 EndWriteAttribute(); 2703 WriteLiteral("></label><div class=\"check\">\r\n <div class=\"inside\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <img"); 2704 BeginWriteAttribute("src", " src=\"", 232032, "\"", 232038, 0); 2705 EndWriteAttribute(); 2706 WriteLiteral(@" class=""img-fluid js-broker-image""> 2707 </div> 2708 <div class=""col-6""> 2709 <span class=""d-block""> 2710 <strong class=""js-choose-broker-name""></strong> 2711 </span> 2712 <span class=""js-choose-broker-address""></span> 2713 <input type=""hidden"" class=""js-choose-broker-phone"""); 2714 BeginWriteAttribute("value", " value=\"", 232450, "\"", 232458, 0); 2715 EndWriteAttribute(); 2716 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\""); 2717 BeginWriteAttribute("value", " value=\"", 232539, "\"", 232547, 0); 2718 EndWriteAttribute(); 2719 WriteLiteral(" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"salgsvurdering-broker\">\r\n <h3 class=\"js-brokerh3\">"); 2720 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")); 2721 WriteLiteral(@"</h3> 2722 <div class=""js-choose-broker col-12""> 2723 </div> 2724 2725 </div> 2726 2727 <div class=""form-group mt-4""> 2728 <div class=""checkbox""> 2729 <label> 2730 <input type=""checkbox"" name=""kontaktmigok"" required /> 2731 2732 <span class=""consent-checkbox"">"); 2733 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2734 WriteLiteral(@"</span> 2735 2736 </label> 2737 </div> 2738 </div> 2739 <div class=""form-group""> 2740 <div class=""row""> 2741 <div class=""col-12""> 2742 <button type=""submit"" class=""btn btn-green btn-block js-buyer-advisor-button"">"); 2743 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")); 2744 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2745 Write(privacyPolicyText); 2746 WriteLiteral(" <a"); 2747 BeginWriteAttribute("href", " href=\"", 233707, "\"", 233731, 2); 2748 WriteAttributeValue("", 233714, "mailto:", 233714, 7, true); 2749 WriteAttributeValue("", 233721, termsMail, 233721, 10, false); 2750 EndWriteAttribute(); 2751 WriteLiteral(">"); 2752 Write(termsMail); 2753 WriteLiteral("</a>.\r\n Læs mere på <a"); 2754 BeginWriteAttribute("href", " href=\"", 233776, "\"", 233810, 1); 2755 WriteAttributeValue("", 233783, settings_Persondatapolitik, 233783, 27, false); 2756 EndWriteAttribute(); 2757 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"bsv\" />\r\n <input type=\"hidden\" name=\"origin\" class=\"js-salgsvurdering-origin\""); 2758 BeginWriteAttribute("value", " value=\"", 233987, "\"", 233995, 0); 2759 EndWriteAttribute(); 2760 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2761 BeginWriteAttribute("value", " value=\"", 234045, "\"", 234060, 1); 2762 WriteAttributeValue("", 234053, userID, 234053, 7, false); 2763 EndWriteAttribute(); 2764 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2765 BeginWriteAttribute("value", " value=\"", 234108, "\"", 234132, 1); 2766 WriteAttributeValue("", 234116, Pageview.AreaID, 234116, 16, false); 2767 EndWriteAttribute(); 2768 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning\" name=\"boligvisning\""); 2769 BeginWriteAttribute("value", " value=\"", 234204, "\"", 234212, 0); 2770 EndWriteAttribute(); 2771 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-butikid\" name=\"butikId\""); 2772 BeginWriteAttribute("value", " value=\"", 234295, "\"", 234303, 0); 2773 EndWriteAttribute(); 2774 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-sagsnr\" name=\"sagsnr\""); 2775 BeginWriteAttribute("value", " value=\"", 234384, "\"", 234392, 0); 2776 EndWriteAttribute(); 2777 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\""); 2778 BeginWriteAttribute("value", " value=\"", 234443, "\"", 234499, 1); 2779 WriteAttributeValue("", 234451, Dynamicweb.Context.Current.Request["ProductId"], 234451, 48, false); 2780 EndWriteAttribute(); 2781 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2782 BeginWriteAttribute("value", " value=\"", 234553, "\"", 234561, 0); 2783 EndWriteAttribute(); 2784 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2785 BeginWriteAttribute("value", " value=\"", 234612, "\"", 234620, 0); 2786 EndWriteAttribute(); 2787 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2788 BeginWriteAttribute("value", " value=\"", 234670, "\"", 234678, 0); 2789 EndWriteAttribute(); 2790 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2791 BeginWriteAttribute("value", " value=\"", 234728, "\"", 234736, 0); 2792 EndWriteAttribute(); 2793 WriteLiteral(" />\r\n <input class=\"js-value-check\" type=\"hidden\" name=\"valueCheck\""); 2794 BeginWriteAttribute("value", " value=\"", 234811, "\"", 234819, 0); 2795 EndWriteAttribute(); 2796 WriteLiteral(" />\r\n <input class=\"js-green-appraisal\" type=\"hidden\" name=\"greenAppraisal\""); 2797 BeginWriteAttribute("value", " value=\"", 234902, "\"", 234910, 0); 2798 EndWriteAttribute(); 2799 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>"); 2800 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2801 WriteLiteral("</h2>\r\n <p>"); 2802 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")); 2803 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2804 BeginWriteAttribute("src", " src=\"", 235272, "\"", 235278, 0); 2805 EndWriteAttribute(); 2806 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2807 </div> 2808 <div class=""col-6""> 2809 <p class=""js-maegler-name""></p> 2810 <p class=""js-maegler-address""></p> 2811 <p class=""js-maegler-phone""></p> 2812 <p class=""js-maegler-mail""></p> 2813 </div> 2814 </div> 2815 <p>"); 2816 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2817 WriteLiteral(@"</p> 2818 </div> 2819 </div> 2820 2821 <!-- BESTIL SALGSVURDERING GULDKØBER --> 2822 <div id=""panel-salgsvurdering-guldkoeber"" class=""panel panel-form""> 2823 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2824 <b></b> 2825 </button> 2826 2827 <form id=""bestil-salgsvurdering-guldkoeber"" method=""POST"" action=""/InboxHandler""> 2828 <h2>"); 2829 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")); 2830 WriteLiteral("</h2>\r\n <p>"); 2831 Write(Translate("form-salgsvurdering-beskrivelse", "")); 2832 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2833 Write(Translate("form-navn", "Navn")); 2834 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2835 BeginWriteAttribute("placeholder", " placeholder=\'", 236386, "\'", 236475, 1); 2836 WriteAttributeValue("", 236400, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 236400, 75, false); 2837 EndWriteAttribute(); 2838 BeginWriteAttribute("value", " value=\'", 236476, "\'", 236515, 1); 2839 WriteAttributeValue("", 236484, UserContext.Current.User?.Name, 236484, 31, false); 2840 EndWriteAttribute(); 2841 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2842 Write(Translate("form-email", "E-mail")); 2843 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\""); 2844 BeginWriteAttribute("placeholder", " placeholder=\'", 236779, "\'", 236871, 1); 2845 WriteAttributeValue("", 236793, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 236793, 78, false); 2846 EndWriteAttribute(); 2847 BeginWriteAttribute("value", " value=\'", 236872, "\'", 236912, 1); 2848 WriteAttributeValue("", 236880, UserContext.Current.User?.Email, 236880, 32, false); 2849 EndWriteAttribute(); 2850 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2851 Write(Translate("form-telephone", "Telefon nr.")); 2852 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2853 BeginWriteAttribute("placeholder", " placeholder=\'", 237221, "\'", 237312, 1); 2854 WriteAttributeValue("", 237235, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 237235, 77, false); 2855 EndWriteAttribute(); 2856 BeginWriteAttribute("value", " value=\'", 237313, "\'", 237353, 1); 2857 WriteAttributeValue("", 237321, UserContext.Current.User?.Phone, 237321, 32, false); 2858 EndWriteAttribute(); 2859 WriteLiteral(" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2860 Write(Translate("form-mobile", "Mobil nr.")); 2861 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2862 BeginWriteAttribute("placeholder", " placeholder=\'", 237603, "\'", 237695, 1); 2863 WriteAttributeValue("", 237617, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 237617, 78, false); 2864 EndWriteAttribute(); 2865 BeginWriteAttribute("value", " value=\'", 237696, "\'", 237736, 1); 2866 WriteAttributeValue("", 237704, UserContext.Current.User?.Phone, 237704, 32, false); 2867 EndWriteAttribute(); 2868 WriteLiteral(" required />\r\n </div>\r\n </div>\r\n\r\n <h3>"); 2869 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2870 WriteLiteral("</h3>\r\n\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2871 Write(Translate("form-zip", "Post nr")); 2872 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2873 BeginWriteAttribute("placeholder", " placeholder=\'", 238165, "\'", 238243, 1); 2874 WriteAttributeValue("", 238179, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 238179, 64, false); 2875 EndWriteAttribute(); 2876 BeginWriteAttribute("value", " value=\"", 238244, "\"", 238260, 1); 2877 WriteAttributeValue("", 238252, userZip, 238252, 8, false); 2878 EndWriteAttribute(); 2879 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2880 Write(Translate("form-city", "By")); 2881 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-city\" type=\"text\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"form-group overflow-unset\">\r\n <label><strong>"); 2882 Write(Translate("form-adresse", "Adresse")); 2883 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2884 BeginWriteAttribute("placeholder", " placeholder=\'", 238814, "\'", 238904, 1); 2885 WriteAttributeValue("", 238828, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 238828, 76, false); 2886 EndWriteAttribute(); 2887 BeginWriteAttribute("value", " value=\"", 238905, "\"", 238925, 1); 2888 WriteAttributeValue("", 238913, userAddress, 238913, 12, false); 2889 EndWriteAttribute(); 2890 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2891 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2892 WriteLiteral(@"</label> 2893 </div> 2894 2895 <button class=""form-control text-left js-collapse-focus"" type=""button"" data-toggle=""collapse"" data-target=""#salgsvurdering-collapse"" aria-expanded=""false"" aria-controls=""salgsvurdering-collapse""> 2896 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2897 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2898 WriteLiteral("</strong>\r\n </button>\r\n <div class=\"collapse\" id=\"salgsvurdering-collapse\">\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\""); 2899 BeginWriteAttribute("placeholder", " placeholder=\'", 239695, "\'", 239773, 1); 2900 WriteAttributeValue("", 239709, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 239709, 64, false); 2901 EndWriteAttribute(); 2902 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>"); 2903 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")); 2904 WriteLiteral("</h3>\r\n <div class=\"col-12\">\r\n <div class=\"choose-broker row align-items-center active\">\r\n <div class=\"col-2\">\r\n <input class=\"js-broker-radio\" type=\"radio\""); 2905 BeginWriteAttribute("id", " id=\"", 240217, "\"", 240222, 0); 2906 EndWriteAttribute(); 2907 WriteLiteral(" name=\"choose-broker-gk\""); 2908 BeginWriteAttribute("value", " value=\"", 240247, "\"", 240255, 0); 2909 EndWriteAttribute(); 2910 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\""); 2911 BeginWriteAttribute("for", " for=\"", 240321, "\"", 240327, 0); 2912 EndWriteAttribute(); 2913 WriteLiteral("></label><div class=\"check\">\r\n <div class=\"inside\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <img"); 2914 BeginWriteAttribute("src", " src=\"", 240573, "\"", 240579, 0); 2915 EndWriteAttribute(); 2916 WriteLiteral(@" class=""img-fluid js-broker-image""> 2917 </div> 2918 <div class=""col-6""> 2919 <span class=""d-block""> 2920 <strong class=""js-choose-broker-name""></strong> 2921 </span> 2922 <span class=""js-choose-broker-address""></span> 2923 <input type=""hidden"" class=""js-choose-broker-phone"""); 2924 BeginWriteAttribute("value", " value=\"", 240991, "\"", 240999, 0); 2925 EndWriteAttribute(); 2926 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\""); 2927 BeginWriteAttribute("value", " value=\"", 241080, "\"", 241088, 0); 2928 EndWriteAttribute(); 2929 WriteLiteral(" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"salgsvurdering-broker\">\r\n <h3 class=\"js-brokerh3\">"); 2930 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")); 2931 WriteLiteral(@"</h3> 2932 <div class=""js-choose-broker col-12""> 2933 </div> 2934 2935 </div> 2936 2937 2938 <div class=""form-group""> 2939 <div class=""row""> 2940 <div class=""col-12""> 2941 <button type=""submit"" class=""btn btn-green btn-block"">"); 2942 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")); 2943 WriteLiteral(@"</button> 2944 </div> 2945 </div> 2946 </div> 2947 <div class=""form-group""> 2948 <div class=""checkbox""> 2949 <label> 2950 <input type=""checkbox"" name=""kontaktmigok"" required /> 2951 2952 <span>"); 2953 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2954 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2955 Write(privacyPolicyText); 2956 WriteLiteral(" <a"); 2957 BeginWriteAttribute("href", " href=\"", 242196, "\"", 242220, 2); 2958 WriteAttributeValue("", 242203, "mailto:", 242203, 7, true); 2959 WriteAttributeValue("", 242210, termsMail, 242210, 10, false); 2960 EndWriteAttribute(); 2961 WriteLiteral(">"); 2962 Write(termsMail); 2963 WriteLiteral("</a>.\r\n Læs mere på <a"); 2964 BeginWriteAttribute("href", " href=\"", 242265, "\"", 242299, 1); 2965 WriteAttributeValue("", 242272, settings_Persondatapolitik, 242272, 27, false); 2966 EndWriteAttribute(); 2967 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"bsg\" />\r\n <input type=\"hidden\" name=\"origin\" class=\"js-salgsvurdering-origin\""); 2968 BeginWriteAttribute("value", " value=\"", 242476, "\"", 242484, 0); 2969 EndWriteAttribute(); 2970 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2971 BeginWriteAttribute("value", " value=\"", 242534, "\"", 242549, 1); 2972 WriteAttributeValue("", 242542, userID, 242542, 7, false); 2973 EndWriteAttribute(); 2974 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2975 BeginWriteAttribute("value", " value=\"", 242597, "\"", 242621, 1); 2976 WriteAttributeValue("", 242605, Pageview.AreaID, 242605, 16, false); 2977 EndWriteAttribute(); 2978 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning-gk\" name=\"boligvisning\""); 2979 BeginWriteAttribute("value", " value=\"", 242696, "\"", 242704, 0); 2980 EndWriteAttribute(); 2981 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-butikid\" name=\"butikId\""); 2982 BeginWriteAttribute("value", " value=\"", 242790, "\"", 242798, 0); 2983 EndWriteAttribute(); 2984 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-sagsnr\" name=\"sagsnr\""); 2985 BeginWriteAttribute("value", " value=\"", 242882, "\"", 242890, 0); 2986 EndWriteAttribute(); 2987 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\""); 2988 BeginWriteAttribute("value", " value=\"", 242941, "\"", 242997, 1); 2989 WriteAttributeValue("", 242949, Dynamicweb.Context.Current.Request["ProductId"], 242949, 48, false); 2990 EndWriteAttribute(); 2991 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2992 BeginWriteAttribute("value", " value=\"", 243051, "\"", 243059, 0); 2993 EndWriteAttribute(); 2994 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2995 BeginWriteAttribute("value", " value=\"", 243110, "\"", 243118, 0); 2996 EndWriteAttribute(); 2997 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2998 BeginWriteAttribute("value", " value=\"", 243168, "\"", 243176, 0); 2999 EndWriteAttribute(); 3000 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 3001 BeginWriteAttribute("value", " value=\"", 243226, "\"", 243234, 0); 3002 EndWriteAttribute(); 3003 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>"); 3004 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 3005 WriteLiteral("</h2>\r\n <p>"); 3006 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")); 3007 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 3008 BeginWriteAttribute("src", " src=\"", 243596, "\"", 243602, 0); 3009 EndWriteAttribute(); 3010 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 3011 </div> 3012 <div class=""col-6""> 3013 <p class=""js-maegler-name""></p> 3014 <p class=""js-maegler-address""></p> 3015 <p class=""js-maegler-phone""></p> 3016 <p class=""js-maegler-mail""></p> 3017 </div> 3018 </div> 3019 <p>"); 3020 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 3021 WriteLiteral("</p>\r\n </div>\r\n</div>\r\n\r\n\r\n <div class=\"overlay-wrapper\"></div>\r\n <div class=\"dropdown-overlay\"></div>\r\n <div class=\"loader-inner ball-pulse\"></div>\r\n\r\n"); 3022 3023 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js")); 3024 WriteLiteral(" <script type=\"text/javascript\""); 3025 BeginWriteAttribute("src", " src=\'", 244403, "\'", 244507, 3); 3026 WriteAttributeValue("", 244409, TemplateUrl, 244409, 14, false); 3027 WriteAttributeValue("", 244423, "assets/webpack/js/3rdparty/viamapstrap.js?", 244423, 42, true); 3028 WriteAttributeValue("", 244465, viamapstrapFileInfo.LastWriteTime.Ticks, 244465, 42, false); 3029 EndWriteAttribute(); 3030 WriteLiteral(" async></script>\r\n"); 3031 3032 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js")); 3033 WriteLiteral(" <script type=\"text/javascript\""); 3034 BeginWriteAttribute("src", " src=\'", 244710, "\'", 244797, 3); 3035 WriteAttributeValue("", 244716, TemplateUrl, 244716, 14, false); 3036 WriteAttributeValue("", 244730, "assets/dist/bundle.app.min.js?", 244730, 30, true); 3037 WriteAttributeValue("", 244760, bundleFileInfo.LastWriteTime.Ticks, 244760, 37, false); 3038 EndWriteAttribute(); 3039 WriteLiteral(" async></script>\r\n"); 3040 WriteLiteral("\r\n "); 3041 Write(RenderSnippet("JavaScriptBottom")); 3042 WriteLiteral("\r\n\r\n"); 3043 if (Context.Current.Request.QueryString["ShowLogin"] == "true") 3044 { 3045 WriteLiteral(" <input class=\"js-showLogin\" value=\"true\" />\r\n"); 3046 } 3047 WriteLiteral("\r\n"); 3048 if (!string.IsNullOrEmpty(settings_ConduzeId)) 3049 { 3050 WriteLiteral(" <script type=\"text/javascript\" id=\"conduze-sdk\""); 3051 BeginWriteAttribute("src", " src=\"", 245121, "\"", 245182, 3); 3052 WriteAttributeValue("", 245127, "https://cdn.conduze.com/", 245127, 24, true); 3053 WriteAttributeValue("", 245151, settings_ConduzeId, 245151, 19, false); 3054 WriteAttributeValue("", 245170, "/tracking.js", 245170, 12, true); 3055 EndWriteAttribute(); 3056 WriteLiteral(" async></script>\r\n"); 3057 } 3058 WriteLiteral("\r\n"); 3059 if (!string.IsNullOrEmpty(settings_Weply)) 3060 { 3061 WriteLiteral(" <script"); 3062 BeginWriteAttribute("src", " src=\"", 245281, "\"", 245332, 2); 3063 WriteAttributeValue("", 245287, "https://app.weply.chat/widget/", 245287, 30, true); 3064 WriteAttributeValue("", 245317, settings_Weply, 245317, 15, false); 3065 EndWriteAttribute(); 3066 WriteLiteral(" async></script>\r\n"); 3067 } 3068 WriteLiteral("\r\n</body>\r\n</html>\r\n\r\n"); 3069 } 3070 #pragma warning restore 1998 3071 3072 void RenderErhvervsTypeCheckboxes(string productGroupFilter) 3073 { 3074 WriteLiteral(@" <div class=""col-xs-6 col-md-4""> 3075 <div class=""checkbox""> 3076 <label> 3077 <input type=""checkbox"" name=""propertytype"" value=""bolig/erhverv, kombineret erhverv og bolig, byejendom (kontor, butik, beboelse)"" /> 3078 <span>Bolig/erhverv</span> 3079 </label> 3080 </div> 3081 <div class=""checkbox""> 3082 <label> 3083 <input type=""checkbox"" name=""propertytype"" value=""erhvervsgrund"" /> 3084 <span>Erhvervsgrund</span> 3085 </label> 3086 </div> 3087 <div class=""checkbox""> 3088 <label> 3089 <input type=""checkbox"" name=""propertytype"" value=""boligudlejning"" /> 3090 <span>Boligudlejningsejendom</span> 3091 </label> 3092 </div> 3093 <div class=""checkbox""> 3094 <label> 3095 <input type=""checkbox"" name=""propertytype"" value=""kontor, klinik, kontorhotel, showroom, under"); 3096 WriteLiteral(@"visningslokaler"" /> 3097 <span>Kontor</span> 3098 </label> 3099 </div> 3100 </div> 3101 <div class=""col-xs-6 col-md-4""> 3102 <div class=""checkbox""> 3103 <label> 3104 <input type=""checkbox"" name=""propertytype"" value=""butik / detail, butik / detailhandel"" /> 3105 <span>Butik/detailhandel</span> 3106 </label> 3107 </div> 3108 <div class=""checkbox""> 3109 <label> 3110 <input type=""checkbox"" name=""propertytype"" value=""industri / logistik, håndværk, industri, kontor / lager, logistik"" /> 3111 <span>Produktion/lager</span> 3112 </label> 3113 </div> 3114 <div class=""checkbox""> 3115 <label> 3116 <input type=""checkbox"" name=""propertytype"" value=""hotel - kursusejendom, restaurant"" /> 3117 <span>Hotel og restaurant</span> 3118 </label> 3119 </div> 3120 <div c"); 3121 WriteLiteral(@"lass=""checkbox""> 3122 <label> 3123 <input type=""checkbox"" name=""propertytype"" value=""projekt ejendom"" /> 3124 <span>Projektejendom</span> 3125 </label> 3126 </div> 3127 </div> 3128 <div class=""col-xs-6 col-md-4""> 3129 <div class=""checkbox""> 3130 <label> 3131 <input type=""checkbox"" name=""propertytype"" value=""andet"" /> 3132 <span>Andet</span> 3133 </label> 3134 </div> 3135 </div> 3136 "); 3137 WriteLiteral(" <input type=\"hidden\" name=\"propertycategory\" value=\"erhverv, udlejning\" />\r\n <input type=\"hidden\" name=\"filtrering\""); 3138 BeginWriteAttribute("value", " value=\"", 3445, "\"", 3472, 1); 3139 WriteAttributeValue("", 3453, productGroupFilter, 3453, 19, false); 3140 EndWriteAttribute(); 3141 WriteLiteral(" />\r\n"); 3142 } 3143 void RenderBoligtypeCheckboxes() 3144 { 3145 WriteLiteral(@" <div class=""col-6 col-md-4""> 3146 <div class=""checkbox""> 3147 <label> 3148 <input type=""checkbox"" name=""propertytype"" value=""villa"" /> 3149 <span>Villa</span> 3150 </label> 3151 </div> 3152 <div class=""checkbox""> 3153 <label> 3154 <input type=""checkbox"" name=""propertytype"" value=""rækkehus"" /> 3155 <span>Rækkehus</span> 3156 </label> 3157 </div> 3158 <div class=""checkbox""> 3159 <label> 3160 <input type=""checkbox"" name=""propertytype"" value=""villalejlighed"" /> 3161 <span>Villalejlighed</span> 3162 </label> 3163 </div> 3164 <div class=""checkbox""> 3165 <label> 3166 <input type=""checkbox"" name=""propertytype"" value=""andelsbolig"" /> 3167 <span>Andelsbolig</span> 3168 </label> 3169 </div> 3170 </div> 3171 <div class=""co"); 3172 WriteLiteral(@"l-6 col-md-4""> 3173 <div class=""checkbox""> 3174 <label> 3175 <input type=""checkbox"" name=""propertytype"" value=""fritidshus, fritidsbolig"" /> 3176 <span>Fritidsbolig</span> 3177 </label> 3178 </div> 3179 <div class=""checkbox""> 3180 <label> 3181 <input type=""checkbox"" name=""propertytype"" value=""ejerlejlighed"" class=""specialOption"" data-disable-slider=""#grundareal"" data-disable-slider-ranges=""#grundarealmin,#grundarealmax"" /> 3182 <span>Ejerlejlighed</span> 3183 </label> 3184 </div> 3185 <div class=""checkbox""> 3186 <label> 3187 <input type=""checkbox"" name=""propertytype"" value=""helårsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" /> 3188 <span>Helårsgrund</span> 3189 </label> 3190 </div> 3191 <div "); 3192 WriteLiteral(@"class=""checkbox""> 3193 <label> 3194 <input type=""checkbox"" name=""propertytype"" value=""fritidsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" /> 3195 <span>Fritidsgrund</span> 3196 </label> 3197 </div> 3198 </div> 3199 <div class=""col-6 col-md-4""> 3200 <div class=""checkbox""> 3201 <label> 3202 <input type=""checkbox"" name=""propertytype"" value=""landejendom, lystejendom"" class=""specialOption"" data-disable-checkbox=""true"" /> 3203 <span>Landejendom</span> 3204 </label> 3205 </div> 3206 <div class=""checkbox""> 3207 <label> 3208 <input type=""checkbox"" name=""propertytype"" value=""erhverv"" class=""specialOption"" data-disable-checkbox=""true"" data-disable-slider=""#roomsslider"" data-disable-slider-ranges=""#roomsmin"" /> 3209 <span>Erhverv<"); 3210 WriteLiteral("/span>\r\n </label>\r\n </div>\r\n </div>\r\n"); 3211 } 3212 3213 void RenderChecked(string queryString) 3214 { 3215 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString) 3216 { 3217 Write("checked"); 3218 3219 } 3220 } 3221 3222 void RenderBoligtypeCheckboxesDropdown() 3223 { 3224 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){ 3225 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" }, 3226 { "Andelsbolig", "andelsbolig" } 3227 }; 3228 foreach (KeyValuePair<string, string> type in propertyTypes) 3229 { 3230 bool ischecked = false; 3231 string[] propertytypeSplit = new string[0]; 3232 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"])) 3233 { 3234 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(','); 3235 } 3236 foreach (var propertytypeParams in propertytypeSplit) 3237 { 3238 if (propertytypeParams == type.Value) 3239 { 3240 ischecked = true; 3241 } 3242 } 3243 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3244 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3245 WriteLiteral("\r\n <input type=\"checkbox\" name=\"propertytype\""); 3246 BeginWriteAttribute("value", " value=\"", 8068, "\"", 8087, 1); 3247 WriteAttributeValue("", 8076, type.Value, 8076, 11, false); 3248 EndWriteAttribute(); 3249 WriteLiteral(" class=\"js-input-check datavalue js-datavalue js-count\" data-val=\""); 3250 Write(type.Key); 3251 WriteLiteral("\" onchange=\"submitFilter()\""); 3252 BeginWriteAttribute("checked", " checked=\"", 8190, "\"", 8210, 1); 3253 WriteAttributeValue("", 8200, ischecked, 8200, 10, false); 3254 EndWriteAttribute(); 3255 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3256 } 3257 3258 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){ 3259 { "Fritidsbolig", "fritidshus, fritidsbolig" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" }, 3260 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" } 3261 }; 3262 foreach (KeyValuePair<string, string> type in propertyTypes2) 3263 { 3264 bool ischecked = false; 3265 string[] propertytypeSplit2 = new string[0]; 3266 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"])) 3267 { 3268 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(','); 3269 } 3270 foreach (var propertytypeParams in propertytypeSplit2) 3271 { 3272 if (propertytypeParams == type.Value) 3273 { 3274 ischecked = true; 3275 } 3276 } 3277 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3278 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3279 WriteLiteral("\r\n"); 3280 if (type.Value == "ejerlejlighed") 3281 { 3282 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3283 BeginWriteAttribute("value", " value=\"", 9634, "\"", 9653, 1); 3284 WriteAttributeValue("", 9642, type.Value, 9642, 11, false); 3285 EndWriteAttribute(); 3286 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#grundareal\" data-disable-slider-ranges=\"#grundarealmin,#grundarealmax\" data-val=\""); 3287 Write(type.Key); 3288 WriteLiteral("\" onchange=\"submitFilter()\""); 3289 BeginWriteAttribute("checked", " checked=\"", 9827, "\"", 9847, 1); 3290 WriteAttributeValue("", 9837, ischecked, 9837, 10, false); 3291 EndWriteAttribute(); 3292 WriteLiteral(" />\r\n"); 3293 } 3294 else if (type.Value == "helårsgrund") 3295 { 3296 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3297 BeginWriteAttribute("value", " value=\"", 10024, "\"", 10043, 1); 3298 WriteAttributeValue("", 10032, type.Value, 10032, 11, false); 3299 EndWriteAttribute(); 3300 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\""); 3301 Write(type.Key); 3302 WriteLiteral("\" onchange=\"submitFilter()\""); 3303 BeginWriteAttribute("checked", " checked=\"", 10240, "\"", 10260, 1); 3304 WriteAttributeValue("", 10250, ischecked, 10250, 10, false); 3305 EndWriteAttribute(); 3306 WriteLiteral(" />\r\n"); 3307 } 3308 else if (type.Value == "fritidsgrund") 3309 { 3310 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3311 BeginWriteAttribute("value", " value=\"", 10438, "\"", 10457, 1); 3312 WriteAttributeValue("", 10446, type.Value, 10446, 11, false); 3313 EndWriteAttribute(); 3314 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\""); 3315 Write(type.Key); 3316 WriteLiteral("\" onchange=\"submitFilter()\""); 3317 BeginWriteAttribute("checked", " checked=\"", 10654, "\"", 10674, 1); 3318 WriteAttributeValue("", 10664, ischecked, 10664, 10, false); 3319 EndWriteAttribute(); 3320 WriteLiteral(" />\r\n"); 3321 } 3322 else 3323 { 3324 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3325 BeginWriteAttribute("value", " value=\"", 10818, "\"", 10837, 1); 3326 WriteAttributeValue("", 10826, type.Value, 10826, 11, false); 3327 EndWriteAttribute(); 3328 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3329 Write(type.Key); 3330 WriteLiteral("\" onchange=\"submitFilter()\""); 3331 BeginWriteAttribute("checked", " checked=\"", 10918, "\"", 10938, 1); 3332 WriteAttributeValue("", 10928, ischecked, 10928, 10, false); 3333 EndWriteAttribute(); 3334 WriteLiteral(" />\r\n"); 3335 } 3336 WriteLiteral(" <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3337 } 3338 } 3339 3340 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false) 3341 { 3342 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3343 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" }, 3344 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" } 3345 }; 3346 var submitonchange = ""; 3347 if (submitOnChange) 3348 { 3349 submitonchange = "onchange='submitFilter()'"; 3350 } 3351 3352 foreach (KeyValuePair<string, string> type in erhverType) 3353 { 3354 string ischecked = ""; 3355 string[] olineParamsSplit = new string[0]; 3356 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"])) 3357 { 3358 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(','); 3359 } 3360 foreach (var olineParams in olineParamsSplit) 3361 { 3362 if (olineParams == type.Value) 3363 { 3364 ischecked = "checked"; 3365 } 3366 } 3367 3368 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3369 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3370 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\""); 3371 BeginWriteAttribute("value", " value=\"", 12582, "\"", 12601, 1); 3372 WriteAttributeValue("", 12590, type.Value, 12590, 11, false); 3373 EndWriteAttribute(); 3374 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3375 Write(type.Key); 3376 WriteLiteral("\" "); 3377 Write(submitonchange); 3378 WriteLiteral(" "); 3379 Write(ischecked); 3380 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3381 } 3382 } 3383 3384 void RenderBoligTypeErhvervInvest(bool submitOnChange = false) 3385 { 3386 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3387 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" }, 3388 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" } 3389 }; 3390 3391 foreach (KeyValuePair<string, string> type in erhverType) 3392 { 3393 bool ischecked = false; 3394 string[] olineParamsSplit = new string[0]; 3395 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"])) 3396 { 3397 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(','); 3398 } 3399 foreach (var olineParams in olineParamsSplit) 3400 { 3401 if (olineParams == type.Value) 3402 { 3403 ischecked = true; 3404 } 3405 } 3406 3407 WriteLiteral(" <li>\r\n <label class=\"checkbox-container\">\r\n "); 3408 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3409 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\""); 3410 BeginWriteAttribute("value", " value=\"", 14192, "\"", 14211, 1); 3411 WriteAttributeValue("", 14200, type.Value, 14200, 11, false); 3412 EndWriteAttribute(); 3413 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3414 Write(type.Key); 3415 WriteLiteral("\" onchange=\"submitFilter()\""); 3416 BeginWriteAttribute("checked", " checked=\"", 14292, "\"", 14312, 1); 3417 WriteAttributeValue("", 14302, ischecked, 14302, 10, false); 3418 EndWriteAttribute(); 3419 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3420 } 3421 } 3422 int GetWebsiteSettingsPageId(string pageSysName) 3423 { 3424 int sideId = 0; 3425 3426 var pw = Dynamicweb.Frontend.PageView.Current(); 3427 3428 string settingsItemId = "1"; 3429 3430 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true") 3431 { 3432 settingsItemId = "2"; 3433 } 3434 3435 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId); 3436 3437 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName)) 3438 { 3439 return sideId; 3440 } 3441 3442 string boligsideLink = settingsItem[pageSysName] as String; 3443 string linkPrefix = "Default.aspx?ID="; 3444 3445 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower())) 3446 { 3447 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId); 3448 } 3449 3450 return sideId; 3451 } 3452 3453 int GetPageSettingsPageId(string pageSysName) 3454 { 3455 int sideId = 0; 3456 3457 var pw = Dynamicweb.Frontend.PageView.Current(); 3458 3459 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName)) 3460 { 3461 return sideId; 3462 } 3463 3464 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String; 3465 string linkPrefix = "Default.aspx?ID="; 3466 3467 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower())) 3468 { 3469 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId); 3470 } 3471 3472 return sideId; 3473 } 3474 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname) 3475 { 3476 WriteLiteral(" <select"); 3477 BeginWriteAttribute("class", " class=\"", 16255, "\"", 16310, 5); 3478 WriteAttributeValue("", 16263, "form-control", 16263, 12, true); 3479 WriteAttributeValue(" ", 16275, "d-block", 16276, 8, true); 3480 WriteAttributeValue(" ", 16283, "d-lg-none", 16284, 10, true); 3481 WriteAttributeValue(" ", 16293, "mb-10", 16294, 6, true); 3482 WriteAttributeValue(" ", 16299, className, 16300, 10, false); 3483 EndWriteAttribute(); 3484 WriteLiteral(" onchange=\"submitFilter()\""); 3485 BeginWriteAttribute("name", " name=\"", 16337, "\"", 16354, 1); 3486 WriteAttributeValue("", 16344, inputname, 16344, 10, false); 3487 EndWriteAttribute(); 3488 WriteLiteral(">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3489 Write(Translate("Smartpage:Search.Placeholder." + name + "", "" + name + "")); 3490 WriteLiteral("</option>\r\n\r\n"); 3491 for (var i = 0; i <= max; i += step) 3492 { 3493 var selected = string.Empty; 3494 var current = string.Empty; 3495 if (i == max) 3496 { 3497 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i)) 3498 { 3499 WriteLiteral(" <option"); 3500 BeginWriteAttribute("value", " value=\"", 16950, "\"", 16960, 1); 3501 WriteAttributeValue("", 16958, i, 16958, 2, false); 3502 EndWriteAttribute(); 3503 WriteLiteral(" data-value=\'"); 3504 Write(Convert.ToInt32(i).ToString("N0")); 3505 WriteLiteral("\' selected=\"selected\">"); 3506 Write(Convert.ToInt32(i).ToString("N0")); 3507 WriteLiteral("+</option>\r\n"); 3508 } 3509 else 3510 { 3511 WriteLiteral(" <option"); 3512 BeginWriteAttribute("value", " value=\"", 17179, "\"", 17189, 1); 3513 WriteAttributeValue("", 17187, i, 17187, 2, false); 3514 EndWriteAttribute(); 3515 WriteLiteral(" data-value=\'"); 3516 Write(Convert.ToInt32(i).ToString("N0")); 3517 WriteLiteral("\'>"); 3518 Write(Convert.ToInt32(i).ToString("N0")); 3519 WriteLiteral("+</option>\r\n"); 3520 } 3521 } 3522 else 3523 { 3524 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i)) 3525 { 3526 WriteLiteral(" <option"); 3527 BeginWriteAttribute("value", " value=\"", 17613, "\"", 17623, 1); 3528 WriteAttributeValue("", 17621, i, 17621, 2, false); 3529 EndWriteAttribute(); 3530 WriteLiteral(" data-value=\'"); 3531 Write(Convert.ToInt32(i).ToString("N0")); 3532 WriteLiteral("\' selected=\"selected\">"); 3533 Write(Convert.ToInt32(i).ToString("N0")); 3534 WriteLiteral("</option>\r\n"); 3535 } 3536 else 3537 { 3538 WriteLiteral(" <option"); 3539 BeginWriteAttribute("value", " value=\"", 17841, "\"", 17851, 1); 3540 WriteAttributeValue("", 17849, i, 17849, 2, false); 3541 EndWriteAttribute(); 3542 WriteLiteral(" data-value=\'"); 3543 Write(Convert.ToInt32(i).ToString("N0")); 3544 WriteLiteral("\'>"); 3545 Write(Convert.ToInt32(i).ToString("N0")); 3546 WriteLiteral("</option>\r\n"); 3547 } 3548 } 3549 } 3550 WriteLiteral(" </select>\r\n"); 3551 } 3552 3553 void RenderTopFilter(string parameter) 3554 { 3555 if (parameter == "pricemin" || parameter == "pricemax") 3556 { 3557 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"])) 3558 { 3559 if (parameter == "pricemin") 3560 { 3561 Write("<div class='search-terms' id='priceFilter'>"); 3562 Write("Pris "); 3563 Write(Dynamicweb.Context.Current.Request[parameter]); 3564 3565 } 3566 3567 else 3568 { 3569 Write(" - "); 3570 Write(Dynamicweb.Context.Current.Request[parameter]); 3571 Write(" kr."); 3572 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"pricemin,pricemax\"></i>\r\n"); 3573 Write("</div>"); 3574 3575 } 3576 } 3577 } 3578 3579 else if (parameter == "subsidymin" || parameter == "subsidymax") 3580 { 3581 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"])) 3582 { 3583 if (parameter == "subsidymin") 3584 { 3585 Write("<div class='search-terms' id='subsidyFilter'>"); 3586 Write("Årlig leje "); 3587 Write(Dynamicweb.Context.Current.Request[parameter]); 3588 3589 } 3590 3591 else 3592 { 3593 Write(" - "); 3594 Write(Dynamicweb.Context.Current.Request[parameter]); 3595 Write(" kr."); 3596 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidymin,subsidymax\"></i>\r\n"); 3597 Write("</div>"); 3598 3599 } 3600 } 3601 } 3602 else if (parameter == "etagearealmin" || parameter == "etagearealmax") 3603 { 3604 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"])) 3605 { 3606 if (parameter == "etagearealmin") 3607 { 3608 Write("<div class='search-terms' id='etagearealFilter'>"); 3609 Write("Etageareal "); 3610 Write(Dynamicweb.Context.Current.Request[parameter]); 3611 3612 } 3613 3614 else 3615 { 3616 Write(" - "); 3617 Write(Dynamicweb.Context.Current.Request[parameter]); 3618 Write(" kvm."); 3619 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"etagearealmin,etagearealmax\"></i>\r\n"); 3620 Write("</div>"); 3621 3622 } 3623 } 3624 } 3625 3626 else if (parameter == "grundarealmin" || parameter == "grundarealmax") 3627 { 3628 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"])) 3629 { 3630 if (parameter == "grundarealmin") 3631 { 3632 Write("<div class='search-terms' id='grundarealFilter'>"); 3633 Write("Grundareal "); 3634 Write(Dynamicweb.Context.Current.Request[parameter]); 3635 3636 } 3637 3638 else 3639 { 3640 Write(" - "); 3641 Write(Dynamicweb.Context.Current.Request[parameter]); 3642 Write(" kvm."); 3643 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"grundarealmin,grundarealmax\"></i>\r\n"); 3644 Write("</div>"); 3645 3646 } 3647 } 3648 } 3649 3650 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax") 3651 { 3652 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"])) 3653 { 3654 if (parameter == "subsidykvmmin") 3655 { 3656 Write("<div class='search-terms' id='subsidykvmFilter'>"); 3657 Write("Årlig leje kvm "); 3658 Write(Dynamicweb.Context.Current.Request[parameter]); 3659 3660 } 3661 3662 else 3663 { 3664 Write(" - "); 3665 Write(Dynamicweb.Context.Current.Request[parameter]); 3666 Write(" kr."); 3667 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidykvmmin,subsidykvmmax\"></i>\r\n"); 3668 Write("</div>"); 3669 3670 } 3671 } 3672 } 3673 3674 else if (parameter == "olinecategory") 3675 { 3676 3677 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"])) 3678 { 3679 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3680 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" }, 3681 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"}, 3682 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" }, 3683 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" } 3684 }; 3685 3686 3687 foreach (var er in erhverType) 3688 { 3689 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key)) 3690 { 3691 WriteLiteral(" <div class=\"search-terms\""); 3692 BeginWriteAttribute("id", " id=\"", 23021, "\"", 23036, 1); 3693 WriteAttributeValue("", 23026, parameter, 23026, 10, false); 3694 EndWriteAttribute(); 3695 WriteLiteral(">\r\n "); 3696 Write(er.Value); 3697 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3698 Write(parameter); 3699 WriteLiteral("\" data-val=\""); 3700 Write(er.Key); 3701 WriteLiteral("\"></i>\r\n </div>\r\n"); 3702 } 3703 } 3704 } 3705 } 3706 else if (parameter == "search") 3707 { 3708 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"])) 3709 { 3710 WriteLiteral(" <div class=\"search-terms\""); 3711 BeginWriteAttribute("id", " id=\"", 23484, "\"", 23499, 1); 3712 WriteAttributeValue("", 23489, parameter, 23489, 10, false); 3713 EndWriteAttribute(); 3714 WriteLiteral(">\r\n "); 3715 Write(Dynamicweb.Context.Current.Request[parameter]); 3716 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3717 Write(parameter); 3718 WriteLiteral("\"></i>\r\n </div>\r\n"); 3719 } 3720 } 3721 else 3722 { 3723 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter])) 3724 { 3725 Dictionary<string, string> 3726 ubudsform = new Dictionary<string, string> 3727 (){ 3728 {"salg", "Salg" }, { "leje","Leje" } 3729 }; 3730 3731 foreach (var er in ubudsform) 3732 { 3733 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key)) 3734 { 3735 WriteLiteral(" <div class=\"search-terms\""); 3736 BeginWriteAttribute("id", " id=\"", 24648, "\"", 24663, 1); 3737 WriteAttributeValue("", 24653, parameter, 24653, 10, false); 3738 EndWriteAttribute(); 3739 WriteLiteral(">\r\n "); 3740 Write(er.Value); 3741 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3742 Write(parameter); 3743 WriteLiteral("\" data-val=\""); 3744 Write(er.Key); 3745 WriteLiteral("\"></i>\r\n </div>\r\n"); 3746 } 3747 } 3748 3749 3750 } 3751 } 3752 } 3753 3754 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString) 3755 { 3756 var selected = ""; 3757 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue) 3758 { 3759 selected = "selected"; 3760 } 3761 3762 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected); 3763 3764 Write(current); 3765 3766 } 3767 3768 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "") 3769 { 3770 WriteLiteral(" <div"); 3771 BeginWriteAttribute("class", " class=\"", 25667, "\"", 25713, 3); 3772 WriteAttributeValue("", 25675, "main-search-form", 25675, 16, true); 3773 WriteAttributeValue(" ", 25691, "frontpage", 25692, 10, true); 3774 WriteAttributeValue(" ", 25701, cssClasses, 25702, 11, false); 3775 EndWriteAttribute(); 3776 WriteLiteral(">\r\n <div class=\"dropdown-overlay\"></div>\r\n <div class=\"row mb-3 align-items-center\">\r\n <div class=\"col-xs-12 col-md-3 border-right\">\r\n <h3>"); 3777 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 3778 WriteLiteral("</h3>\r\n </div>\r\n <div class=\"col-xs-12 col-md-9 home-count d-none d-md-block\">\r\n <span class=\"search-count\" id=\"searchCounter\">0</span> <span>"); 3779 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 3780 WriteLiteral("</span>\r\n </div>\r\n </div>\r\n\r\n <form id=\"main-search-frontpage\" class=\"searchbar-wrapper\" action=\"/Default.aspx\" method=\"GET\">\r\n <input type=\"hidden\" name=\"ID\""); 3781 BeginWriteAttribute("value", " value=\'", 26428, "\'", 26449, 1); 3782 WriteAttributeValue("", 26436, searchPageId, 26436, 13, false); 3783 EndWriteAttribute(); 3784 WriteLiteral(@" id=""searchPageId-frontpage"" disabled=""disabled"" /> 3785 <div class=""row form-wrapper no-gutters""> 3786 3787 <div class=""col-xs-12 col-md-5 col-searchbar""> 3788 <div class=""searchbar""> 3789 <input type=""text"""); 3790 BeginWriteAttribute("name", " name=\"", 26727, "\"", 26754, 1); 3791 WriteAttributeValue("", 26734, querySearchNameAttr, 26734, 20, false); 3792 EndWriteAttribute(); 3793 WriteLiteral(" id=\"searchfield-frontpage\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 3794 BeginWriteAttribute("value", " value=\"", 26867, "\"", 26945, 1); 3795 WriteAttributeValue("", 26875, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 26875, 70, false); 3796 EndWriteAttribute(); 3797 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom-frontpage\" name=\"zipcodefrom\""); 3798 BeginWriteAttribute("value", " value=\"", 27045, "\"", 27128, 1); 3799 WriteAttributeValue("", 27053, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 27053, 75, false); 3800 EndWriteAttribute(); 3801 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto-frontpage\" name=\"zipcodeto\""); 3802 BeginWriteAttribute("value", " value=\"", 27224, "\"", 27305, 1); 3803 WriteAttributeValue("", 27232, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 27232, 73, false); 3804 EndWriteAttribute(); 3805 WriteLiteral(@" /> 3806 </div> 3807 </div> 3808 <div class=""col-xs-12 col-md-5""> 3809 <div class=""row no-gutters""> 3810 <div class=""col-xs-12 col-md-6 input-col""> 3811 <div class=""dropdown w-overlay""> 3812 <button class=""btn btn-dropdown dropdown-toggle reverse position-absolute-md"" type=""button"" id=""Boligtype-frontpage"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 3813 "); 3814 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 3815 WriteLiteral(@" 3816 </button> 3817 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 3818 <ul class=""bolig-dropdown list-unstyled""> 3819 "); 3820 3821 RenderBoligtypeCheckboxesDropdown(); 3822 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 3823 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 3824 WriteLiteral(@"</button> 3825 </div> 3826 3827 </div> 3828 3829 </div> 3830 <div class=""col-xs-12 col-md-6 input-col""> 3831 <div class=""dropdown w-overlay""> 3832 <button class=""btn btn-dropdown dropdown-toggle reverse position-absolute-md"" type=""button"" id=""Pris-frontpage"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 3833 "); 3834 Write(Translate("Smartpage:Search.Pris", "Pris")); 3835 WriteLiteral(@" 3836 </button> 3837 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris""> 3838 <input type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 3839 BeginWriteAttribute("placeholder", " placeholder=\'", 29484, "\'", 29560, 1); 3840 WriteAttributeValue("", 29498, Translate("Smartpage:Search.Placeholder.MinPris","Min. pris"), 29498, 62, false); 3841 EndWriteAttribute(); 3842 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3843 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 3844 WriteLiteral("</option>\r\n"); 3845 for (var i = 0; i <= 10000000; i += 100000) 3846 { 3847 if (i == 10000000) 3848 { 3849 WriteLiteral(" <option"); 3850 BeginWriteAttribute("value", " value=\"", 30169, "\"", 30179, 1); 3851 WriteAttributeValue("", 30177, i, 30177, 2, false); 3852 EndWriteAttribute(); 3853 WriteLiteral(" data-value=\'"); 3854 Write(Convert.ToInt32(i).ToString("N0")); 3855 WriteLiteral("+\'>"); 3856 Write(Convert.ToInt32(i).ToString("N0")); 3857 WriteLiteral("+</option>\r\n"); 3858 } 3859 else 3860 { 3861 WriteLiteral(" <option"); 3862 BeginWriteAttribute("value", " value=\"", 30491, "\"", 30501, 1); 3863 WriteAttributeValue("", 30499, i, 30499, 2, false); 3864 EndWriteAttribute(); 3865 WriteLiteral(" data-value=\'"); 3866 Write(Convert.ToInt32(i).ToString("N0")); 3867 WriteLiteral("\'>"); 3868 Write(Convert.ToInt32(i).ToString("N0")); 3869 WriteLiteral("</option>\r\n"); 3870 } 3871 } 3872 WriteLiteral(@" </select> 3873 <input type=""hidden"" id=""pricemin-frontpage"" name=""pricemin"" /> 3874 3875 <input type=""text"" class=""form-control js-auto-thousand js-pricemax-frontpage-input"""); 3876 BeginWriteAttribute("placeholder", " placeholder=\'", 30976, "\'", 31052, 1); 3877 WriteAttributeValue("", 30990, Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris"), 30990, 62, false); 3878 EndWriteAttribute(); 3879 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3880 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 3881 WriteLiteral("</option>\r\n"); 3882 for (var i = 0; i <= 10000000; i += 100000) 3883 { 3884 if (i == 10000000) 3885 { 3886 WriteLiteral(" <option"); 3887 BeginWriteAttribute("value", " value=\"", 31655, "\"", 31665, 1); 3888 WriteAttributeValue("", 31663, i, 31663, 2, false); 3889 EndWriteAttribute(); 3890 WriteLiteral(" data-value=\'"); 3891 Write(Convert.ToInt32(i).ToString("N0")); 3892 WriteLiteral("+\'>"); 3893 Write(Convert.ToInt32(i).ToString("N0")); 3894 WriteLiteral("+</option>\r\n"); 3895 } 3896 else 3897 { 3898 WriteLiteral(" <option"); 3899 BeginWriteAttribute("value", " value=\"", 31977, "\"", 31987, 1); 3900 WriteAttributeValue("", 31985, i, 31985, 2, false); 3901 EndWriteAttribute(); 3902 WriteLiteral(" data-value=\'"); 3903 Write(Convert.ToInt32(i).ToString("N0")); 3904 WriteLiteral("\'>"); 3905 Write(Convert.ToInt32(i).ToString("N0")); 3906 WriteLiteral("</option>\r\n"); 3907 } 3908 } 3909 WriteLiteral(" </select>\r\n <input type=\"hidden\" id=\"pricemax-frontpage\" name=\"pricemax\" />\r\n <button class=\"btn btn-primary js-close-dropdown mt-3\">"); 3910 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 3911 WriteLiteral(@"</button> 3912 </div> 3913 </div> 3914 </div> 3915 </div> 3916 </div> 3917 <div class=""col-xs-12 col-md-2 d-none d-md-block""> 3918 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 3919 Write(Translate("Smartpage:Search.Søg", "Søg")); 3920 WriteLiteral(@"</button> 3921 </div> 3922 </div> 3923 3924 <div class=""row moresearch-btn no-gutters""> 3925 <div class=""col-sm-12""> 3926 <div class=""row align-items-center no-gutters""> 3927 <div class=""col-12 col-md-4""> 3928 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch"" aria-expanded=""false"" aria-controls=""moreSearch""> 3929 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open"">"); 3930 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 3931 WriteLiteral("</span> <span class=\"open\"><span class=\"js-filter-count\">0</span> "); 3932 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 3933 WriteLiteral(" </span></span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-md-2 mb-xs-4\">\r\n <a class=\"js-reset reset-btn\">"); 3934 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 3935 WriteLiteral("</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"collapse\" id=\"moreSearch\">\r\n <h4 class=\"mt-20\"><b>"); 3936 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 3937 WriteLiteral(@"</b></h4> 3938 <div class=""row align-items-end mb-30""> 3939 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 3940 <div class=""filter-container row""> 3941 <label class=""d-block col-12"">"); 3942 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 3943 WriteLiteral(@"</label> 3944 <div class=""col-6 pr-sm-0 pr-2""> 3945 <input type=""text"" name=""boligarealmin"" id=""boligarealmin-frontpage"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 3946 BeginWriteAttribute("placeholder", " placeholder=\'", 34853, "\'", 34925, 1); 3947 WriteAttributeValue("", 34867, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 34867, 58, false); 3948 EndWriteAttribute(); 3949 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3950 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 3951 WriteLiteral("</option>\r\n"); 3952 for (var i = 0; i <= 300; i += 10) 3953 { 3954 if (i == 300) 3955 { 3956 WriteLiteral(" <option"); 3957 BeginWriteAttribute("value", " value=\"", 35532, "\"", 35542, 1); 3958 WriteAttributeValue("", 35540, i, 35540, 2, false); 3959 EndWriteAttribute(); 3960 WriteLiteral(">"); 3961 Write(i); 3962 WriteLiteral("+</option>\r\n"); 3963 } 3964 else 3965 { 3966 WriteLiteral(" <option"); 3967 BeginWriteAttribute("value", " value=\"", 35789, "\"", 35799, 1); 3968 WriteAttributeValue("", 35797, i, 35797, 2, false); 3969 EndWriteAttribute(); 3970 WriteLiteral(">"); 3971 Write(i); 3972 WriteLiteral("</option>\r\n"); 3973 } 3974 } 3975 WriteLiteral(@" </select> 3976 </div> 3977 <div class=""col-6 pl-sm-0 pl-2""> 3978 <input type=""text"" name=""boligarealmax"" id=""boligarealmax-frontpage"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 3979 BeginWriteAttribute("placeholder", " placeholder=\'", 36272, "\'", 36344, 1); 3980 WriteAttributeValue("", 36286, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 36286, 58, false); 3981 EndWriteAttribute(); 3982 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3983 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 3984 WriteLiteral("</option>\r\n"); 3985 for (var i = 0; i <= 300; i += 10) 3986 { 3987 if (i == 300) 3988 { 3989 WriteLiteral(" <option"); 3990 BeginWriteAttribute("value", " value=\"", 36951, "\"", 36961, 1); 3991 WriteAttributeValue("", 36959, i, 36959, 2, false); 3992 EndWriteAttribute(); 3993 WriteLiteral(">"); 3994 Write(i); 3995 WriteLiteral("+</option>\r\n"); 3996 } 3997 else 3998 { 3999 WriteLiteral(" <option"); 4000 BeginWriteAttribute("value", " value=\"", 37208, "\"", 37218, 1); 4001 WriteAttributeValue("", 37216, i, 37216, 2, false); 4002 EndWriteAttribute(); 4003 WriteLiteral(">"); 4004 Write(i); 4005 WriteLiteral("</option>\r\n"); 4006 } 4007 } 4008 WriteLiteral(@" </select> 4009 </div> 4010 </div> 4011 </div> 4012 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4013 <div class=""filter-container row""> 4014 <label class=""d-block col-12"">"); 4015 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 4016 WriteLiteral(@"</label> 4017 <div class=""col-6 pr-sm-0 pr-2""> 4018 <input type=""text"" name=""grundarealmin"" id=""grundarealmin-frontpage"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 4019 BeginWriteAttribute("placeholder", " placeholder=\'", 38067, "\'", 38139, 1); 4020 WriteAttributeValue("", 38081, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 38081, 58, false); 4021 EndWriteAttribute(); 4022 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4023 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 4024 WriteLiteral("</option>\r\n"); 4025 for (var i = 0; i <= 10000; i += 100) 4026 { 4027 if (i == 10000) 4028 { 4029 WriteLiteral(" <option"); 4030 BeginWriteAttribute("value", " value=\"", 38751, "\"", 38761, 1); 4031 WriteAttributeValue("", 38759, i, 38759, 2, false); 4032 EndWriteAttribute(); 4033 WriteLiteral(">"); 4034 Write(i); 4035 WriteLiteral("+</option>\r\n"); 4036 } 4037 else 4038 { 4039 WriteLiteral(" <option"); 4040 BeginWriteAttribute("value", " value=\"", 39008, "\"", 39018, 1); 4041 WriteAttributeValue("", 39016, i, 39016, 2, false); 4042 EndWriteAttribute(); 4043 WriteLiteral(">"); 4044 Write(i); 4045 WriteLiteral("</option>\r\n"); 4046 } 4047 } 4048 WriteLiteral(@" </select> 4049 </div> 4050 <div class=""col-6 pl-sm-0 pl-2""> 4051 <input type=""text"" name=""grundarealmax"" id=""grundarealmax-frontpage"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 4052 BeginWriteAttribute("placeholder", " placeholder=\'", 39491, "\'", 39563, 1); 4053 WriteAttributeValue("", 39505, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 39505, 58, false); 4054 EndWriteAttribute(); 4055 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4056 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 4057 WriteLiteral("</option>\r\n"); 4058 for (var i = 0; i <= 10000; i += 100) 4059 { 4060 if (i == 10000) 4061 { 4062 WriteLiteral(" <option"); 4063 BeginWriteAttribute("value", " value=\"", 40175, "\"", 40185, 1); 4064 WriteAttributeValue("", 40183, i, 40183, 2, false); 4065 EndWriteAttribute(); 4066 WriteLiteral(">"); 4067 Write(i); 4068 WriteLiteral("+</option>\r\n"); 4069 } 4070 else 4071 { 4072 WriteLiteral(" <option"); 4073 BeginWriteAttribute("value", " value=\"", 40432, "\"", 40442, 1); 4074 WriteAttributeValue("", 40440, i, 40440, 2, false); 4075 EndWriteAttribute(); 4076 WriteLiteral(">"); 4077 Write(i); 4078 WriteLiteral("</option>\r\n"); 4079 } 4080 } 4081 WriteLiteral(@" </select> 4082 </div> 4083 </div> 4084 </div> 4085 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4086 <div class=""filter-container row""> 4087 <label class=""d-block col-12"">Antal rum</label> 4088 4089 <div class=""col-6 pr-sm-0 pr-2""> 4090 <select name=""roomsmin"" id=""roomsmin-frontpage"" class=""form-control reverse js-count""> 4091 <option selected=""true"" disabled=""disabled"">"); 4092 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 4093 WriteLiteral(@"</option> 4094 <option value=""1"">1</option> 4095 <option value=""2"">2</option> 4096 <option value=""3"">3</option> 4097 <option value=""4"">4</option> 4098 <option value=""5+"">5+</option> 4099 </select> 4100 </div> 4101 <div class=""col-6 pl-sm-0 pl-2""> 4102 <select name=""roomsmax"" id=""roomsmax-frontpage"" class=""form-control reverse js-count""> 4103 <option selected=""true"" disabled=""disabled"">"); 4104 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 4105 WriteLiteral(@"</option> 4106 <option value=""1"">1</option> 4107 <option value=""2"">2</option> 4108 <option value=""3"">3</option> 4109 <option value=""4"">4</option> 4110 <option value=""5+"">"); 4111 Write(Translate("Smartpage:Rooms.5", "5")); 4112 WriteLiteral(@"</option> 4113 </select> 4114 </div> 4115 </div> 4116 </div> 4117 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4118 <div class=""row""> 4119 <div class=""col-12""> 4120 <div class=""filter-container""> 4121 <label class=""d-block"">Energimærke</label> 4122 <select name=""energylabel"" id=""energylabel-frontpage"" class=""form-control reverse js-count""> 4123 <option disabled selected=""selected"">"); 4124 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 4125 WriteLiteral(@"</option> 4126 <option value=""01"">G</option> 4127 <option value=""02"">F</option> 4128 <option value=""03"">E</option> 4129 <option value=""04"">D</option> 4130 <option value=""05"">C</option> 4131 <option value=""06"">B</option> 4132 <option value=""07"">A</option> 4133 <option value=""08"">A2010</option> 4134 <option value=""09"">A2015</option> 4135 <option value=""10"">A2020+</option> 4136 </select> 4137 </div> 4138 </div> 4139 "); 4140 WriteLiteral(" </div>\r\n </div>\r\n <div class=\"col-12 col-sm-6 col-lg-3 mt-3\">\r\n <h4"); 4141 BeginWriteAttribute("class", " class=\"", 44687, "\"", 44695, 0); 4142 EndWriteAttribute(); 4143 WriteLiteral("><b>"); 4144 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 4145 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 4146 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 4147 WriteLiteral("</label>\r\n <div class=\"col-6 pr-sm-0 pr-2\">\r\n <input type=\"text\" name=\"subsidymin\" id=\"subsidymin-frontpage\" class=\"form-control js-subsidymin-frontpage-input js-count\""); 4148 BeginWriteAttribute("placeholder", " placeholder=\'", 45251, "\'", 45325, 1); 4149 WriteAttributeValue("", 45265, Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK"), 45265, 60, false); 4150 EndWriteAttribute(); 4151 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4152 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 4153 WriteLiteral("</option>\r\n"); 4154 for (var i = 0; i <= 25000; i += 1250) 4155 { 4156 if (i == 25000) 4157 { 4158 WriteLiteral(" <option>"); 4159 Write(Convert.ToInt32(i).ToString("N0")); 4160 WriteLiteral("+</option>\r\n"); 4161 } 4162 else 4163 { 4164 WriteLiteral(" <option>"); 4165 Write(Convert.ToInt32(i).ToString("N0")); 4166 WriteLiteral("</option>\r\n"); 4167 } 4168 } 4169 WriteLiteral(@" </select> 4170 </div> 4171 <div class=""col-6 pl-sm-0 pl-2""> 4172 <input type=""text"" name=""subsidymax"" id=""subsidymax-frontpage"" class=""form-control js-subsidymax-frontpage-input js-count"""); 4173 BeginWriteAttribute("placeholder", " placeholder=\'", 46710, "\'", 46784, 1); 4174 WriteAttributeValue("", 46724, Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK"), 46724, 60, false); 4175 EndWriteAttribute(); 4176 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4177 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 4178 WriteLiteral("</option>\r\n"); 4179 for (var i = 0; i <= 25000; i += 1250) 4180 { 4181 if (i == 25000) 4182 { 4183 WriteLiteral(" <option"); 4184 BeginWriteAttribute("value", " value=\"", 47396, "\"", 47423, 1); 4185 WriteAttributeValue("", 47404, Convert.ToInt32(i), 47404, 19, false); 4186 EndWriteAttribute(); 4187 WriteLiteral(">"); 4188 Write(Convert.ToInt32(i).ToString("N0")); 4189 WriteLiteral("+</option>\r\n"); 4190 } 4191 else 4192 { 4193 WriteLiteral(" <option"); 4194 BeginWriteAttribute("value", " value=\"", 47702, "\"", 47729, 1); 4195 WriteAttributeValue("", 47710, Convert.ToInt32(i), 47710, 19, false); 4196 EndWriteAttribute(); 4197 WriteLiteral(">"); 4198 Write(Convert.ToInt32(i).ToString("N0")); 4199 WriteLiteral("</option>\r\n"); 4200 } 4201 } 4202 WriteLiteral(@" </select> 4203 </div> 4204 </div> 4205 </div> 4206 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0""> 4207 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 4208 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 4209 WriteLiteral(@"</button> 4210 </div> 4211 </div> 4212 </div> 4213 </div> 4214 </div> 4215 4216 <div class=""row d-block d-md-none form-wrapper no-gutters""> 4217 <div class=""col-xs-12 col-md-2""> 4218 <button type=""submit"" class=""btn btn-block btn-search btn-mobile-search"">"); 4219 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig")); 4220 WriteLiteral(@"<i class=""fa fa-search cta-icon""></i></button> 4221 </div> 4222 </div> 4223 </form> 4224 <div class=""front-page-actions d-md-none""> 4225 <div> 4226 <button class=""btn btn-block btn-search btn-mobile-search js-search-mobile"">"); 4227 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig")); 4228 WriteLiteral("<i class=\"fa fa-search cta-icon\"></i></button>\r\n </div>\r\n <div>\r\n"); 4229 4230 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : ""; 4231 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER"); 4232 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\">\r\n <input name=\"id\""); 4233 BeginWriteAttribute("value", " value=\"", 49672, "\"", 49695, 1); 4234 WriteAttributeValue("", 49680, brokerSearchId, 49680, 15, false); 4235 EndWriteAttribute(); 4236 WriteLiteral(@" type=""hidden"" /> 4237 <div class=""icon-wrapper-wclick""> 4238 <i class=""fas fa-search ta-submit-on-icon-click""></i> 4239 <input class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" name=""q"" type=""text"""); 4240 BeginWriteAttribute("placeholder", " placeholder=\"", 49999, "\"", 50021, 1); 4241 WriteAttributeValue("", 50013, ctaText, 50013, 8, false); 4242 EndWriteAttribute(); 4243 WriteLiteral(" onfocus=\"this.placeholder = \'\'\""); 4244 BeginWriteAttribute("onblur", " onblur=\"", 50054, "\"", 50090, 3); 4245 WriteAttributeValue("", 50063, "this.placeholder=\'", 50063, 18, true); 4246 WriteAttributeValue("", 50081, ctaText, 50081, 8, false); 4247 WriteAttributeValue("", 50089, "\'", 50089, 1, true); 4248 EndWriteAttribute(); 4249 WriteLiteral(" />\r\n </div>\r\n </form>\r\n"); 4250 WriteLiteral(" </div>\r\n <div>\r\n <a href=\"javascript:panelSalgsvurdering(\'Hovedmenu\')\" class=\"btn btn-orange btn-block\">"); 4251 Write(Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING")); 4252 WriteLiteral("<i class=\"cta-icon fa fa-angle-right\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n"); 4253 4254 } 4255 Custom.Integration.Brokers.Models.BrokerEmployee GetBrokerFromCurrentProduct() 4256 { 4257 string productId = Dynamicweb.Context.Current.Request["ProductId"]; 4258 4259 if (string.IsNullOrWhiteSpace(productId)) 4260 { 4261 return null; 4262 } 4263 4264 var propertyProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(productId, string.Empty, true); 4265 if (propertyProduct == null) 4266 { 4267 return null; 4268 } 4269 4270 string employee = Dynamicweb.Core.Converter.ToString( 4271 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xAktoererMaeglerKontaktEmail") 4272 ); 4273 string storeId = Dynamicweb.Core.Converter.ToString( 4274 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xButikID") 4275 ); 4276 4277 if (string.IsNullOrWhiteSpace(employee) || string.IsNullOrWhiteSpace(storeId)) 4278 { 4279 return null; 4280 } 4281 4282 return Custom.Integration.Brokers.Search.GetEmployee(storeId, employee); 4283 } 4284 4285 string GetAgentTitleFromCurrentProduct() 4286 { 4287 var propBroker = GetBrokerFromCurrentProduct(); 4288 4289 if (propBroker?.Broker == null) 4290 { 4291 return string.Empty; 4292 } 4293 4294 if (!string.IsNullOrEmpty(propBroker.Broker.CompanyName)) 4295 { 4296 return propBroker.Broker.CompanyName; 4297 } 4298 4299 return propBroker.Broker.Name ?? string.Empty; 4300 } 4301 4302 string GetMasterBrokerUrlFromCurrentProduct() 4303 { 4304 var propBroker = GetBrokerFromCurrentProduct(); 4305 4306 var itemId = propBroker?.Broker?.ItemId; 4307 var itemType = propBroker?.Broker?.ItemType; 4308 4309 if (string.IsNullOrWhiteSpace(itemId) || string.IsNullOrWhiteSpace(itemType)) 4310 { 4311 return string.Empty; 4312 } 4313 var brokerItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(itemType, itemId); 4314 4315 if (brokerItem == null) 4316 { 4317 return string.Empty; 4318 } 4319 4320 var websiteId = Dynamicweb.Core.Converter.ToInt32(brokerItem["WebsiteId"]); 4321 var page = Dynamicweb.Content.Services.Pages.GetFirstPageForArea(websiteId); 4322 return Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?Id=" + page?.ID); 4323 } 4324 4325 void RenderSlideMenu(bool erhverv, string maeglersoegning) 4326 { 4327 WriteLiteral(" <div id=\"menu\" \r\n class=\"main-menu-slide \"\r\n role=\"navigation\""); 4328 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 53272, "\"", 53388, 1); 4329 WriteAttributeValue("", 53299, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.MainMenu", "Hovedmenu")), 53299, 89, false); 4330 EndWriteAttribute(); 4331 WriteLiteral(@" 4332 aria-modal=""true""> 4333 <div class=""container""> 4334 <div class=""row""> 4335 <div class=""col-12""> 4336 <span class=""menu-headline"">MENU</span> 4337 </div> 4338 <div class=""menu-slide"" 4339 role=""button"" 4340 tabindex=""0"""); 4341 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 53753, "\"", 53881, 1); 4342 WriteAttributeValue("", 53792, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.CloseMenu", "Luk menu")), 53792, 89, false); 4343 EndWriteAttribute(); 4344 WriteLiteral(">\r\n <b aria-hidden=\"true\"></b>\r\n </div>\r\n <div class=\"col-12 main-slidemenu\" role=\"region\""); 4345 BeginWriteAttribute("aria-label", " aria-label=\"", 54033, "\"", 54149, 1); 4346 WriteAttributeValue("", 54046, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.NavigationLinks", "Navigationslinks")), 54046, 103, false); 4347 EndWriteAttribute(); 4348 WriteLiteral(">\r\n"); 4349 4350 var navigationSettings = new NavigationSettings(); 4351 navigationSettings.StartLevel = 1; 4352 navigationSettings.StopLevel = 2; 4353 navigationSettings.ExpandMode = ExpandMode.All; 4354 navigationSettings.RootAreaId = Pageview.Area.ID; 4355 4356 Write(Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings)); 4357 WriteLiteral(" </div>\r\n <div class=\"col-12 bottom-btns\">\r\n\r\n"); 4358 4359 string[] maeglerid; 4360 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0"; 4361 4362 if (erhverv) 4363 { 4364 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None); 4365 } 4366 else 4367 { 4368 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None); 4369 } 4370 4371 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\" role=\"search\">\r\n <input name=\"id\""); 4372 BeginWriteAttribute("value", " value=\"", 55646, "\"", 55667, 1); 4373 WriteAttributeValue("", 55654, maeglerid[1], 55654, 13, false); 4374 EndWriteAttribute(); 4375 WriteLiteral(" type=\"hidden\" />\r\n <div class=\"icon-wrapper-wclick\">\r\n <label for=\"broker-search-menu-vm\" class=\"sr-only\">"); 4376 Write(Translate("Custom:Accessibility.FindBroker", "Find mægler")); 4377 WriteLiteral(@"</label> 4378 <i class=""fas fa-search ta-submit-on-icon-click"" 4379 aria-hidden=""true"" 4380 role=""button"" 4381 tabindex=""0"""); 4382 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 56162, "\"", 56315, 1); 4383 WriteAttributeValue("", 56215, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.SearchBroker", "Søg efter mægler")), 56215, 100, false); 4384 EndWriteAttribute(); 4385 WriteLiteral(@"></i> 4386 <input id=""broker-search-menu-vm"" 4387 class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" 4388 name=""q"" 4389 type=""text"""); 4390 BeginWriteAttribute("placeholder", " \r\n placeholder=\"", 56623, "\"", 56774, 1); 4391 WriteAttributeValue("", 56682, HtmlEncoder.HtmlAttributeEncode(Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER")), 56682, 92, false); 4392 EndWriteAttribute(); 4393 BeginWriteAttribute("aria-label", " \r\n aria-label=\"", 56775, "\"", 56971, 1); 4394 WriteAttributeValue("", 56833, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.BrokerSearchField", "Indtast postnummer eller navn for at finde mægler")), 56833, 138, false); 4395 EndWriteAttribute(); 4396 WriteLiteral("\r\n onfocus=\"this.placeholder = \'FIND MÆGLER\'\" />\r\n </div>\r\n </form>\r\n"); 4397 WriteLiteral(" <br />\r\n"); 4398 4399 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + ""; 4400 WriteLiteral(" <a"); 4401 BeginWriteAttribute("href", " href=\"", 57381, "\"", 57452, 5); 4402 WriteAttributeValue("", 57388, "javascript:panelSalgsvurdering(\'", 57388, 32, true); 4403 WriteAttributeValue("", 57420, dpmaegler, 57420, 10, false); 4404 WriteAttributeValue("", 57430, "\',\'", 57430, 3, true); 4405 WriteAttributeValue("", 57433, Pageview.AreaID, 57433, 16, false); 4406 WriteAttributeValue("", 57449, "\');", 57449, 3, true); 4407 EndWriteAttribute(); 4408 WriteLiteral(" \r\n class=\"btn btn-block btn-default-invert js-close-menu\""); 4409 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 57537, "\"", 57693, 1); 4410 WriteAttributeValue("", 57578, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.FreeSalesAssessment", "Få gratis salgsvurdering")), 57578, 115, false); 4411 EndWriteAttribute(); 4412 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"); 4413 } 4414 4415 void RenderBlockList(List<Block> blocks) 4416 { 4417 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false; 4418 blocks = blocks.OrderBy(item => item.SortId).ToList(); 4419 4420 foreach (Block item in blocks) 4421 { 4422 if (debug) { 4423 WriteLiteral(" <!-- Block START: "); 4424 Write(item.Id); 4425 WriteLiteral(" -->\r\n"); 4426 } 4427 4428 if (item.Design == null) 4429 { 4430 RenderBlock(item); 4431 } 4432 else if (item.Design.RenderType == RenderType.None) { 4433 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : ""; 4434 4435 WriteLiteral(" <div"); 4436 BeginWriteAttribute("class", " class=\"", 58948, "\"", 58972, 2); 4437 WriteAttributeValue("", 58956, cssClass, 58956, 9, false); 4438 WriteAttributeValue(" ", 58965, "dw-mod", 58966, 7, true); 4439 EndWriteAttribute(); 4440 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4441 } 4442 else if (item.Design.RenderType != RenderType.Hide) 4443 { 4444 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : ""; 4445 4446 if (!item.SkipRenderBlocksList) { 4447 if (item.Design.RenderType == RenderType.Row) 4448 { 4449 WriteLiteral(" <div"); 4450 BeginWriteAttribute("class", " class=\"", 59399, "\"", 59454, 4); 4451 WriteAttributeValue("", 59407, "grid", 59407, 4, true); 4452 WriteAttributeValue(" ", 59411, "grid--align-content-start", 59412, 26, true); 4453 WriteAttributeValue(" ", 59437, cssClass, 59438, 9, false); 4454 WriteAttributeValue(" ", 59447, "dw-mod", 59448, 7, true); 4455 EndWriteAttribute(); 4456 BeginWriteAttribute("id", " id=\"", 59455, "\"", 59475, 2); 4457 WriteAttributeValue("", 59460, "Block__", 59460, 7, true); 4458 WriteAttributeValue("", 59467, item.Id, 59467, 8, false); 4459 EndWriteAttribute(); 4460 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4461 } 4462 4463 if (item.Design.RenderType == RenderType.Column) 4464 { 4465 string hidePadding = item.Design.HidePadding ? "u-no-padding" : ""; 4466 string size = item.Design.Size ?? "12"; 4467 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size; 4468 4469 WriteLiteral(" <div"); 4470 BeginWriteAttribute("class", " class=\"", 59971, "\"", 60102, 9); 4471 WriteAttributeValue("", 59979, "grid__col-lg-", 59979, 13, true); 4472 WriteAttributeValue("", 59992, item.Design.Size, 59992, 17, false); 4473 WriteAttributeValue(" ", 60009, "grid__col-md-", 60010, 14, true); 4474 WriteAttributeValue("", 60023, item.Design.Size, 60023, 17, false); 4475 WriteAttributeValue(" ", 60040, "grid__col-sm-12", 60041, 16, true); 4476 WriteAttributeValue(" ", 60056, "grid__col-xs-12", 60057, 16, true); 4477 WriteAttributeValue(" ", 60072, hidePadding, 60073, 12, false); 4478 WriteAttributeValue(" ", 60085, cssClass, 60086, 9, false); 4479 WriteAttributeValue(" ", 60095, "dw-mod", 60096, 7, true); 4480 EndWriteAttribute(); 4481 BeginWriteAttribute("id", " id=\"", 60103, "\"", 60123, 2); 4482 WriteAttributeValue("", 60108, "Block__", 60108, 7, true); 4483 WriteAttributeValue("", 60115, item.Id, 60115, 8, false); 4484 EndWriteAttribute(); 4485 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4486 } 4487 4488 if (item.Design.RenderType == RenderType.Table) 4489 { 4490 WriteLiteral(" <table"); 4491 BeginWriteAttribute("class", " class=\"", 60354, "\"", 60384, 3); 4492 WriteAttributeValue("", 60362, "table", 60362, 5, true); 4493 WriteAttributeValue(" ", 60367, cssClass, 60368, 9, false); 4494 WriteAttributeValue(" ", 60377, "dw-mod", 60378, 7, true); 4495 EndWriteAttribute(); 4496 BeginWriteAttribute("id", " id=\"", 60385, "\"", 60405, 2); 4497 WriteAttributeValue("", 60390, "Block__", 60390, 7, true); 4498 WriteAttributeValue("", 60397, item.Id, 60397, 8, false); 4499 EndWriteAttribute(); 4500 WriteLiteral(">\r\n RenderBlock(item);\r\n </table>\r\n"); 4501 } 4502 4503 if (item.Design.RenderType == RenderType.TableRow) 4504 { 4505 WriteLiteral(" <tr"); 4506 BeginWriteAttribute("class", " class=\"", 60638, "\"", 60662, 2); 4507 WriteAttributeValue("", 60646, cssClass, 60646, 9, false); 4508 WriteAttributeValue(" ", 60655, "dw-mod", 60656, 7, true); 4509 EndWriteAttribute(); 4510 BeginWriteAttribute("id", " id=\"", 60663, "\"", 60683, 2); 4511 WriteAttributeValue("", 60668, "Block__", 60668, 7, true); 4512 WriteAttributeValue("", 60675, item.Id, 60675, 8, false); 4513 EndWriteAttribute(); 4514 WriteLiteral(">\r\n RenderBlock(item);\r\n </tr>\r\n"); 4515 } 4516 4517 if (item.Design.RenderType == RenderType.TableColumn) 4518 { 4519 WriteLiteral(" <td"); 4520 BeginWriteAttribute("class", " class=\"", 60916, "\"", 60940, 2); 4521 WriteAttributeValue("", 60924, cssClass, 60924, 9, false); 4522 WriteAttributeValue(" ", 60933, "dw-mod", 60934, 7, true); 4523 EndWriteAttribute(); 4524 BeginWriteAttribute("id", " id=\"", 60941, "\"", 60961, 2); 4525 WriteAttributeValue("", 60946, "Block__", 60946, 7, true); 4526 WriteAttributeValue("", 60953, item.Id, 60953, 8, false); 4527 EndWriteAttribute(); 4528 WriteLiteral(">\r\n RenderBlock(item);\r\n </td>\r\n"); 4529 } 4530 4531 if (item.Design.RenderType == RenderType.CardHeader) 4532 { 4533 WriteLiteral(" <div"); 4534 BeginWriteAttribute("class", " class=\"", 61194, "\"", 61230, 3); 4535 WriteAttributeValue("", 61202, "card-header", 61202, 11, true); 4536 WriteAttributeValue(" ", 61213, cssClass, 61214, 9, false); 4537 WriteAttributeValue(" ", 61223, "dw-mod", 61224, 7, true); 4538 EndWriteAttribute(); 4539 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4540 } 4541 4542 if (item.Design.RenderType == RenderType.CardBody) 4543 { 4544 WriteLiteral(" <div"); 4545 BeginWriteAttribute("class", " class=\"", 61462, "\"", 61491, 3); 4546 WriteAttributeValue("", 61470, "card", 61470, 4, true); 4547 WriteAttributeValue(" ", 61474, cssClass, 61475, 9, false); 4548 WriteAttributeValue(" ", 61484, "dw-mod", 61485, 7, true); 4549 EndWriteAttribute(); 4550 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4551 } 4552 4553 if (item.Design.RenderType == RenderType.CardFooter) 4554 { 4555 WriteLiteral(" <div"); 4556 BeginWriteAttribute("class", " class=\"", 61725, "\"", 61761, 3); 4557 WriteAttributeValue("", 61733, "card-footer", 61733, 11, true); 4558 WriteAttributeValue(" ", 61744, cssClass, 61745, 9, false); 4559 WriteAttributeValue(" ", 61754, "dw-mod", 61755, 7, true); 4560 EndWriteAttribute(); 4561 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4562 } 4563 } 4564 else 4565 { 4566 RenderBlock(item); 4567 } 4568 } 4569 4570 if (debug) { 4571 WriteLiteral(" <!-- Block END: "); 4572 Write(item.Id); 4573 WriteLiteral(" -->\r\n"); 4574 } 4575 } 4576 } 4577 4578 void RenderBlock(Block item) 4579 { 4580 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false; 4581 4582 if (item.Template != null) 4583 { 4584 Write(BlocksPage.RenderTemplate(item.Template)); 4585 4586 } 4587 4588 if (item.Component != null) 4589 { 4590 string customSufix = "Custom"; 4591 string methodName = item.Component.HelperName; 4592 4593 ComponentBase[] methodParameters = new ComponentBase[1]; 4594 methodParameters[0] = item.Component; 4595 Type methodType = this.GetType(); 4596 4597 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix); 4598 MethodInfo generalMethod = methodType.GetMethod(methodName); 4599 4600 try { 4601 if (debug) { 4602 WriteLiteral(" <!-- Component: "); 4603 Write(methodName.Replace("Render", "")); 4604 WriteLiteral(" -->\r\n"); 4605 } 4606 Write(customMethod.Invoke(this, methodParameters).ToString()); 4607 ; 4608 } catch { 4609 try { 4610 Write(generalMethod.Invoke(this, methodParameters).ToString()); 4611 4612 ; 4613 } catch(Exception ex) { 4614 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex); 4615 } 4616 } 4617 } 4618 4619 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList) 4620 { 4621 RenderBlockList(item.BlocksList); 4622 } 4623 } 4624 4625 void Render(ComponentBase component) 4626 { 4627 if (component != null) 4628 { 4629 Write(component.Render(this)); 4630 4631 } 4632 } 4633 4634 void RenderIcon(Icon settings) 4635 { 4636 if (settings != null) 4637 { 4638 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : ""; 4639 4640 if (settings.Name != null) 4641 { 4642 if (string.IsNullOrEmpty(settings.Label)) 4643 { 4644 WriteLiteral(" <i"); 4645 BeginWriteAttribute("class", " class=\"", 64657, "\"", 64715, 3); 4646 WriteAttributeValue("", 64665, settings.Prefix, 64665, 16, false); 4647 WriteAttributeValue(" ", 64681, settings.Name, 64682, 14, false); 4648 WriteAttributeValue(" ", 64696, settings.CssClass, 64697, 18, false); 4649 EndWriteAttribute(); 4650 WriteLiteral(" "); 4651 Write(color); 4652 WriteLiteral("></i>\r\n"); 4653 } 4654 else 4655 { 4656 if (settings.LabelPosition == IconLabelPosition.Before) 4657 { 4658 WriteLiteral(" <div"); 4659 BeginWriteAttribute("class", " class=\"", 64918, "\"", 64978, 3); 4660 WriteAttributeValue("", 64926, "u-flex", 64926, 6, true); 4661 WriteAttributeValue(" ", 64932, "u-flex--align-items-center", 64933, 27, true); 4662 WriteAttributeValue(" ", 64959, settings.CssClass, 64960, 18, false); 4663 EndWriteAttribute(); 4664 WriteLiteral(">"); 4665 Write(settings.Label); 4666 WriteLiteral(" <i"); 4667 BeginWriteAttribute("class", " class=\"", 64998, "\"", 65051, 3); 4668 WriteAttributeValue("", 65006, settings.Prefix, 65006, 16, false); 4669 WriteAttributeValue(" ", 65022, settings.Name, 65023, 14, false); 4670 WriteAttributeValue(" ", 65037, "u-margin-left", 65038, 14, true); 4671 EndWriteAttribute(); 4672 WriteLiteral(" "); 4673 Write(color); 4674 WriteLiteral("></i></div>\r\n"); 4675 } 4676 else 4677 { 4678 WriteLiteral(" <div"); 4679 BeginWriteAttribute("class", " class=\"", 65172, "\"", 65232, 3); 4680 WriteAttributeValue("", 65180, "u-flex", 65180, 6, true); 4681 WriteAttributeValue(" ", 65186, "u-flex--align-items-center", 65187, 27, true); 4682 WriteAttributeValue(" ", 65213, settings.CssClass, 65214, 18, false); 4683 EndWriteAttribute(); 4684 WriteLiteral("><i"); 4685 BeginWriteAttribute("class", " class=\"", 65236, "\"", 65302, 4); 4686 WriteAttributeValue("", 65244, settings.Prefix, 65244, 16, false); 4687 WriteAttributeValue(" ", 65260, settings.Name, 65261, 14, false); 4688 WriteAttributeValue(" ", 65275, "u-margin-right--lg", 65276, 19, true); 4689 WriteAttributeValue(" ", 65294, "u-w20px", 65295, 8, true); 4690 EndWriteAttribute(); 4691 WriteLiteral(" "); 4692 Write(color); 4693 WriteLiteral("></i>"); 4694 Write(settings.Label); 4695 WriteLiteral("</div>\r\n"); 4696 } 4697 } 4698 } 4699 else if (!string.IsNullOrEmpty(settings.Label)) 4700 { 4701 Write(settings.Label); 4702 4703 } 4704 } 4705 } 4706 4707 void RenderButton(Button settings) 4708 { 4709 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null)) 4710 { 4711 Dictionary<string, string> attributes = new Dictionary<string, string>(); 4712 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>(); 4713 if (settings.Disabled) { 4714 attributes.Add("disabled", "true"); 4715 classList.Add("disabled"); 4716 } 4717 4718 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle)) 4719 { 4720 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N"); 4721 RenderConfirmDialog(settings); 4722 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true"; 4723 } 4724 4725 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 4726 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 4727 if (!string.IsNullOrEmpty(settings.AltText)) 4728 { 4729 attributes.Add("title", settings.AltText); 4730 } 4731 else if (!string.IsNullOrEmpty(settings.Title)) 4732 { 4733 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty); 4734 cleanTitle = cleanTitle.Replace("&nbsp;", " "); 4735 attributes.Add("title", cleanTitle); 4736 } 4737 4738 var onClickEvents = new List<string>(); 4739 if (!string.IsNullOrEmpty(settings.OnClick)) 4740 { 4741 onClickEvents.Add(settings.OnClick); 4742 } 4743 if (!string.IsNullOrEmpty(settings.Href)) 4744 { 4745 if (settings.Href.Contains("javascript")) 4746 { 4747 settings.Href = settings.Href.Replace("http://", ""); 4748 } 4749 onClickEvents.Add("location.href='" + settings.Href + "'"); 4750 } 4751 if (onClickEvents.Count > 0) 4752 { 4753 attributes.Add("onClick", string.Join(";", onClickEvents)); 4754 } 4755 4756 if (settings.ButtonLayout != ButtonLayout.None) 4757 { 4758 classList.Add("btn"); 4759 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower(); 4760 if (btnLayout == "linkclean") 4761 { 4762 btnLayout = "link-clean"; //fix 4763 } 4764 classList.Add("btn--" + btnLayout); 4765 } 4766 4767 if (settings.Icon == null) 4768 { 4769 settings.Icon = new Icon(); 4770 } 4771 4772 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : ""; 4773 settings.Icon.Label = settings.Title; 4774 4775 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower()); 4776 4777 WriteLiteral(" <button"); 4778 BeginWriteAttribute("class", " class=\"", 68895, "\"", 68938, 2); 4779 WriteAttributeValue("", 68903, string.Join(" ", classList), 68903, 28, false); 4780 WriteAttributeValue(" ", 68931, "dw-mod", 68932, 7, true); 4781 EndWriteAttribute(); 4782 WriteLiteral(" "); 4783 Write(ComponentMethods.AddAttributes(attributes)); 4784 WriteLiteral(" "); 4785 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 4786 WriteLiteral(">"); 4787 RenderIcon(settings.Icon);WriteLiteral("</button>\r\n"); 4788 } 4789 } 4790 4791 void RenderConfirmDialog(Button settings) 4792 { 4793 Modal confirmDialog = new Modal { 4794 Id = settings.Id, 4795 Width = ModalWidth.Sm, 4796 Heading = new Heading 4797 { 4798 Level = 2, 4799 Title = settings.ConfirmTitle 4800 }, 4801 BodyText = settings.ConfirmText 4802 }; 4803 4804 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"}); 4805 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick }); 4806 4807 RenderModal(confirmDialog); 4808 } 4809 4810 void RenderLink(Link settings) 4811 { 4812 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null)) 4813 { 4814 Dictionary<string, string> attributes = new Dictionary<string, string>(); 4815 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>(); 4816 if (settings.Disabled) 4817 { 4818 attributes.Add("disabled", "true"); 4819 classList.Add("disabled"); 4820 } 4821 4822 if (!string.IsNullOrEmpty(settings.AltText)) 4823 { 4824 attributes.Add("title", settings.AltText); 4825 } 4826 else if (!string.IsNullOrEmpty(settings.Title)) 4827 { 4828 attributes.Add("title", settings.Title); 4829 } 4830 4831 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 4832 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 4833 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); } 4834 attributes.Add("href", settings.Href); 4835 4836 if (settings.ButtonLayout != ButtonLayout.None) 4837 { 4838 classList.Add("btn"); 4839 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower(); 4840 if (btnLayout == "linkclean") 4841 { 4842 btnLayout = "link-clean"; //fix 4843 } 4844 classList.Add("btn--" + btnLayout); 4845 } 4846 4847 if (settings.Icon == null) 4848 { 4849 settings.Icon = new Icon(); 4850 } 4851 settings.Icon.Label = settings.Title; 4852 4853 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None) 4854 { 4855 settings.Rel = LinkRelType.Noopener; 4856 } 4857 if (settings.Target != LinkTargetType.None) 4858 { 4859 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower()); 4860 } 4861 if (settings.Download) 4862 { 4863 attributes.Add("download", "true"); 4864 } 4865 if (settings.Rel != LinkRelType.None) 4866 { 4867 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower()); 4868 } 4869 4870 WriteLiteral(" <a"); 4871 BeginWriteAttribute("class", " class=\"", 72670, "\"", 72713, 2); 4872 WriteAttributeValue("", 72678, string.Join(" ", classList), 72678, 28, false); 4873 WriteAttributeValue(" ", 72706, "dw-mod", 72707, 7, true); 4874 EndWriteAttribute(); 4875 WriteLiteral(" "); 4876 Write(ComponentMethods.AddAttributes(attributes)); 4877 WriteLiteral(" "); 4878 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 4879 WriteLiteral(">Render(settings.Icon);</a>\r\n"); 4880 } 4881 } 4882 4883 void RenderRating(Rating settings) 4884 { 4885 if (settings.Score > 0) 4886 { 4887 int rating = settings.Score; 4888 string iconType = "fa-star"; 4889 4890 switch (settings.Type.ToString()) { 4891 case "Stars": 4892 iconType = "fa-star"; 4893 break; 4894 case "Hearts": 4895 iconType = "fa-heart"; 4896 break; 4897 case "Lemons": 4898 iconType = "fa-lemon"; 4899 break; 4900 case "Bombs": 4901 iconType = "fa-bomb"; 4902 break; 4903 } 4904 4905 WriteLiteral(" <div class=\"u-ta-right\">\r\n"); 4906 for (int i = 0; i < settings.OutOf; i++) 4907 { 4908 WriteLiteral(" <i"); 4909 BeginWriteAttribute("class", " class=\"", 73847, "\"", 73894, 2); 4910 WriteAttributeValue("", 73855, rating > i ? "fas" : "far", 73855, 29, false); 4911 WriteAttributeValue(" ", 73884, iconType, 73885, 9, false); 4912 EndWriteAttribute(); 4913 WriteLiteral("></i>\r\n"); 4914 } 4915 WriteLiteral(" </div>\r\n"); 4916 } 4917 } 4918 4919 void RenderNavigation(Navigation settings) { 4920 RenderNavigation(new 4921 { 4922 id = settings.Id, 4923 cssclass = settings.CssClass, 4924 startLevel = settings.StartLevel, 4925 endlevel = settings.EndLevel, 4926 expandmode = settings.Expandmode, 4927 sitemapmode = settings.SitemapMode, 4928 template = settings.Template 4929 }); 4930 } 4931 4932 void RenderLeftNavigation(LeftNavigation settings) { 4933 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id; 4934 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template; 4935 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel; 4936 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel; 4937 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode; 4938 4939 WriteLiteral(" <div class=\"grid__cell\">\r\n RenderNavigation(settings);\r\n </div> \r\n"); 4940 } 4941 4942 void RenderHeading(Heading settings) 4943 { 4944 if (settings != null && !string.IsNullOrEmpty(settings.Title)) 4945 { 4946 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : ""; 4947 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div"; 4948 4949 Write("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">"); 4950 4951 if (!string.IsNullOrEmpty(settings.Link)) 4952 { 4953 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None }); 4954 } 4955 else 4956 { 4957 if (settings.Icon == null) 4958 { 4959 settings.Icon = new Icon(); 4960 } 4961 settings.Icon.Label = settings.Title; 4962 RenderIcon(settings.Icon); 4963 } 4964 Write("</" + tagName + ">"); 4965 ; 4966 } 4967 } 4968 4969 void RenderImage(Image settings) 4970 { 4971 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None) 4972 { 4973 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 4974 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); } 4975 4976 if (settings.Caption != null) 4977 { 4978 WriteLiteral(" "); 4979 WriteLiteral("<div>\r\n"); 4980 } 4981 4982 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower(); 4983 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower(); 4984 4985 WriteLiteral(" <div"); 4986 BeginWriteAttribute("class", " class=\"", 77375, "\"", 77456, 5); 4987 WriteAttributeValue("", 77383, "image-filter", 77383, 12, true); 4988 WriteAttributeValue(" ", 77395, "image-filter--", 77396, 15, true); 4989 WriteAttributeValue("", 77410, primaryFilterClass, 77410, 19, false); 4990 WriteAttributeValue(" ", 77429, "u-position-relative", 77430, 20, true); 4991 WriteAttributeValue(" ", 77449, "dw-mod", 77450, 7, true); 4992 EndWriteAttribute(); 4993 WriteLiteral(" "); 4994 Write(ComponentMethods.AddAttributes(optionalAttributes)); 4995 WriteLiteral(">\r\n <div"); 4996 BeginWriteAttribute("class", " class=\"", 77536, "\"", 77599, 4); 4997 WriteAttributeValue("", 77544, "image-filter", 77544, 12, true); 4998 WriteAttributeValue(" ", 77556, "image-filter--", 77557, 15, true); 4999 WriteAttributeValue("", 77571, secondaryFilterClass, 77571, 21, false); 5000 WriteAttributeValue(" ", 77592, "dw-mod", 77593, 7, true); 5001 EndWriteAttribute(); 5002 WriteLiteral(">\r\n"); 5003 if (settings.Link != null) 5004 { 5005 WriteLiteral(" <a"); 5006 BeginWriteAttribute("href", " href=\"", 77713, "\"", 77734, 1); 5007 WriteAttributeValue("", 77720, settings.Link, 77720, 14, false); 5008 EndWriteAttribute(); 5009 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n"); 5010 } 5011 else 5012 { 5013 RenderTheImage(settings); 5014 } 5015 WriteLiteral(" </div>\r\n </div>\r\n"); 5016 5017 if (settings.Caption != null) 5018 { 5019 WriteLiteral(" <span class=\"image-caption dw-mod\">"); 5020 Write(settings.Caption); 5021 WriteLiteral("</span>\r\n "); 5022 WriteLiteral("</div>\r\n"); 5023 } 5024 } 5025 else 5026 { 5027 if (settings.Caption != null) 5028 { 5029 WriteLiteral(" "); 5030 WriteLiteral("<div>\r\n"); 5031 } 5032 if (!string.IsNullOrEmpty(settings.Link)) 5033 { 5034 WriteLiteral(" <a"); 5035 BeginWriteAttribute("href", " href=\"", 78477, "\"", 78498, 1); 5036 WriteAttributeValue("", 78484, settings.Link, 78484, 14, false); 5037 EndWriteAttribute(); 5038 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n"); 5039 } 5040 else 5041 { 5042 RenderTheImage(settings); 5043 } 5044 5045 if (settings.Caption != null) 5046 { 5047 WriteLiteral(" <span class=\"image-caption dw-mod\">"); 5048 Write(settings.Caption); 5049 WriteLiteral("</span>\r\n "); 5050 WriteLiteral("</div>\r\n"); 5051 } 5052 } 5053 } 5054 5055 void RenderTheImage(Image settings) 5056 { 5057 if (settings != null) 5058 { 5059 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg"; 5060 string placeholderImage = "/Files/Images/placeholder.gif"; 5061 string imageEngine = "/Admin/Public/GetImage.ashx?"; 5062 5063 string imageStyle = ""; 5064 5065 switch (settings.Style) 5066 { 5067 case ImageStyle.Ball: 5068 imageStyle = "grid__cell-img--ball"; 5069 break; 5070 5071 case ImageStyle.Triangle: 5072 imageStyle = "grid__cell-img--triangle"; 5073 break; 5074 } 5075 5076 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle) 5077 { 5078 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop; 5079 5080 if (settings.ImageDefault != null) 5081 { 5082 settings.ImageDefault.Height = settings.ImageDefault.Width; 5083 } 5084 if (settings.ImageMedium != null) 5085 { 5086 settings.ImageMedium.Height = settings.ImageMedium.Width; 5087 } 5088 if (settings.ImageSmall != null) 5089 { 5090 settings.ImageSmall.Height = settings.ImageSmall.Width; 5091 } 5092 } 5093 5094 string defaultImage = imageEngine; 5095 string imageSmall = ""; 5096 string imageMedium = ""; 5097 5098 if (settings.DisableImageEngine) 5099 { 5100 defaultImage = settings.Path; 5101 } 5102 else 5103 { 5104 if (settings.ImageDefault != null) 5105 { 5106 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault); 5107 5108 if (settings.Path.GetType() != typeof(string)) 5109 { 5110 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5111 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5112 } 5113 else 5114 { 5115 defaultImage += settings.Path != null ? "Image=" + settings.Path : ""; 5116 } 5117 5118 defaultImage += "&AlternativeImage=" + alternativeImage; 5119 } 5120 5121 if (settings.ImageSmall != null) 5122 { 5123 imageSmall = "data-src-small=\"" + imageEngine; 5124 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall); 5125 5126 if (settings.Path.GetType() != typeof(string)) 5127 { 5128 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5129 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5130 } 5131 else 5132 { 5133 imageSmall += settings.Path != null ? "Image=" + settings.Path : ""; 5134 } 5135 5136 imageSmall += "&alternativeImage=" + alternativeImage; 5137 5138 imageSmall += "\""; 5139 } 5140 5141 if (settings.ImageMedium != null) 5142 { 5143 imageMedium = "data-src-medium=\"" + imageEngine; 5144 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium); 5145 5146 if (settings.Path.GetType() != typeof(string)) 5147 { 5148 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5149 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5150 } 5151 else 5152 { 5153 imageMedium += settings.Path != null ? "Image=" + settings.Path : ""; 5154 } 5155 5156 imageMedium += "&alternativeImage=" + alternativeImage; 5157 5158 imageMedium += "\""; 5159 } 5160 } 5161 5162 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5163 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); } 5164 if (!string.IsNullOrEmpty(settings.Title)) 5165 { 5166 optionalAttributes.Add("alt", settings.Title); 5167 optionalAttributes.Add("title", settings.Title); 5168 } 5169 5170 if (settings.DisableLazyLoad) 5171 { 5172 WriteLiteral(" <img"); 5173 BeginWriteAttribute("id", " id=\"", 83977, "\"", 83994, 1); 5174 WriteAttributeValue("", 83982, settings.Id, 83982, 12, false); 5175 EndWriteAttribute(); 5176 BeginWriteAttribute("class", " class=\"", 83995, "\"", 84040, 3); 5177 WriteAttributeValue("", 84003, imageStyle, 84003, 11, false); 5178 WriteAttributeValue(" ", 84014, settings.CssClass, 84015, 18, false); 5179 WriteAttributeValue(" ", 84033, "dw-mod", 84034, 7, true); 5180 EndWriteAttribute(); 5181 BeginWriteAttribute("src", " src=\"", 84041, "\"", 84060, 1); 5182 WriteAttributeValue("", 84047, defaultImage, 84047, 13, false); 5183 EndWriteAttribute(); 5184 WriteLiteral(" "); 5185 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5186 WriteLiteral(" "); 5187 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5188 WriteLiteral(" />\r\n"); 5189 } 5190 else 5191 { 5192 5193 WriteLiteral(" <img"); 5194 BeginWriteAttribute("id", " id=\"", 84258, "\"", 84275, 1); 5195 WriteAttributeValue("", 84263, settings.Id, 84263, 12, false); 5196 EndWriteAttribute(); 5197 BeginWriteAttribute("class", " class=\"", 84276, "\"", 84321, 3); 5198 WriteAttributeValue("", 84284, imageStyle, 84284, 11, false); 5199 WriteAttributeValue(" ", 84295, settings.CssClass, 84296, 18, false); 5200 WriteAttributeValue(" ", 84314, "dw-mod", 84315, 7, true); 5201 EndWriteAttribute(); 5202 WriteLiteral(" loading=\"lazy\""); 5203 BeginWriteAttribute("src", " src=\"", 84337, "\"", 84356, 1); 5204 WriteAttributeValue("", 84343, defaultImage, 84343, 13, false); 5205 EndWriteAttribute(); 5206 WriteLiteral(" "); 5207 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5208 WriteLiteral(" "); 5209 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5210 WriteLiteral(" />\r\n"); 5211 } 5212 } 5213 } 5214 5215 void RenderHiddenField(HiddenField settings) { 5216 var attributes = new Dictionary<string, string>(); 5217 attributes.Add("type", "hidden"); 5218 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5219 if (settings.Value != null) { attributes.Add("value", settings.Value); } 5220 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 5221 5222 WriteLiteral(" <input "); 5223 Write(ComponentMethods.AddAttributes(attributes)); 5224 WriteLiteral(" "); 5225 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5226 WriteLiteral("/>\r\n"); 5227 } 5228 5229 void RenderRadioButtonField(RadioButtonField settings) 5230 { 5231 var attributes = new Dictionary<string, string>(); 5232 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id)) 5233 { 5234 settings.Id = Guid.NewGuid().ToString("N"); 5235 } 5236 5237 /*base settings*/ 5238 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5239 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); } 5240 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); } 5241 if (settings.Disabled) { attributes.Add("disabled", "true"); } 5242 if (settings.Required) { attributes.Add("required", "true"); } 5243 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 5244 /*end*/ 5245 5246 attributes.Add("type", "radio"); 5247 if (settings.Checked) { attributes.Add("checked", "true"); } 5248 settings.CssClass = "form__control " + settings.CssClass; 5249 if (settings.Value != null) { attributes.Add("value", settings.Value); } 5250 5251 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value); 5252 5253 WriteLiteral(" <div"); 5254 BeginWriteAttribute("class", " class=\"", 86676, "\"", 86734, 3); 5255 WriteAttributeValue("", 86684, "form__field-group", 86684, 17, true); 5256 WriteAttributeValue(" ", 86701, settings.WrapperCssClass, 86702, 25, false); 5257 WriteAttributeValue(" ", 86727, "dw-mod", 86728, 7, true); 5258 EndWriteAttribute(); 5259 WriteLiteral(">\r\n <input "); 5260 Write(ComponentMethods.AddAttributes(resultAttributes)); 5261 WriteLiteral(" class=\""); 5262 Write(settings.CssClass); 5263 WriteLiteral(" dw-mod\" />\r\n"); 5264 if (!string.IsNullOrEmpty(settings.Label)) 5265 { 5266 WriteLiteral(" <label"); 5267 BeginWriteAttribute("for", " for=\"", 86939, "\"", 86957, 1); 5268 WriteAttributeValue("", 86945, settings.Id, 86945, 12, false); 5269 EndWriteAttribute(); 5270 WriteLiteral(" class=\"dw-mod\">"); 5271 Write(settings.Label); 5272 WriteLiteral("</label>\r\n"); 5273 } 5274 if (!string.IsNullOrEmpty(settings.HelpText)) 5275 { 5276 WriteLiteral(" <small class=\"form__help-text\">"); 5277 Write(settings.HelpText); 5278 WriteLiteral("</small>\r\n"); 5279 } 5280 WriteLiteral(" Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n"); 5281 } 5282 5283 void RenderRadioButtonListField(RadioButtonListField settings) 5284 { 5285 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; } 5286 5287 WriteLiteral(" <div"); 5288 BeginWriteAttribute("class", " class=\"", 87672, "\"", 87746, 4); 5289 WriteAttributeValue("", 87680, "form__field-group", 87680, 17, true); 5290 WriteAttributeValue(" ", 87697, settings.WrapperCssClass, 87698, 25, false); 5291 WriteAttributeValue(" ", 87723, "u-margin-bottom", 87724, 16, true); 5292 WriteAttributeValue(" ", 87739, "dw-mod", 87740, 7, true); 5293 EndWriteAttribute(); 5294 WriteLiteral(" "); 5295 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5296 WriteLiteral(">\r\n"); 5297 if (!string.IsNullOrEmpty(settings.Label)) 5298 { 5299 WriteLiteral(" <label>"); 5300 Write(settings.Label); 5301 WriteLiteral("</label>\r\n"); 5302 } 5303 if (!string.IsNullOrEmpty(settings.HelpText)) 5304 { 5305 WriteLiteral(" <small class=\"form__help-text\">"); 5306 Write(settings.HelpText); 5307 WriteLiteral("</small>\r\n"); 5308 } 5309 WriteLiteral("\r\n"); 5310 foreach (var item in settings.Options) 5311 { 5312 if (settings.Required) 5313 { 5314 item.Required = true; 5315 } 5316 if (settings.Disabled) 5317 { 5318 item.Disabled = true; 5319 } 5320 if (!string.IsNullOrEmpty(settings.Name)) 5321 { 5322 item.Name = settings.Name; 5323 } 5324 if (settings.Value != null && settings.Value == item.Value) 5325 { 5326 item.Checked = true; 5327 } 5328 if (!string.IsNullOrEmpty(settings.OnClick)) 5329 { 5330 item.OnClick += settings.OnClick; 5331 } 5332 if (!string.IsNullOrEmpty(settings.OnChange)) 5333 { 5334 item.OnChange += settings.OnChange; 5335 } 5336 if (!string.IsNullOrEmpty(settings.CssClass)) 5337 { 5338 item.CssClass += settings.CssClass; 5339 } 5340 Render(item); 5341 } 5342 WriteLiteral("\r\n Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n"); 5343 } 5344 5345 void RenderForm(Form settings) { 5346 if (settings != null) 5347 { 5348 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5349 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); }; 5350 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); }; 5351 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); }; 5352 var enctypes = new Dictionary<string, string> 5353 { 5354 { "multipart", "multipart/form-data" }, 5355 { "text", "text/plain" }, 5356 { "application", "application/x-www-form-urlencoded" } 5357 }; 5358 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); }; 5359 optionalAttributes.Add("method", settings.Method.ToString()); 5360 5361 if (!string.IsNullOrEmpty(settings.FormStartMarkup)) 5362 { 5363 Write(settings.FormStartMarkup); 5364 5365 } 5366 else 5367 { 5368 WriteLiteral(" "); 5369 WriteLiteral("<form class=\""); 5370 Write(settings.CssClass); 5371 WriteLiteral(" u-no-margin dw-mod\" "); 5372 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5373 WriteLiteral(" "); 5374 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5375 WriteLiteral(">\r\n"); 5376 } 5377 5378 foreach (var field in settings.GetFields()) 5379 { 5380 Render(field); 5381 } 5382 5383 WriteLiteral(" "); 5384 WriteLiteral("</form>\r\n"); 5385 } 5386 } 5387 5388 void RenderText(Text settings) 5389 { 5390 Write(settings.Content); 5391 5392 } 5393 5394 void RenderContentModule(ContentModule settings) { 5395 if (!string.IsNullOrEmpty(settings.Content)) 5396 { 5397 Write(settings.Content); 5398 5399 } 5400 } 5401 5402 void RenderModal(Modal settings) { 5403 if (settings != null) 5404 { 5405 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N"); 5406 5407 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : ""; 5408 5409 WriteLiteral(" <input type=\"checkbox\""); 5410 BeginWriteAttribute("id", " id=\"", 92142, "\"", 92169, 2); 5411 WriteAttributeValue("", 92147, modalId, 92147, 10, false); 5412 WriteAttributeValue("", 92157, "ModalTrigger", 92157, 12, true); 5413 EndWriteAttribute(); 5414 WriteLiteral(" class=\"modal-trigger\" "); 5415 Write(onchange); 5416 WriteLiteral(" />\r\n"); 5417 WriteLiteral(" <div class=\"modal-container\">\r\n"); 5418 if (!settings.DisableDarkOverlay) 5419 { 5420 WriteLiteral(" <label"); 5421 BeginWriteAttribute("for", " for=\"", 92349, "\"", 92377, 2); 5422 WriteAttributeValue("", 92355, modalId, 92355, 10, false); 5423 WriteAttributeValue("", 92365, "ModalTrigger", 92365, 12, true); 5424 EndWriteAttribute(); 5425 BeginWriteAttribute("id", " id=\"", 92378, "\"", 92405, 2); 5426 WriteAttributeValue("", 92383, modalId, 92383, 10, false); 5427 WriteAttributeValue("", 92393, "ModalOverlay", 92393, 12, true); 5428 EndWriteAttribute(); 5429 WriteLiteral(" class=\"modal-overlay\"></label>\r\n"); 5430 } 5431 WriteLiteral(" <div"); 5432 BeginWriteAttribute("class", " class=\"", 92478, "\"", 92587, 5); 5433 WriteAttributeValue("", 92486, "modal", 92486, 5, true); 5434 WriteAttributeValue(" ", 92491, "modal--", 92492, 8, true); 5435 WriteAttributeValue("", 92499, settings.Width.ToString().ToLower(), 92499, 36, false); 5436 WriteAttributeValue(" ", 92535, "modal-height--", 92536, 15, true); 5437 WriteAttributeValue("", 92550, settings.Height.ToString().ToLower(), 92550, 37, false); 5438 EndWriteAttribute(); 5439 BeginWriteAttribute("id", " id=\"", 92588, "\"", 92608, 2); 5440 WriteAttributeValue("", 92593, modalId, 92593, 10, false); 5441 WriteAttributeValue("", 92603, "Modal", 92603, 5, true); 5442 EndWriteAttribute(); 5443 WriteLiteral(">\r\n"); 5444 if (settings.Heading != null) 5445 { 5446 if (!string.IsNullOrEmpty(settings.Heading.Title)) 5447 { 5448 WriteLiteral(" <div class=\"modal__header\">\r\n RenderHeading(settings.Heading);\r\n </div>\r\n"); 5449 } 5450 } 5451 WriteLiteral(" <div"); 5452 BeginWriteAttribute("class", " class=\"", 93023, "\"", 93118, 2); 5453 WriteAttributeValue("", 93031, "modal__body", 93031, 11, true); 5454 WriteAttributeValue(" ", 93042, settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "", 93043, 75, false); 5455 EndWriteAttribute(); 5456 WriteLiteral(">\r\n"); 5457 if (!string.IsNullOrEmpty(settings.BodyText)) 5458 { 5459 Write(settings.BodyText); 5460 5461 } 5462 if (settings.BodyTemplate != null) 5463 { 5464 Write(settings.BodyTemplate); 5465 5466 } 5467 5468 var actions = settings.GetActions(); 5469 WriteLiteral(" </div>\r\n"); 5470 if (actions.Length > 0) 5471 { 5472 WriteLiteral(" <div class=\"modal__footer\">\r\n"); 5473 foreach (var action in actions) 5474 { 5475 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") { 5476 action.CssClass += " u-no-margin"; 5477 } else { 5478 action.CssClass += " u-full-width u-margin-bottom"; 5479 } 5480 5481 Render(action); 5482 } 5483 WriteLiteral(" </div>\r\n"); 5484 } 5485 WriteLiteral(" <label class=\"modal__close-btn\""); 5486 BeginWriteAttribute("for", " for=\"", 94362, "\"", 94390, 2); 5487 WriteAttributeValue("", 94368, modalId, 94368, 10, false); 5488 WriteAttributeValue("", 94378, "ModalTrigger", 94378, 12, true); 5489 EndWriteAttribute(); 5490 WriteLiteral("></label>\r\n </div>\r\n </div>\r\n"); 5491 } 5492 } 5493 5494 void RenderMediaListItem(MediaListItem settings) 5495 { 5496 WriteLiteral(" <div"); 5497 BeginWriteAttribute("class", " class=\"", 94628, "\"", 94677, 3); 5498 WriteAttributeValue("", 94636, "media-list-item", 94636, 15, true); 5499 WriteAttributeValue(" ", 94651, settings.CssClass, 94652, 18, false); 5500 WriteAttributeValue(" ", 94670, "dw-mod", 94671, 7, true); 5501 EndWriteAttribute(); 5502 WriteLiteral(" "); 5503 Write(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : ""); 5504 WriteLiteral(">\r\n"); 5505 if (!string.IsNullOrEmpty(settings.Label)) 5506 { 5507 if (!string.IsNullOrEmpty(settings.Link)) 5508 { 5509 Render(new Link 5510 { 5511 Href = settings.Link, 5512 CssClass = "media-list-item__sticker dw-mod", 5513 ButtonLayout = ButtonLayout.None, 5514 Title = settings.Label, 5515 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : "" 5516 }); 5517 } 5518 else if (!string.IsNullOrEmpty(settings.OnClick)) 5519 { 5520 WriteLiteral(" <span class=\"media-list-item__sticker dw-mod\""); 5521 BeginWriteAttribute("onclick", " onclick=\"", 95485, "\"", 95514, 1); 5522 WriteAttributeValue("", 95495, settings.OnClick, 95495, 19, false); 5523 EndWriteAttribute(); 5524 WriteLiteral(">\r\n <span class=\"u-uppercase\">"); 5525 Write(settings.Label); 5526 WriteLiteral("</span>\r\n </span>\r\n"); 5527 } 5528 else 5529 { 5530 WriteLiteral(" <span class=\"media-list-item__sticker media-list-item__sticker--no-link dw-mod\">\r\n <span class=\"u-uppercase\">"); 5531 Write(settings.Label); 5532 WriteLiteral("</span>\r\n </span>\r\n"); 5533 } 5534 } 5535 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"); 5536 if (!string.IsNullOrEmpty(settings.Title)) 5537 { 5538 if (!string.IsNullOrEmpty(settings.Link)) 5539 { 5540 Render(new Link 5541 { 5542 Href = settings.Link, 5543 CssClass = "media-list-item__name dw-mod", 5544 ButtonLayout = ButtonLayout.None, 5545 Title = settings.Title, 5546 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : "" 5547 }); 5548 } 5549 else if (!string.IsNullOrEmpty(settings.OnClick)) 5550 { 5551 WriteLiteral(" <span class=\"media-list-item__name dw-mod\""); 5552 BeginWriteAttribute("onclick", " onclick=\"", 97011, "\"", 97040, 1); 5553 WriteAttributeValue("", 97021, settings.OnClick, 97021, 19, false); 5554 EndWriteAttribute(); 5555 WriteLiteral(">"); 5556 Write(settings.Title); 5557 WriteLiteral("</span>\r\n"); 5558 } 5559 else 5560 { 5561 WriteLiteral(" <span class=\"media-list-item__name media-list-item__name--no-link dw-mod\">"); 5562 Write(settings.Title); 5563 WriteLiteral("</span>\r\n"); 5564 } 5565 } 5566 WriteLiteral("\r\n"); 5567 if (!string.IsNullOrEmpty(settings.Status)) 5568 { 5569 WriteLiteral(" <div class=\"media-list-item__state dw-mod\">"); 5570 Write(settings.Status); 5571 WriteLiteral("</div>\r\n"); 5572 } 5573 WriteLiteral(" </div>\r\n"); 5574 5575 settings.InfoTable.CssClass += " media-list-item__parameters-table"; 5576 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"); 5577 5578 var actions = settings.GetActions(); 5579 5580 foreach (ButtonBase action in actions) 5581 { 5582 action.ButtonLayout = ButtonLayout.None; 5583 action.CssClass += " media-list-item__action link"; 5584 5585 Render(action); 5586 } 5587 WriteLiteral(" </div>\r\n\r\n"); 5588 if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title)) 5589 { 5590 settings.SelectButton.CssClass += " u-no-margin"; 5591 5592 WriteLiteral(" <div class=\"media-list-item__action-button\">\r\n Render(settings.SelectButton);\r\n </div>\r\n"); 5593 } 5594 WriteLiteral(" </div>\r\n </div>\r\n </div>\r\n"); 5595 } 5596 5597 void RenderTable(Table settings) 5598 { 5599 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5600 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5601 5602 var enumToClasses = new Dictionary<TableDesign, string> 5603 { 5604 { TableDesign.Clean, "table--clean" }, 5605 { TableDesign.Bordered, "table--bordered" }, 5606 { TableDesign.Striped, "table--striped" }, 5607 { TableDesign.Hover, "table--hover" }, 5608 { TableDesign.Compact, "table--compact" }, 5609 { TableDesign.Condensed, "table--condensed" }, 5610 { TableDesign.NoTopBorder, "table--no-top-border" } 5611 }; 5612 string tableDesignClass = ""; 5613 if (settings.Design != TableDesign.None) 5614 { 5615 tableDesignClass = enumToClasses[settings.Design]; 5616 } 5617 5618 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); } 5619 5620 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5621 5622 WriteLiteral(" <table "); 5623 Write(ComponentMethods.AddAttributes(resultAttributes)); 5624 WriteLiteral(">\r\n"); 5625 if (settings.Header != null) 5626 { 5627 WriteLiteral(" <thead>\r\n Render(settings.Header);\r\n </thead>\r\n"); 5628 } 5629 WriteLiteral(" <tbody>\r\n"); 5630 foreach (var row in settings.Rows) 5631 { 5632 Render(row); 5633 } 5634 WriteLiteral(" </tbody>\r\n"); 5635 if (settings.Footer != null) 5636 { 5637 WriteLiteral(" <tfoot>\r\n Render(settings.Footer);\r\n </tfoot>\r\n"); 5638 } 5639 WriteLiteral(" </table>\r\n"); 5640 } 5641 5642 void RenderTableRow(TableRow settings) 5643 { 5644 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5645 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5646 5647 var enumToClasses = new Dictionary<TableRowDesign, string> 5648 { 5649 { TableRowDesign.NoBorder, "table__row--no-border" }, 5650 { TableRowDesign.Border, "table__row--border" }, 5651 { TableRowDesign.TopBorder, "table__row--top-line" }, 5652 { TableRowDesign.BottomBorder, "table__row--bottom-line" }, 5653 { TableRowDesign.Solid, "table__row--solid" } 5654 }; 5655 5656 string tableRowDesignClass = ""; 5657 if (settings.Design != TableRowDesign.None) 5658 { 5659 tableRowDesignClass = enumToClasses[settings.Design]; 5660 } 5661 5662 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); } 5663 5664 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5665 5666 WriteLiteral(" <tr "); 5667 Write(ComponentMethods.AddAttributes(resultAttributes)); 5668 WriteLiteral(">\r\n"); 5669 foreach (var cell in settings.Cells) 5670 { 5671 if (settings.IsHeaderRow) 5672 { 5673 cell.IsHeader = true; 5674 } 5675 Render(cell); 5676 } 5677 WriteLiteral(" </tr>\r\n"); 5678 } 5679 5680 void RenderTableCell(TableCell settings) 5681 { 5682 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5683 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5684 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); } 5685 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); } 5686 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); } 5687 5688 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5689 5690 string tagName = settings.IsHeader ? "th" : "td"; 5691 5692 Write("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">"); 5693 Write(settings.Content); 5694 Write("</" + tagName + ">"); 5695 ; 5696 } 5697 5698 BlocksPage articlePage = BlocksPage.GetBlockPage("DynamicArticle"); 5699 5700 public string GetParentSettingsItem(string systemName) 5701 { 5702 string item = null; 5703 5704 Dynamicweb.Content.Page current = Dynamicweb.Services.Pages.GetPage(Model.ID); 5705 while (current != null && current.Parent != current) 5706 { 5707 var temp = current.Item != null ? current.Item[systemName] : ""; 5708 5709 if (temp != null) 5710 { 5711 item = temp.ToString(); 5712 5713 if (!String.IsNullOrEmpty(item) && !String.Equals("default", item, StringComparison.OrdinalIgnoreCase)) 5714 { 5715 break; 5716 } 5717 } 5718 5719 current = current.Parent; 5720 } 5721 5722 return item; 5723 } 5724 5725 public string GetArticleCategory(int pageId) 5726 { 5727 string categoryName = null; 5728 5729 //Secure that the article is not in the root folder = Actual has a category 5730 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null) 5731 { 5732 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null) 5733 { 5734 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType)) 5735 { 5736 categoryName = Dynamicweb.Services.Pages.GetPage(pageId).Parent.GetDisplayName(); 5737 } 5738 } 5739 } 5740 5741 return categoryName; 5742 } 5743 5744 public string GetArticleCategoryColor(int pageId) 5745 { 5746 string categoryColor = ""; 5747 5748 //Secure that the article is not in the root folder = Actual has a category 5749 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null) 5750 { 5751 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null) 5752 { 5753 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType)) 5754 { 5755 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"] != null) 5756 { 5757 var service = new ColorSwatchService(); 5758 categoryColor = Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"].ToString(); 5759 5760 if (!categoryColor.Contains("#")) 5761 { 5762 categoryColor = service.GetHexColor(Converter.ToInt32(Model.Area.ID), categoryColor); 5763 } 5764 } 5765 } 5766 } 5767 } 5768 5769 return categoryColor; 5770 } 5771 } 5772 } 5773 #pragma warning restore 1591 5774

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