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 1698: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 1699: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1701: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1703: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1790: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1791: 'ListViewModel.Options' is obsolete: 'Use the GetAllOptions extension method instead'
Line 1827: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1966: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1986: Argument 1: cannot convert from 'void' to 'object'
Line 5119: The variable 'placeholderImage' is assigned but its value is never used
Line 5763: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5789: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5791: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5793: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5795: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5808: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5810: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5812: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5814: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5817: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)

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

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