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 104: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 105: The using directive for 'Dynamicweb.Core.Encoders' appeared previously in this namespace
Line 1693: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 1694: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1696: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1698: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1785: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1786: 'ListViewModel.Options' is obsolete: 'Use the GetAllOptions extension method instead'
Line 1822: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1961: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1981: Argument 1: cannot convert from 'void' to 'object'
Line 5172: The variable 'placeholderImage' is assigned but its value is never used
Line 5816: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5842: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5844: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5846: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5848: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5861: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5863: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5865: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5867: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5870: 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 using Dynamicweb.Core; 105 using Dynamicweb.Core.Encoders; 106 internal class RazorEngine_537e911f30074bb69c02d3fa7dd662ac : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 107 { 108 #pragma warning disable 1998 109 public async override global::System.Threading.Tasks.Task ExecuteAsync() 110 { 111 WriteLiteral("\r\n"); 112 WriteLiteral("\r\n"); 113 WriteLiteral("\r\n"); 114 WriteLiteral("\r\n"); 115 WriteLiteral("\r\n"); 116 WriteLiteral("\r\n\r\n\r\n"); 117 WriteLiteral("\r\n"); 118 WriteLiteral("\r\n"); 119 WriteLiteral("\r\n"); 120 WriteLiteral("\r\n"); 121 WriteLiteral("\r\n"); 122 WriteLiteral("\r\n"); 123 WriteLiteral("\r\n"); 124 WriteLiteral("\r\n"); 125 WriteLiteral("\r\n"); 126 WriteLiteral("\r\n"); 127 WriteLiteral("\r\n"); 128 WriteLiteral("\r\n"); 129 WriteLiteral("\r\n"); 130 WriteLiteral("\r\n\r\n"); 131 WriteLiteral("\r\n"); 132 WriteLiteral("\r\n"); 133 WriteLiteral("\r\n"); 134 WriteLiteral("\r\n"); 135 WriteLiteral("\r\n"); 136 WriteLiteral("\r\n"); 137 WriteLiteral("\r\n"); 138 WriteLiteral("\r\n"); 139 WriteLiteral("\r\n"); 140 WriteLiteral("\r\n"); 141 WriteLiteral("\r\n"); 142 WriteLiteral("\r\n"); 143 WriteLiteral("\r\n"); 144 WriteLiteral("\r\n"); 145 WriteLiteral("\r\n"); 146 WriteLiteral("\r\n"); 147 WriteLiteral("\r\n"); 148 WriteLiteral("\r\n"); 149 WriteLiteral("\r\n"); 150 WriteLiteral("\r\n"); 151 WriteLiteral("\r\n"); 152 WriteLiteral("\r\n"); 153 WriteLiteral("\r\n"); 154 WriteLiteral("\r\n\r\n"); 155 WriteLiteral("\r\n"); 156 WriteLiteral("\r\n"); 157 WriteLiteral("\r\n\r\n"); 158 WriteLiteral("\r\n"); 159 WriteLiteral("\r\n"); 160 WriteLiteral("\r\n"); 161 WriteLiteral("\r\n\r\n"); 162 WriteLiteral("\r\n"); 163 WriteLiteral("\r\n"); 164 WriteLiteral("\r\n"); 165 WriteLiteral("\r\n"); 166 167 Context.Current.Response.AddHeader("access-control-allow-origin", "*"); 168 169 string bodyClass = ""; 170 string template = "real"; 171 string TemplateUrl = "/Files/Templates/Designs/rm/"; 172 string MetaTitle = Model.Title; 173 string MetaDescription = Model.Description; 174 string MetaKeywords = Model.Keywords; 175 string searchClass = ""; 176 177 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css")); 178 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}"; 179 180 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg"; 181 182 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2"); 183 184 // Indstillinger 185 var settings_Frontpage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : ""; 186 var settings_Boligside = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : ""; 187 var settings_Maeglersogning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : ""; 188 var settings_MinSide = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : ""; 189 var settings_Sibling_Site = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : ""; 190 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : ""; 191 var settings_Product_Group = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : ""; 192 var settings_Boligagent = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : ""; 193 var settings_Persondatapolitik = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : ""; 194 195 // API 196 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : ""; 197 var settings_BoligListFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : ""; 198 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : ""; 199 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : ""; 200 var settings_BoligCountFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : ""; 201 var settings_BoligMapFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : ""; 202 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"]; 203 204 // Forside 205 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : ""; 206 var settings_FrontpageVideo = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : ""; 207 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : ""; 208 209 // Tracking 210 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : ""; 211 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]))) 212 { 213 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]); 214 } 215 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : ""; 216 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : ""; 217 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : ""; 218 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]); 219 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]); 220 var settings_Google_Optimize_Id = Converter.ToString(SettingsItem["Google_Optimize_Id"]); 221 222 // Indstillinger for brugerfunktioner 223 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : ""; 224 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : ""; 225 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : ""; 226 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : ""; 227 228 int createUserParagraphId = 0; 229 int loginParagraphId = 0; 230 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId); 231 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId); 232 233 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv. 234 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv) 235 int searchPageId = GetPageSettingsPageId("Boligside"); 236 if (searchPageId == 0) 237 { 238 searchPageId = GetWebsiteSettingsPageId("Boligside"); 239 } 240 241 int boligsideId = GetPageSettingsPageId("Boligside"); 242 if (boligsideId == 0) 243 { 244 boligsideId = GetWebsiteSettingsPageId("Boligside"); 245 } 246 247 string productGroupFilter = String.Empty; 248 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null) 249 { 250 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString(); 251 } 252 253 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"])) 254 { 255 searchClass = "is-frontpage"; 256 } 257 258 bool isErhverv = false; 259 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null) 260 { 261 var s = Pageview.Page.PropertyItem["Erhverv"].ToString(); 262 Boolean.TryParse(s, out isErhverv); 263 } 264 265 bool isBrokerPage = false; 266 if (!string.IsNullOrEmpty(Model.Area.Item.GetString("M_glerGruppeId"))) 267 { 268 isBrokerPage = true; 269 bodyClass = ""; // Get rid of transparent header on brokerPage 270 } 271 272 string callTrackingId = Model.Item.GetString("CallTrackingId"); 273 274 RealEstate.User.Model.BrokerEmployee MyBroker = null; 275 try 276 { 277 var MyB = new RealEstate.User.MyBroker(); 278 MyBroker = MyB.GetMyBroker(); 279 } 280 catch 281 { 282 // Ignore 283 } 284 285 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : ""); 286 string querySearchNameAttr = "search"; 287 288 // Overwrite search with zipcodeinterval if set 289 if (Context.Current.Request.QueryString["zipcodeinterval"] != null) 290 { 291 querySearch = Context.Current.Request.QueryString["zipcodeinterval"]; 292 querySearchNameAttr = "zipcodeinterval"; 293 } 294 295 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : ""); 296 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : ""); 297 298 Dynamicweb.Security.UserManagement.User user = null; 299 int userID = 0; 300 string userName = ""; 301 string userEmail = ""; 302 string userPhone = ""; 303 string userZip = ""; 304 string userAddress = ""; 305 306 if (Dynamicweb.Security.UserManagement.UserContext.Current.IsLoggedOn) 307 { 308 user = Dynamicweb.Security.UserManagement.UserContext.Current.User; 309 userName = user.Name; 310 userEmail = user.Email; 311 userPhone = user.Phone; 312 userZip = user.Zip; 313 userAddress = user.Address; 314 userID = user.ID; 315 } 316 317 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode"); 318 string forgotPwTemplate = ""; 319 string forgotPwSender = ""; 320 string markerColor = ""; 321 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png"; 322 323 // Important - e-mail templates for forgotPw must be placed in "UserManagement/Login" folder 324 forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml"; 325 forgotPwSender = "noreply@mailreal.dk"; 326 markerColor = "#213960"; 327 328 var butikId = string.Empty; 329 string bEmail = string.Empty; 330 if (MyBroker != null && MyBroker.Broker != null) 331 { 332 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 333 bEmail = MyBroker.Broker.Item().GetString("Email"); 334 } 335 336 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment")); 337 338 var termsMail = "info@realmaeglerne.dk"; 339 WriteLiteral("\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta charset=\"utf-8\">\r\n <title>"); 340 Write(MetaTitle); 341 WriteLiteral("</title>\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n <meta name=\"description\""); 342 BeginWriteAttribute("content", " content=\"", 117041, "\"", 117067, 1); 343 WriteAttributeValue("", 117051, MetaDescription, 117051, 16, false); 344 EndWriteAttribute(); 345 WriteLiteral(">\r\n <meta name=\"keywords\""); 346 BeginWriteAttribute("content", " content=\"", 117096, "\"", 117119, 1); 347 WriteAttributeValue("", 117106, MetaKeywords, 117106, 13, false); 348 EndWriteAttribute(); 349 WriteLiteral(">\r\n <meta name=\"format-detection\" content=\"telephone=no\">\r\n <meta http-equiv=\"Expires\" content=\"60\">\r\n <meta name=\"robots\""); 350 BeginWriteAttribute("content", " content=\"", 117251, "\"", 117357, 3); 351 WriteAttributeValue("", 117261, Pageview.Area.Noindex ? "noindex" : "index", 117261, 46, false); 352 WriteAttributeValue("", 117307, ",", 117307, 1, true); 353 WriteAttributeValue("", 117308, Pageview.Area.Nofollow ? "nofollow" : "follow", 117308, 49, false); 354 EndWriteAttribute(); 355 WriteLiteral(">\r\n\r\n"); 356 WriteLiteral("\r\n "); 357 Write(RenderSnippet("OpenGraphTags")); 358 WriteLiteral("\r\n"); 359 if (!string.IsNullOrEmpty(settings_Google_Optimize_Id)) 360 { 361 WriteLiteral(" <!-- Google optimize script-->\r\n <script"); 362 BeginWriteAttribute("src", " src=\"", 117549, "\"", 117629, 2); 363 WriteAttributeValue("", 117555, "https://www.googleoptimize.com/optimize.js?id=", 117555, 46, true); 364 WriteAttributeValue("", 117601, settings_Google_Optimize_Id, 117601, 28, false); 365 EndWriteAttribute(); 366 WriteLiteral("></script>\r\n"); 367 } 368 WriteLiteral(" <!-- TrustBox script -->\r\n <script type=\"text/javascript\" src=\"//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js\" async></script>\r\n <!-- End TrustBox script -->\r\n\r\n <script type=\"application/ld+json\">\r\n {\r\n \""); 369 WriteLiteral("@context\": \"https://schema.org/\",\r\n \""); 370 WriteLiteral("@type\": \"WebSite\",\r\n \"name\": \"RealMæglerne\",\r\n \"url\": \"https://www.realmaeglerne.dk/\",\r\n \"potentialAction\": {\r\n \""); 371 WriteLiteral(@"@type"": ""SearchAction"", 372 ""target"": ""https://www.realmaeglerne.dk/find-maegler?q={search_term_string}"", 373 ""query-input"": ""required name=search_term_string"" 374 } 375 } 376 </script> 377 378 <script type=""application/ld+json""> 379 { 380 """); 381 WriteLiteral("@context\": \"https://schema.org\",\r\n \""); 382 WriteLiteral(@"@type"": ""Corporation"", 383 ""name"": ""RealMæglerne"", 384 ""alternateName"": ""R&B Mægler A/S"", 385 ""url"": ""https://www.realmaeglerne.dk"", 386 ""logo"": ""https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png"", 387 ""contactPoint"": { 388 """); 389 WriteLiteral(@"@type"": ""ContactPoint"", 390 ""telephone"": ""+4570237153"", 391 ""contactType"": ""sales"", 392 ""areaServed"": ""DK"", 393 ""availableLanguage"": ""Danish"" 394 }, 395 ""sameAs"": [ 396 ""https://www.facebook.com/realmaeglerne/"", 397 ""https://www.linkedin.com/company/realmæglerne/"", 398 ""https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g"", 399 ""https://www.realmaeglerne.dk/"" 400 ] 401 } 402 </script> 403 "); 404 Write(RenderSnippet("StructuredData")); 405 WriteLiteral("\r\n"); 406 WriteLiteral("\r\n"); 407 WriteLiteral(" <link rel=\"stylesheet\""); 408 BeginWriteAttribute("href", " href=\"", 119259, "\"", 119310, 2); 409 WriteAttributeValue("", 119266, TemplateUrl, 119266, 14, false); 410 WriteAttributeValue("", 119280, "assets/fontawesome/css/all.css", 119280, 30, true); 411 EndWriteAttribute(); 412 WriteLiteral(" async />\r\n <link rel=\"stylesheet\""); 413 BeginWriteAttribute("href", " href=\"", 119352, "\"", 119367, 1); 414 WriteAttributeValue("", 119359, mainCSS, 119359, 8, false); 415 EndWriteAttribute(); 416 WriteLiteral(" async />\r\n"); 417 418 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"])) 419 { 420 var cssErhvervFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/erhverv.min.css")); 421 string erhvervCSS = TemplateUrl + $"assets/dist/css/erhverv.min.css?{cssErhvervFileInfo.LastWriteTime.Ticks}"; 422 WriteLiteral(" <link rel=\"stylesheet\""); 423 BeginWriteAttribute("href", " href=\"", 119771, "\"", 119789, 1); 424 WriteAttributeValue("", 119778, erhvervCSS, 119778, 11, false); 425 EndWriteAttribute(); 426 WriteLiteral(" async>\r\n"); 427 } 428 WriteLiteral("\r\n\r\n <link rel=\"icon\" type=\"image/ico\""); 429 BeginWriteAttribute("href", " href=\"", 119858, "\"", 119922, 2); 430 WriteAttributeValue("", 119865, TemplateUrl, 119865, 14, false); 431 WriteAttributeValue("", 119879, "assets/images/favicons/favicon-real.ico?v=1", 119879, 43, true); 432 EndWriteAttribute(); 433 WriteLiteral(">\r\n <link rel=\"icon\" type=\"image/png\""); 434 BeginWriteAttribute("href", " href=\"", 119963, "\"", 120029, 2); 435 WriteAttributeValue("", 119970, TemplateUrl, 119970, 14, false); 436 WriteAttributeValue("", 119984, "assets/images/favicons/favicon-real-16x16.png", 119984, 45, true); 437 EndWriteAttribute(); 438 WriteLiteral(" sizes=\"16x16\">\r\n <link rel=\"icon\" type=\"image/png\""); 439 BeginWriteAttribute("href", " href=\"", 120084, "\"", 120150, 2); 440 WriteAttributeValue("", 120091, TemplateUrl, 120091, 14, false); 441 WriteAttributeValue("", 120105, "assets/images/favicons/favicon-real-32x32.png", 120105, 45, true); 442 EndWriteAttribute(); 443 WriteLiteral(" sizes=\"32x32\">\r\n <link rel=\"icon\" type=\"image/png\""); 444 BeginWriteAttribute("href", " href=\"", 120205, "\"", 120271, 2); 445 WriteAttributeValue("", 120212, TemplateUrl, 120212, 14, false); 446 WriteAttributeValue("", 120226, "assets/images/favicons/favicon-real-96x96.png", 120226, 45, true); 447 EndWriteAttribute(); 448 WriteLiteral(" sizes=\"96x96\">\r\n <meta name=\"google-site-verification\" content=\"hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg\" />\r\n\r\n"); 449 if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString())) 450 { 451 WriteLiteral(@" <script> 452 window.dataLayer = window.dataLayer || []; // must be placed above GTM script 453 </script> 454 <!-- Google Tag Manager --> 455 <script> 456 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 457 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 458 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 459 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 460 })(window,document,'script','dataLayer','"); 461 Write(settings_Google_Tag_Manager_ID); 462 WriteLiteral("\');</script>\r\n <!-- End Google Tag Manager -->\r\n"); 463 } 464 WriteLiteral("\r\n"); 465 if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId)) 466 { 467 WriteLiteral(" <script type=\"text/javascript\""); 468 BeginWriteAttribute("src", " src=\"", 121253, "\"", 121325, 2); 469 WriteAttributeValue("", 121259, "https://call.call-tracking.dk/getJavascript?custid=", 121259, 51, true); 470 WriteAttributeValue("", 121310, callTrackingId, 121310, 15, false); 471 EndWriteAttribute(); 472 WriteLiteral("></script>\r\n"); 473 } 474 WriteLiteral("\r\n"); 475 if (!String.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString())) 476 { 477 WriteLiteral(@" <!-- Begin Leadhub Pixel Code --> 478 <script> 479 (function(w,d,x,n,u,t,f,s,o){ 480 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){ 481 (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) 482 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '"); 483 Write(settings_Leadhub_Pixel_ID); 484 WriteLiteral("\');\r\n lhi(\'pageview\');\r\n </script>\r\n <!-- End Leadhub Pixel Code -->\r\n"); 485 } 486 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 + \""); 487 Write(settings_BoligCountFeed); 488 WriteLiteral("\";\r\n RMAPI.BoligListFeed = ApiPreFix + \""); 489 Write(settings_BoligListFeed); 490 WriteLiteral("\" + \"&refpageid="); 491 Write(Pageview.Page.ID); 492 WriteLiteral("\";\r\n RMAPI.BoligListFeedErhverv = \""); 493 Write(settings_BoligListFeedErhverv); 494 WriteLiteral("\";\r\n RMAPI.BoligListFeedMaegler = ApiPreFix + \""); 495 Write(settings_BoligListFeedMaegler); 496 WriteLiteral("\" + \"&refpageid="); 497 Write(Pageview.Page.ID); 498 WriteLiteral("\";\r\n RMAPI.BoligSearchFeed = ApiPreFix + \""); 499 Write(settings_BoligSearchFeed); 500 WriteLiteral("\";\r\n RMAPI.BoligMapFeed = ApiPreFix + \""); 501 Write(settings_BoligMapFeed); 502 WriteLiteral("\";\r\n RMAPI.Boligagent = \""); 503 Write(settings_Boligagent); 504 WriteLiteral("\";\r\n RMAPI.IsErhverv = "); 505 Write(isErhverv.ToString().ToLower()); 506 WriteLiteral(";\r\n RMAPI.ProductGroupFilter = \""); 507 Write(productGroupFilter); 508 WriteLiteral("\";\r\n RMAPI.ButikId = \""); 509 Write(butikId); 510 WriteLiteral("\";\r\n RMAPI.Boligvisning = false;\r\n RMAPI.RefPageId = \""); 511 Write(Pageview.Page.ID); 512 WriteLiteral("\";\r\n RMAPI.Template = \""); 513 Write(template); 514 WriteLiteral("\";\r\n RMAPI.SliderSettings = "); 515 Write(JsonConvert.SerializeObject(Settings.Site)); 516 WriteLiteral(";\r\n RMAPI.AdvisorSearchFeed = \""); 517 Write(settings_AdvisorSearchFeed); 518 WriteLiteral("\";\r\n RMAPI.LoadingIcon = \""); 519 Write(loadingIcon); 520 WriteLiteral("\";\r\n RMAPI.MarkerColor = \""); 521 Write(markerColor); 522 WriteLiteral("\";\r\n RMAPI.mapMarkerUrl = \""); 523 Write(mapMarkerUrl); 524 WriteLiteral("\";\r\n RMAPI.settings_ForgotPwPage = \""); 525 Write(settings_ForgotPwPage); 526 WriteLiteral("\";\r\n </script>\r\n\r\n"); 527 if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString())) 528 { 529 WriteLiteral(@" <!-- Facebook Pixel Code --> 530 <script> 531 !function (f, b, e, v, n, t, s) { 532 if (f.fbq) return; n = f.fbq = function () { 533 n.callMethod ? 534 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 535 }; 536 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; 537 n.queue = []; t = b.createElement(e); t.async = !0; 538 t.src = v; s = b.getElementsByTagName(e)[0]; 539 s.parentNode.insertBefore(t, s) 540 }(window, document, 'script', 541 'https://connect.facebook.net/en_US/fbevents.js'); 542 fbq('init', '"); 543 Write(settings_Facebook_App_ID); 544 WriteLiteral("\');\r\n fbq(\'track\', \'PageView\');\r\n </script>\r\n <noscript>\r\n <img height=\"1\" width=\"1\""); 545 BeginWriteAttribute("src", " src=\"", 124228, "\"", 124313, 3); 546 WriteAttributeValue("", 124234, "https://www.facebook.com/tr?id=", 124234, 31, true); 547 WriteAttributeValue("", 124265, settings_Facebook_App_ID, 124265, 25, false); 548 WriteAttributeValue("", 124290, "&ev=PageView&noscript=1", 124290, 23, true); 549 EndWriteAttribute(); 550 WriteLiteral(" />\r\n </noscript>\r\n <!-- End Facebook Pixel Code -->\r\n"); 551 } 552 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"); 553 BeginWriteAttribute("class", " class=\"", 124589, "\"", 124616, 2); 554 WriteAttributeValue("", 124597, template, 124597, 9, false); 555 WriteAttributeValue("", 124606, bodyClass, 124606, 10, false); 556 EndWriteAttribute(); 557 WriteLiteral(" data-spforgotpwtemplate=\""); 558 Write(forgotPwTemplate); 559 WriteLiteral("\" data-spforgotpwsender=\""); 560 Write(forgotPwSender); 561 WriteLiteral("\" data-spforgotpwsubject=\""); 562 Write(forgotPwSubject); 563 WriteLiteral("\" data-spsalesassesmentid=\""); 564 Write(salesAssessmentPageId); 565 WriteLiteral("\">\r\n"); 566 567 string logoUrl = TemplateUrl + (!Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg"); 568 WriteLiteral("\r\n"); 569 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) && GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID) 570 { 571 WriteLiteral(" <div class=\"top-search\">\r\n <div class=\"header logo\">\r\n <div class=\"logo\">\r\n <a href=\"/erhverv\">\r\n <img"); 572 BeginWriteAttribute("src", " src=\"", 125288, "\"", 125302, 1); 573 WriteAttributeValue("", 125294, logoUrl, 125294, 8, false); 574 EndWriteAttribute(); 575 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"); 576 577 578 var settings_BoligListErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : ""; 579 WriteLiteral(" <input type=\"hidden\" name=\"ID\""); 580 BeginWriteAttribute("value", " value=\'", 125869, "\'", 125903, 1); 581 WriteAttributeValue("", 125877, settings_BoligListErhverv, 125877, 26, false); 582 EndWriteAttribute(); 583 WriteLiteral(" id=\"searchPageId-top\" disabled=\"disabled\" />\r\n\r\n"); 584 if (Context.Current.Request["type"] == "egetforbrug") 585 { 586 WriteLiteral(" <input name=\"type\" type=\"hidden\" value=\"egetforbrug\" />\r\n <input name=\"investeringsejendom\" type=\"hidden\" value=\"0\" />\r\n"); 587 } 588 WriteLiteral(@" <div class=""row form-wrapper no-gutters""> 589 <div class=""col-xs-12 col-md-4 col-lg-5 col-searchbar""> 590 <div class=""searchbar float-label-container text-left""> 591 <label class=""float-label js-float-label-trigger"">"); 592 Write(Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer")); 593 WriteLiteral("</label>\r\n <input type=\"text\""); 594 BeginWriteAttribute("name", " name=\"", 126720, "\"", 126747, 1); 595 WriteAttributeValue("", 126727, querySearchNameAttr, 126727, 20, false); 596 EndWriteAttribute(); 597 WriteLiteral(" id=\"searchfield-top\" class=\"search-input js-float-label js-getdata\" tabindex=\"1\""); 598 BeginWriteAttribute("value", " value=\"", 126829, "\"", 126907, 1); 599 WriteAttributeValue("", 126837, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 126837, 70, false); 600 EndWriteAttribute(); 601 WriteLiteral(@" /> 602 </div> 603 </div> 604 <div class=""col-xs-12 col-md-5""> 605 <div class=""row no-gutters""> 606 <div class=""col-xs-12 col-md-6 input-col""> 607 <div class=""dropdown w-overlay float-label-container""> 608 <label class=""float-label js-float-label-trigger"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">"); 609 Write(Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype")); 610 WriteLiteral(@"</label> 611 <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> 612 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 613 <ul class=""bolig-dropdown list-unstyled""> 614 "); 615 616 RenderBoligTypeErhverv(); 617 WriteLiteral(@" </ul> 618 <span class=""border-fat""></span> 619 <div class=""d-none d-md-block""> 620 <button class=""btn btn-primary js-close-dropdown"">"); 621 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 622 WriteLiteral(@"</button> 623 </div> 624 <div class=""d-flex row d-md-none""> 625 <div class=""col-6""> 626 <button class=""btn btn-danger js-remove-filter"">"); 627 Write(Translate("Smartpage:Search.Annuller", "Annuller")); 628 WriteLiteral("</button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 629 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 630 WriteLiteral(@"</button> 631 </div> 632 </div> 633 </div> 634 635 </div> 636 </div> 637 <div class=""col-xs-12 col-md-6 input-col""> 638 <div class=""btn-dropdown p-3 border-top-bottom-right""> 639 <ul class=""two-column list-unstyled""> 640 <li> 641 <label class=""checkbox-container""> 642 "); 643 Write(Translate("Smartpage:Search.Erhverv.Leje", "Leje")); 644 WriteLiteral(@" 645 <input type=""checkbox"" name=""propertytype"" value=""leje"" class=""js-input-check"" /> 646 <span class=""checkmark""></span> 647 </label> 648 </li> 649 <li> 650 <label class=""checkbox-container""> 651 "); 652 Write(Translate("Smartpage:Search.Erhverv.Køb", "Køb")); 653 WriteLiteral(@" 654 <input type=""checkbox"" name=""propertytype"" value=""kob"" class=""js-input-check"" /> 655 <span class=""checkmark""></span> 656 </label> 657 </li> 658 </ul> 659 </div> 660 661 </div> 662 </div> 663 </div> 664 <div class=""col-xs-12 col-md-3 col-lg-2 d-none d-md-block""> 665 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 666 Write(Translate("Smartpage:Search.Søg", "Søg")); 667 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n"); 668 } 669 WriteLiteral("\r\n"); 670 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"])) 671 { 672 WriteLiteral(" <div class=\"header shortcuts\">\r\n <div class=\"header-shortcuts float-right\">\r\n"); 673 if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID) 674 { 675 WriteLiteral(" <a"); 676 BeginWriteAttribute("href", " href=\'", 131633, "\'", 131640, 0); 677 EndWriteAttribute(); 678 BeginWriteAttribute("class", " class=\"", 131641, "\"", 131757, 9); 679 WriteAttributeValue("", 131649, "search-menu", 131649, 11, true); 680 WriteAttributeValue(" ", 131660, "d-none", 131661, 7, true); 681 WriteAttributeValue(" ", 131667, "d-xl-flex", 131668, 10, true); 682 WriteAttributeValue(" ", 131677, "align-items-center", 131678, 19, true); 683 WriteAttributeValue(" ", 131696, "float-left", 131697, 11, true); 684 WriteAttributeValue(" ", 131707, "border-right", 131708, 13, true); 685 WriteAttributeValue(" ", 131720, "js-mainsearch", 131721, 14, true); 686 WriteAttributeValue(" ", 131734, "topsearch", 131735, 10, true); 687 WriteAttributeValue(" ", 131744, searchClass, 131745, 12, false); 688 EndWriteAttribute(); 689 WriteLiteral(">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i><span class=\"search-menu-text hidden d-md-block\"> "); 690 Write(Translate("Smartpage:Search.Søg", "Søg")); 691 WriteLiteral("</span>\r\n </a>\r\n"); 692 } 693 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"); 694 } 695 else 696 { 697 WriteLiteral(" <div class=\"header__container container\">\r\n <div class=\"header__logo\">\r\n <a href=\"/\""); 698 BeginWriteAttribute("title", " title=\"", 132357, "\"", 132365, 0); 699 EndWriteAttribute(); 700 WriteLiteral(">\r\n <img"); 701 BeginWriteAttribute("src", " src=\"", 132393, "\"", 132409, 1); 702 WriteAttributeValue("", 132399, logoUrl, 132399, 10, false); 703 EndWriteAttribute(); 704 BeginWriteAttribute("alt", " alt=\"", 132410, "\"", 132416, 0); 705 EndWriteAttribute(); 706 WriteLiteral(" />\r\n </a>\r\n </div>\r\n <div class=\"header__title\">\r\n <span>"); 707 Write(Translate("Custom:Header.Title", "RealMæglerne")); 708 WriteLiteral("</span> \r\n </div>\r\n"); 709 if (userID > 0) 710 { 711 WriteLiteral(@" <div class=""header__navigation d-none d-md-flex""> 712 <div class=""header__navigation""> 713 <div class=""header__Link""> 714 <ul> 715 <li class=""d-flex align-items-center""> 716 <svg xmlns=""http://www.w3.org/2000/svg"" width=""20"" height=""20"" viewBox=""0 0 20 20"" fill=""none""> 717 <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"" /> 718 "); 719 WriteLiteral(" </svg>\r\n <a class=\"ml-2\""); 720 BeginWriteAttribute("href", "\r\n href=\"", 133774, "\"", 133856, 2); 721 WriteAttributeValue("", 133822, "/Default.aspx?ID=", 133822, 17, true); 722 WriteAttributeValue("", 133839, settings_MinSide, 133839, 17, false); 723 EndWriteAttribute(); 724 WriteLiteral("\r\n target=\"_blank\""); 725 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 133914, "\"", 134064, 1); 726 WriteAttributeValue("", 133968, Translate("Custom:Accessibility.MyAccountLink", "Gå til Mit RealMæglerne - åbner i nyt vindue"), 133968, 96, false); 727 EndWriteAttribute(); 728 WriteLiteral(">\r\n "); 729 Write(Translate("Mit RealMæglerne")); 730 WriteLiteral("\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n"); 731 732 } 733 else 734 { 735 WriteLiteral(@" <div class=""header__navigation d-none d-md-flex""> 736 <div class=""header__navigation""> 737 <div class=""header__Link""> 738 <ul> 739 <li class=""d-flex align-items-center""> 740 <svg xmlns=""http://www.w3.org/2000/svg"" width=""20"" height=""20"" viewBox=""0 0 20 20"" fill=""none""> 741 <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"" /> 742 "); 743 WriteLiteral(" </svg>\r\n <a class=\"ml-2\"\r\n href=\"javascript:panelLogin()\""); 744 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 135575, "\"", 135698, 1); 745 WriteAttributeValue("", 135629, Translate("Custom:Accessibility.Login", "Login - åbner i sidepanel"), 135629, 69, false); 746 EndWriteAttribute(); 747 WriteLiteral(">\r\n "); 748 Write(Translate("Login")); 749 WriteLiteral("\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n"); 750 } 751 WriteLiteral(" <div class=\"header__search flex-column flex-md-row js-mainsearch\">\r\n "); 752 Write(Translate("Søg bolig")); 753 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 "); 754 Write(Translate("Menu")); 755 WriteLiteral("\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n"); 756 } 757 WriteLiteral("\r\n <div class=\"search-modal\">\r\n\r\n"); 758 if (Converter.ToString(Pageview.Area.Item["Type"]) == "real") 759 { 760 WriteLiteral(@" <div class=""main-search-form""> 761 <i class=""fal fa-times float-right fa-2x js-close-search close-search""></i> 762 <div class=""row mb-3 align-items-center""> 763 <div class=""col-xs-12 col-md-3 border-right""> 764 <h3>"); 765 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 766 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\">"); 767 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 768 WriteLiteral(@"<span class=""loader js-loader""></span></span> 769 770 </div> 771 </div> 772 773 <form id=""main-search"" class=""searchbar-wrapper"" action=""/Default.aspx"" method=""GET""> 774 <input type=""hidden"" name=""ID"""); 775 BeginWriteAttribute("value", " value=\'", 137440, "\'", 137461, 1); 776 WriteAttributeValue("", 137448, searchPageId, 137448, 13, false); 777 EndWriteAttribute(); 778 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" /> 779 <div class=""row form-wrapper no-gutters""> 780 781 <div class=""col-xs-12 col-md-5 col-searchbar""> 782 <div class=""searchbar""> 783 <input type=""text"""); 784 BeginWriteAttribute("name", " name=\"", 137745, "\"", 137772, 1); 785 WriteAttributeValue("", 137752, querySearchNameAttr, 137752, 20, false); 786 EndWriteAttribute(); 787 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 788 BeginWriteAttribute("value", " value=\"", 137875, "\"", 137953, 1); 789 WriteAttributeValue("", 137883, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 137883, 70, false); 790 EndWriteAttribute(); 791 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\""); 792 BeginWriteAttribute("value", " value=\"", 138047, "\"", 138130, 1); 793 WriteAttributeValue("", 138055, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 138055, 75, false); 794 EndWriteAttribute(); 795 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\""); 796 BeginWriteAttribute("value", " value=\"", 138220, "\"", 138301, 1); 797 WriteAttributeValue("", 138228, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 138228, 73, false); 798 EndWriteAttribute(); 799 WriteLiteral(@" /> 800 </div> 801 </div> 802 <div class=""col-xs-12 col-md-5""> 803 <div class=""row no-gutters""> 804 <div class=""col-xs-12 col-md-6 input-col""> 805 <div class=""dropdown""> 806 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 807 "); 808 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 809 WriteLiteral(@" 810 </button> 811 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 812 <ul class=""bolig-dropdown list-unstyled""> 813 "); 814 815 RenderBoligtypeCheckboxesDropdown(); 816 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 817 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 818 WriteLiteral(@"</button> 819 </div> 820 821 </div> 822 823 </div> 824 <div class=""col-xs-12 col-md-6 input-col""> 825 <div class=""dropdown""> 826 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 827 "); 828 Write(Translate("Smartpage:Search.Pris", "Pris")); 829 WriteLiteral(@" 830 </button> 831 <div class=""dropdown-menu box-shadow dropdown-price js-dropdown-price"" aria-labelledby=""Pris""> 832 <input name=""pricemin"" type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 833 BeginWriteAttribute("placeholder", " placeholder=\'", 140552, "\'", 140629, 1); 834 WriteAttributeValue("", 140566, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 140566, 63, false); 835 EndWriteAttribute(); 836 BeginWriteAttribute("value", " value=\"", 140630, "\"", 140822, 1); 837 WriteAttributeValue("", 140638, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemin"]) ? Context.Current.Request.QueryString["pricemin"] : ""), 140638, 184, false); 838 EndWriteAttribute(); 839 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 840 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 841 WriteLiteral("</option>\r\n"); 842 for (var i = 0; i <= 10000000; i += 100000) 843 { 844 if (i == 10000000) 845 { 846 WriteLiteral(" <option"); 847 BeginWriteAttribute("value", " value=\"", 141459, "\"", 141469, 1); 848 WriteAttributeValue("", 141467, i, 141467, 2, false); 849 EndWriteAttribute(); 850 WriteLiteral(" data-value=\'"); 851 Write(Converter.ToInt32(i).ToString("N0")); 852 WriteLiteral("+\'>"); 853 Write(Convert.ToInt32(i).ToString("N0")); 854 WriteLiteral("+</option>\r\n"); 855 } 856 else 857 { 858 WriteLiteral(" <option"); 859 BeginWriteAttribute("value", " value=\"", 141799, "\"", 141809, 1); 860 WriteAttributeValue("", 141807, i, 141807, 2, false); 861 EndWriteAttribute(); 862 WriteLiteral(" data-value=\'"); 863 Write(Converter.ToInt32(i).ToString("N0")); 864 WriteLiteral("\'>"); 865 Write(Convert.ToInt32(i).ToString("N0")); 866 WriteLiteral("</option>\r\n"); 867 } 868 } 869 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\""); 870 BeginWriteAttribute("placeholder", " placeholder=\'", 142213, "\'", 142290, 1); 871 WriteAttributeValue("", 142227, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 142227, 63, false); 872 EndWriteAttribute(); 873 BeginWriteAttribute("value", " value=\"", 142291, "\"", 142483, 1); 874 WriteAttributeValue("", 142299, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemax"]) ? Context.Current.Request.QueryString["pricemax"] : ""), 142299, 184, false); 875 EndWriteAttribute(); 876 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 877 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 878 WriteLiteral("</option>\r\n"); 879 for (var i = 0; i <= 10000000; i += 100000) 880 { 881 if (i == 10000000) 882 { 883 WriteLiteral(" <option"); 884 BeginWriteAttribute("value", " value=\"", 143114, "\"", 143124, 1); 885 WriteAttributeValue("", 143122, i, 143122, 2, false); 886 EndWriteAttribute(); 887 WriteLiteral(" data-value=\'"); 888 Write(Converter.ToInt32(i).ToString("N0")); 889 WriteLiteral("+\'>"); 890 Write(Convert.ToInt32(i).ToString("N0")); 891 WriteLiteral("+</option>\r\n"); 892 } 893 else 894 { 895 WriteLiteral(" <option"); 896 BeginWriteAttribute("value", " value=\"", 143454, "\"", 143464, 1); 897 WriteAttributeValue("", 143462, i, 143462, 2, false); 898 EndWriteAttribute(); 899 WriteLiteral(" data-value=\'"); 900 Write(Converter.ToInt32(i).ToString("N0")); 901 WriteLiteral("\'>"); 902 Write(Convert.ToInt32(i).ToString("N0")); 903 WriteLiteral("</option>\r\n"); 904 } 905 } 906 WriteLiteral(@" </select> 907 </div> 908 </div> 909 </div> 910 </div> 911 </div> 912 <div class=""col-xs-12 col-md-2 d-none d-md-block""> 913 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 914 Write(Translate("Smartpage:Search.Søg", "Søg")); 915 WriteLiteral(@"</button> 916 </div> 917 </div> 918 919 <div class=""row moresearch-btn no-gutters""> 920 <div class=""col-sm-12""> 921 <div class=""row align-items-center no-gutters""> 922 <div class=""col-12 col-md-4""> 923 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch""> 924 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open white"">"); 925 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 926 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> "); 927 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 928 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\">"); 929 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 930 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>"); 931 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 932 WriteLiteral(@"</b></h4> 933 <div class=""row align-items-end mb-30""> 934 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 935 <div class=""filter-container row""> 936 <label class=""d-block col-12"">"); 937 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 938 WriteLiteral(@"</label> 939 <div class=""col-6 pr-sm-0 pr-2""> 940 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 941 BeginWriteAttribute("placeholder", " placeholder=\'", 146226, "\'", 146299, 1); 942 WriteAttributeValue("", 146240, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 146240, 59, false); 943 EndWriteAttribute(); 944 BeginWriteAttribute("value", " value=\"", 146300, "\"", 146502, 1); 945 WriteAttributeValue("", 146308, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmin"]) ? Context.Current.Request.QueryString["boligarealmin"] : ""), 146308, 194, false); 946 EndWriteAttribute(); 947 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 948 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 949 WriteLiteral("</option>\r\n"); 950 for (var i = 0; i <= 300; i += 10) 951 { 952 if (i == 300) 953 { 954 WriteLiteral(" <option>"); 955 Write(i); 956 WriteLiteral("+</option>\r\n"); 957 } 958 else 959 { 960 WriteLiteral(" <option>"); 961 Write(i); 962 WriteLiteral("</option>\r\n"); 963 } 964 } 965 WriteLiteral(@" </select> 966 967 </div> 968 <div class=""col-6 pl-sm-0 pl-2""> 969 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 970 BeginWriteAttribute("placeholder", " placeholder=\'", 147887, "\'", 147960, 1); 971 WriteAttributeValue("", 147901, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 147901, 59, false); 972 EndWriteAttribute(); 973 BeginWriteAttribute("value", " value=\"", 147961, "\"", 148163, 1); 974 WriteAttributeValue("", 147969, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmax"]) ? Context.Current.Request.QueryString["boligarealmax"] : ""), 147969, 194, false); 975 EndWriteAttribute(); 976 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 977 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 978 WriteLiteral("</option>\r\n"); 979 for (var i = 0; i <= 300; i += 10) 980 { 981 if (i == 300) 982 { 983 WriteLiteral(" <option>"); 984 Write(i); 985 WriteLiteral("+</option>\r\n"); 986 } 987 else 988 { 989 WriteLiteral(" <option>"); 990 Write(i); 991 WriteLiteral("</option>\r\n"); 992 } 993 } 994 WriteLiteral(@" </select> 995 996 </div> 997 </div> 998 </div> 999 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 1000 <div class=""filter-container row""> 1001 <label class=""d-block col-12"">"); 1002 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 1003 WriteLiteral(@"</label> 1004 <div class=""col-6 pr-sm-0 pr-2""> 1005 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 1006 BeginWriteAttribute("placeholder", " placeholder=\'", 149944, "\'", 150017, 1); 1007 WriteAttributeValue("", 149958, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 149958, 59, false); 1008 EndWriteAttribute(); 1009 BeginWriteAttribute("value", " value=\"", 150018, "\"", 150221, 1); 1010 WriteAttributeValue("", 150026, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmin"]) ? Context.Current.Request.QueryString["grundarealmin"] : ""), 150026, 195, false); 1011 EndWriteAttribute(); 1012 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1013 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 1014 WriteLiteral("</option>\r\n"); 1015 for (var i = 0; i <= 10000; i += 100) 1016 { 1017 if (i == 10000) 1018 { 1019 WriteLiteral(" <option>"); 1020 Write(i); 1021 WriteLiteral("+</option>\r\n"); 1022 } 1023 else 1024 { 1025 WriteLiteral(" <option>"); 1026 Write(i); 1027 WriteLiteral("</option>\r\n"); 1028 } 1029 } 1030 WriteLiteral(@" </select> 1031 </div> 1032 <div class=""col-6 pl-sm-0 pl-2""> 1033 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 1034 BeginWriteAttribute("placeholder", " placeholder=\'", 151609, "\'", 151682, 1); 1035 WriteAttributeValue("", 151623, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 151623, 59, false); 1036 EndWriteAttribute(); 1037 BeginWriteAttribute("value", " value=\"", 151683, "\"", 151886, 1); 1038 WriteAttributeValue("", 151691, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmax"]) ? Context.Current.Request.QueryString["grundarealmax"] : ""), 151691, 195, false); 1039 EndWriteAttribute(); 1040 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">"); 1041 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 1042 WriteLiteral("</option>\r\n"); 1043 for (var i = 0; i <= 10000; i += 100) 1044 { 1045 if (i == 10000) 1046 { 1047 WriteLiteral(" <option>"); 1048 Write(i); 1049 WriteLiteral("+</option>\r\n"); 1050 } 1051 else 1052 { 1053 WriteLiteral(" <option>"); 1054 Write(i); 1055 WriteLiteral("</option>\r\n"); 1056 } 1057 } 1058 WriteLiteral(@" </select> 1059 </div> 1060 </div> 1061 </div> 1062 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 1063 <div class=""filter-container row""> 1064 <label class=""d-block col-12"">Antal rum</label> 1065 <div class=""col-6 pr-sm-0 pr-2""> 1066 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count""> 1067 <option selected=""selected"" disabled=""disabled"">"); 1068 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 1069 WriteLiteral("</option>\r\n"); 1070 1071 RenderSelectValue("1", "1", "roomsmin"); 1072 RenderSelectValue("2", "2", "roomsmin"); 1073 RenderSelectValue("3", "3", "roomsmin"); 1074 RenderSelectValue("4", "4", "roomsmin"); 1075 RenderSelectValue("5+", "5", "roomsmin"); 1076 WriteLiteral(@" </select> 1077 </div> 1078 <div class=""col-6 pl-sm-0 pl-2""> 1079 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count""> 1080 <option selected=""selected"" disabled=""disabled"">"); 1081 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 1082 WriteLiteral("</option>\r\n"); 1083 1084 RenderSelectValue("1", "1", "roomsmax"); 1085 RenderSelectValue("2", "2", "roomsmax"); 1086 RenderSelectValue("3", "3", "roomsmax"); 1087 RenderSelectValue("4", "4", "roomsmax"); 1088 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax"); 1089 WriteLiteral(@" </select> 1090 </div> 1091 </div> 1092 </div> 1093 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 1094 <div class=""row""> 1095 <div class=""col-12 pr-2""> 1096 <div class=""filter-container""> 1097 <label class=""d-block"">Energimærke</label> 1098 <select name=""energylabel"" id=""energylabel"" class=""form-control reverse js-energylabel-select js-count""> 1099 <option selected=""selected"" disabled=""disabled"">"); 1100 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 1101 WriteLiteral(@"</option> 1102 <option value=""01"">G</option> 1103 <option value=""02"">F</option> 1104 <option value=""03"">E</option> 1105 <option value=""04"">D</option> 1106 <option value=""05"">C</option> 1107 <option value=""06"">B</option> 1108 <option value=""07"">A</option> 1109 <option value=""08"">A2010</option> 1110 <option value=""09"">A2015</option> 1111 <option value=""10"">A2020+</option> 1112 </select> 1113 </div> 1114 "); 1115 WriteLiteral(@" </div> 1116 </div> 1117 </div> 1118 <div class=""col-12 col-sm-6 col-lg-3 mt-3""> 1119 <h4"); 1120 BeginWriteAttribute("class", " class=\"", 157685, "\"", 157693, 0); 1121 EndWriteAttribute(); 1122 WriteLiteral("><b>"); 1123 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 1124 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 1125 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 1126 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\""); 1127 BeginWriteAttribute("placeholder", " placeholder=\'", 158255, "\'", 158330, 1); 1128 WriteAttributeValue("", 158269, Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"), 158269, 61, false); 1129 EndWriteAttribute(); 1130 BeginWriteAttribute("value", " value=\"", 158331, "\"", 158528, 1); 1131 WriteAttributeValue("", 158339, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymin"]) ? Context.Current.Request.QueryString["subsidymin"] : ""), 158339, 189, false); 1132 EndWriteAttribute(); 1133 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">"); 1134 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 1135 WriteLiteral("</option>\r\n"); 1136 for (var i = 0; i <= 25000; i += 1250) 1137 { 1138 if (i == 25000) 1139 { 1140 WriteLiteral(" <option"); 1141 BeginWriteAttribute("value", " value=\"", 159172, "\"", 159201, 1); 1142 WriteAttributeValue("", 159180, Converter.ToInt32(i), 159180, 21, false); 1143 EndWriteAttribute(); 1144 WriteLiteral(">"); 1145 Write(Converter.ToInt32(i).ToString("N0")); 1146 WriteLiteral("+</option>\r\n"); 1147 } 1148 else 1149 { 1150 WriteLiteral(" <option"); 1151 BeginWriteAttribute("value", " value=\"", 159498, "\"", 159527, 1); 1152 WriteAttributeValue("", 159506, Converter.ToInt32(i), 159506, 21, false); 1153 EndWriteAttribute(); 1154 WriteLiteral(">"); 1155 Write(Converter.ToInt32(i).ToString("N0")); 1156 WriteLiteral("</option>\r\n"); 1157 } 1158 } 1159 WriteLiteral(@" </select> 1160 </div> 1161 <div class=""col-6 pl-sm-0 pl-2""> 1162 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count"""); 1163 BeginWriteAttribute("placeholder", " placeholder=\'", 160039, "\'", 160114, 1); 1164 WriteAttributeValue("", 160053, Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"), 160053, 61, false); 1165 EndWriteAttribute(); 1166 BeginWriteAttribute("value", " value=\"", 160115, "\"", 160312, 1); 1167 WriteAttributeValue("", 160123, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymax"]) ? Context.Current.Request.QueryString["subsidymax"] : ""), 160123, 189, false); 1168 EndWriteAttribute(); 1169 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1170 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 1171 WriteLiteral("</option>\r\n"); 1172 for (var i = 0; i <= 25000; i += 1250) 1173 { 1174 if (i == 25000) 1175 { 1176 WriteLiteral(" <option"); 1177 BeginWriteAttribute("value", " value=\"", 160952, "\"", 160981, 1); 1178 WriteAttributeValue("", 160960, Converter.ToInt32(i), 160960, 21, false); 1179 EndWriteAttribute(); 1180 WriteLiteral(">"); 1181 Write(Convert.ToInt32(i).ToString("N0")); 1182 WriteLiteral("+</option>\r\n"); 1183 } 1184 else 1185 { 1186 WriteLiteral(" <option"); 1187 BeginWriteAttribute("value", " value=\"", 161276, "\"", 161305, 1); 1188 WriteAttributeValue("", 161284, Converter.ToInt32(i), 161284, 21, false); 1189 EndWriteAttribute(); 1190 WriteLiteral(">"); 1191 Write(Convert.ToInt32(i).ToString("N0")); 1192 WriteLiteral("</option>\r\n"); 1193 } 1194 } 1195 WriteLiteral(@" </select> 1196 </div> 1197 </div> 1198 </div> 1199 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0""> 1200 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1201 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 1202 WriteLiteral(@"</button> 1203 </div> 1204 </div> 1205 </div> 1206 </div> 1207 </div> 1208 <div class=""row d-block d-md-none form-wrapper no-gutters""> 1209 <div class=""col-xs-12 col-md-2""> 1210 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1211 Write(Translate("Smartpage:Search.Søg", "Søg")); 1212 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n"); 1213 } 1214 else 1215 { 1216 WriteLiteral(@" <div class=""main-search-form center""> 1217 <i class=""fal fa-times float-right fa-2x js-close-search""></i> 1218 <div class=""row mb-3 align-items-center""> 1219 <div class=""col-xs-12 col-md-5 border-right""> 1220 <h3>"); 1221 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 1222 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>"); 1223 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 1224 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\""); 1225 BeginWriteAttribute("value", " value=\'", 163419, "\'", 163440, 1); 1226 WriteAttributeValue("", 163427, searchPageId, 163427, 13, false); 1227 EndWriteAttribute(); 1228 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" /> 1229 <div class=""row form-wrapper no-gutters""> 1230 1231 <div class=""col-12 mb-10""> 1232 <div class=""searchbar""> 1233 <input type=""text"""); 1234 BeginWriteAttribute("name", " name=\"", 163704, "\"", 163731, 1); 1235 WriteAttributeValue("", 163711, querySearchNameAttr, 163711, 20, false); 1236 EndWriteAttribute(); 1237 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 1238 BeginWriteAttribute("value", " value=\"", 163834, "\"", 163912, 1); 1239 WriteAttributeValue("", 163842, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 163842, 70, false); 1240 EndWriteAttribute(); 1241 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\""); 1242 BeginWriteAttribute("value", " value=\"", 164006, "\"", 164089, 1); 1243 WriteAttributeValue("", 164014, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 164014, 75, false); 1244 EndWriteAttribute(); 1245 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\""); 1246 BeginWriteAttribute("value", " value=\"", 164179, "\"", 164260, 1); 1247 WriteAttributeValue("", 164187, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 164187, 73, false); 1248 EndWriteAttribute(); 1249 WriteLiteral(@" /> 1250 </div> 1251 </div> 1252 <div class=""col-xs-12 col-md-8""> 1253 <div class=""row no-gutters""> 1254 <div class=""col-xs-12 col-md-6 input-col""> 1255 <div class=""dropdown""> 1256 <button class=""btn btn-dropdown dropdown-toggle reverse js-count"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 1257 "); 1258 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 1259 WriteLiteral(@" 1260 </button> 1261 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 1262 <ul class=""bolig-dropdown list-unstyled""> 1263 "); 1264 1265 RenderBoligtypeCheckboxesDropdown(); 1266 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 1267 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 1268 WriteLiteral(@"</button> 1269 </div> 1270 1271 </div> 1272 1273 </div> 1274 <div class=""col-xs-12 col-md-6 input-col""> 1275 <div class=""dropdown""> 1276 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""> 1277 "); 1278 Write(Translate("Smartpage:Search.Pris", "Pris")); 1279 WriteLiteral(@" 1280 </button> 1281 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris""> 1282 <input type=""text"" name=""pricemin"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 1283 BeginWriteAttribute("placeholder", " placeholder=\'", 166502, "\'", 166579, 1); 1284 WriteAttributeValue("", 166516, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 166516, 63, false); 1285 EndWriteAttribute(); 1286 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1287 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 1288 WriteLiteral("</option>\r\n"); 1289 for (var i = 0; i <= 10000000; i += 100000) 1290 { 1291 if (i == 10000000) 1292 { 1293 WriteLiteral(" <option"); 1294 BeginWriteAttribute("value", " value=\"", 167216, "\"", 167226, 1); 1295 WriteAttributeValue("", 167224, i, 167224, 2, false); 1296 EndWriteAttribute(); 1297 WriteLiteral(" data-value=\'"); 1298 Write(Converter.ToInt32(i).ToString("N0")); 1299 WriteLiteral("+\'>"); 1300 Write(Converter.ToInt32(i).ToString("N0")); 1301 WriteLiteral("+</option>\r\n"); 1302 } 1303 else 1304 { 1305 WriteLiteral(" <option"); 1306 BeginWriteAttribute("value", " value=\"", 167558, "\"", 167568, 1); 1307 WriteAttributeValue("", 167566, i, 167566, 2, false); 1308 EndWriteAttribute(); 1309 WriteLiteral(" data-value=\'"); 1310 Write(Converter.ToInt32(i).ToString("N0")); 1311 WriteLiteral("\'>"); 1312 Write(Converter.ToInt32(i).ToString("N0")); 1313 WriteLiteral("</option>\r\n"); 1314 } 1315 } 1316 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\""); 1317 BeginWriteAttribute("placeholder", " placeholder=\'", 167974, "\'", 168051, 1); 1318 WriteAttributeValue("", 167988, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 167988, 63, false); 1319 EndWriteAttribute(); 1320 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1321 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 1322 WriteLiteral("</option>\r\n"); 1323 for (var i = 0; i <= 10000000; i += 100000) 1324 { 1325 if (i == 10000000) 1326 { 1327 WriteLiteral(" <option"); 1328 BeginWriteAttribute("value", " value=\"", 168682, "\"", 168692, 1); 1329 WriteAttributeValue("", 168690, i, 168690, 2, false); 1330 EndWriteAttribute(); 1331 WriteLiteral(" data-value=\'"); 1332 Write(Converter.ToInt32(i).ToString("N0")); 1333 WriteLiteral("+\'>"); 1334 Write(Converter.ToInt32(i).ToString("N0")); 1335 WriteLiteral("+</option>\r\n"); 1336 } 1337 else 1338 { 1339 WriteLiteral(" <option"); 1340 BeginWriteAttribute("value", " value=\"", 169024, "\"", 169034, 1); 1341 WriteAttributeValue("", 169032, i, 169032, 2, false); 1342 EndWriteAttribute(); 1343 WriteLiteral(" data-value=\'"); 1344 Write(Converter.ToInt32(i).ToString("N0")); 1345 WriteLiteral("\'>"); 1346 Write(Converter.ToInt32(i).ToString("N0")); 1347 WriteLiteral("</option>\r\n"); 1348 } 1349 } 1350 WriteLiteral(@" </select> 1351 </div> 1352 </div> 1353 </div> 1354 </div> 1355 </div> 1356 <div class=""col-xs-12 col-md-4 d-none d-md-block""> 1357 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1358 Write(Translate("Smartpage:Search.Søg", "Søg")); 1359 WriteLiteral(@"</button> 1360 </div> 1361 </div> 1362 1363 <div class=""row moresearch-btn no-gutters""> 1364 <div class=""col-sm-12""> 1365 <div class=""row align-items-center no-gutters""> 1366 <div class=""col-12 col-md-5""> 1367 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch-master""> 1368 <span class=""moreSearch-text""><i class=""fas fa-plus open-close white""></i> <span class=""not-open white"">"); 1369 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 1370 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> "); 1371 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 1372 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\">"); 1373 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 1374 WriteLiteral(@"</a> 1375 </div> 1376 <div class=""col-6 col-md-4 mb-xs-4""> 1377 <div class=""parent-purchases""> 1378 <label class=""checkbox-container white""> 1379 "); 1380 Write(Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet")); 1381 WriteLiteral(@" 1382 <input type=""checkbox"" name=""foraeldrekoebegnet"" value=""true"" class=""js-input-check""> 1383 <span class=""checkmark grey""></span> 1384 </label> 1385 </div> 1386 </div> 1387 </div> 1388 1389 <div class=""collapse"" id=""moreSearch-master""> 1390 1391 <h4 class=""mt-20""><b>"); 1392 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 1393 WriteLiteral(@"</b></h4> 1394 <div class=""row align-items-end mb-30""> 1395 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1396 <div class=""filter-container row""> 1397 <label class=""d-block col-12"">"); 1398 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 1399 WriteLiteral(@"</label> 1400 <div class=""col-6 pr-sm-0 pr-2""> 1401 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 1402 BeginWriteAttribute("placeholder", " placeholder=\'", 172491, "\'", 172564, 1); 1403 WriteAttributeValue("", 172505, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 172505, 59, false); 1404 EndWriteAttribute(); 1405 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1406 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 1407 WriteLiteral("</option>\r\n"); 1408 for (var i = 0; i <= 300; i += 10) 1409 { 1410 if (i == 300) 1411 { 1412 WriteLiteral(" <option>"); 1413 Write(i); 1414 WriteLiteral("+</option>\r\n"); 1415 } 1416 else 1417 { 1418 WriteLiteral(" <option>"); 1419 Write(i); 1420 WriteLiteral("</option>\r\n"); 1421 } 1422 } 1423 WriteLiteral(@" </select> 1424 </div> 1425 <div class=""col-6 pl-sm-0 pl-2""> 1426 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 1427 BeginWriteAttribute("placeholder", " placeholder=\'", 173947, "\'", 174020, 1); 1428 WriteAttributeValue("", 173961, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 173961, 59, false); 1429 EndWriteAttribute(); 1430 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1431 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 1432 WriteLiteral("</option>\r\n"); 1433 for (var i = 0; i <= 300; i += 10) 1434 { 1435 if (i == 300) 1436 { 1437 WriteLiteral(" <option>"); 1438 Write(i); 1439 WriteLiteral("+</option>\r\n"); 1440 } 1441 else 1442 { 1443 WriteLiteral(" <option>"); 1444 Write(i); 1445 WriteLiteral("</option>\r\n"); 1446 } 1447 } 1448 WriteLiteral(@" </select> 1449 </div> 1450 </div> 1451 </div> 1452 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1453 <div class=""filter-container row""> 1454 <label class=""d-block col-12"">"); 1455 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 1456 WriteLiteral(@"</label> 1457 <div class=""col-6 pr-sm-0 pr-2""> 1458 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 1459 BeginWriteAttribute("placeholder", " placeholder=\'", 175799, "\'", 175872, 1); 1460 WriteAttributeValue("", 175813, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 175813, 59, false); 1461 EndWriteAttribute(); 1462 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1463 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 1464 WriteLiteral("</option>\r\n"); 1465 for (var i = 0; i <= 10000; i += 100) 1466 { 1467 if (i == 10000) 1468 { 1469 WriteLiteral(" <option"); 1470 BeginWriteAttribute("value", " value=\"", 176512, "\"", 176541, 1); 1471 WriteAttributeValue("", 176520, Converter.ToInt32(i), 176520, 21, false); 1472 EndWriteAttribute(); 1473 WriteLiteral(">"); 1474 Write(Converter.ToInt32(i).ToString("N0")); 1475 WriteLiteral("+</option>\r\n"); 1476 } 1477 else 1478 { 1479 WriteLiteral(" <option"); 1480 BeginWriteAttribute("value", " value=\"", 176838, "\"", 176867, 1); 1481 WriteAttributeValue("", 176846, Converter.ToInt32(i), 176846, 21, false); 1482 EndWriteAttribute(); 1483 WriteLiteral(">"); 1484 Write(Converter.ToInt32(i).ToString("N0")); 1485 WriteLiteral("</option>\r\n"); 1486 } 1487 } 1488 WriteLiteral(@" </select> 1489 </div> 1490 <div class=""col-6 pl-sm-0 pl-2""> 1491 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 1492 BeginWriteAttribute("placeholder", " placeholder=\'", 177388, "\'", 177461, 1); 1493 WriteAttributeValue("", 177402, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 177402, 59, false); 1494 EndWriteAttribute(); 1495 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1496 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 1497 WriteLiteral("</option>\r\n"); 1498 for (var i = 0; i <= 10000; i += 100) 1499 { 1500 if (i == 10000) 1501 { 1502 WriteLiteral(" <option"); 1503 BeginWriteAttribute("value", " value=\"", 178092, "\"", 178121, 1); 1504 WriteAttributeValue("", 178100, Converter.ToInt32(i), 178100, 21, false); 1505 EndWriteAttribute(); 1506 WriteLiteral(">"); 1507 Write(Converter.ToInt32(i).ToString("N0")); 1508 WriteLiteral("+</option>\r\n"); 1509 } 1510 else 1511 { 1512 WriteLiteral(" <option"); 1513 BeginWriteAttribute("value", " value=\"", 178418, "\"", 178447, 1); 1514 WriteAttributeValue("", 178426, Converter.ToInt32(i), 178426, 21, false); 1515 EndWriteAttribute(); 1516 WriteLiteral(">"); 1517 Write(Converter.ToInt32(i).ToString("N0")); 1518 WriteLiteral("</option>\r\n"); 1519 } 1520 } 1521 WriteLiteral(@" </select> 1522 </div> 1523 </div> 1524 </div> 1525 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1526 <div class=""filter-container row""> 1527 <label class=""d-block col-12"">Antal rum</label> 1528 1529 <div class=""col-6 pr-sm-0 pr-2""> 1530 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count""> 1531 <option selected=""selected"" disabled=""disabled"">"); 1532 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 1533 WriteLiteral(@"</option> 1534 <option value=""1"">1</option> 1535 <option value=""2"">2</option> 1536 <option value=""3"">3</option> 1537 <option value=""4"">4</option> 1538 <option value=""5"">5+</option> 1539 </select> 1540 </div> 1541 <div class=""col-6 pl-sm-0 pl-2""> 1542 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count""> 1543 <option selected=""selected"" disabled=""disabled"">"); 1544 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 1545 WriteLiteral(@"</option> 1546 <option value=""1"">1</option> 1547 <option value=""2"">2</option> 1548 <option value=""3"">3</option> 1549 <option value=""4"">4</option> 1550 <option value=""5"">5+</option> 1551 </select> 1552 </div> 1553 </div> 1554 </div> 1555 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0""> 1556 <div class=""row""> 1557 <div class=""col-12 pr-2""> 1558 <div class=""filter-container""> 1559 <label class=""d-block"">Energimærke</label> 1560 "); 1561 WriteLiteral(" <select name=\"energylabel\" id=\"energylabel\" class=\"form-control reverse js-energylabel-select js-count\">\r\n <option disabled selected=\"selected\">"); 1562 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 1563 WriteLiteral(@"</option> 1564 <option value=""01"">G</option> 1565 <option value=""02"">F</option> 1566 <option value=""03"">E</option> 1567 <option value=""04"">D</option> 1568 <option value=""05"">C</option> 1569 <option value=""06"">B</option> 1570 <option value=""07"">A</option> 1571 <option value=""08"">A2010</option> 1572 <option value=""09"">A2015</option> 1573 <option value=""10"">A2020+</option> 1574 </select> 1575 </div> 1576 "); 1577 WriteLiteral(@" </div> 1578 </div> 1579 </div> 1580 <div class=""col-12 col-sm-6 col-lg-6 mt-3""> 1581 <h4"); 1582 BeginWriteAttribute("class", " class=\"", 182953, "\"", 182961, 0); 1583 EndWriteAttribute(); 1584 WriteLiteral("><b>"); 1585 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 1586 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 1587 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 1588 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\""); 1589 BeginWriteAttribute("placeholder", " placeholder=\'", 183523, "\'", 183590, 1); 1590 WriteAttributeValue("", 183537, Translate("Smartpage:Search.Placeholder.Min", "Min"), 183537, 53, false); 1591 EndWriteAttribute(); 1592 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">"); 1593 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 1594 WriteLiteral("</option>\r\n"); 1595 for (var i = 0; i <= 25000; i += 1250) 1596 { 1597 if (i == 25000) 1598 { 1599 WriteLiteral(" <option"); 1600 BeginWriteAttribute("value", " value=\"", 184234, "\"", 184263, 1); 1601 WriteAttributeValue("", 184242, Converter.ToInt32(i), 184242, 21, false); 1602 EndWriteAttribute(); 1603 WriteLiteral(">"); 1604 Write(Converter.ToInt32(i).ToString("N0")); 1605 WriteLiteral("+</option>\r\n"); 1606 } 1607 else 1608 { 1609 WriteLiteral(" <option"); 1610 BeginWriteAttribute("value", " value=\"", 184560, "\"", 184589, 1); 1611 WriteAttributeValue("", 184568, Converter.ToInt32(i), 184568, 21, false); 1612 EndWriteAttribute(); 1613 WriteLiteral(">"); 1614 Write(Converter.ToInt32(i).ToString("N0")); 1615 WriteLiteral("</option>\r\n"); 1616 } 1617 } 1618 WriteLiteral(@" </select> 1619 </div> 1620 <div class=""col-6 pl-sm-0 pl-2""> 1621 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count"""); 1622 BeginWriteAttribute("placeholder", " placeholder=\'", 185101, "\'", 185168, 1); 1623 WriteAttributeValue("", 185115, Translate("Smartpage:Search.Placeholder.Max", "Max"), 185115, 53, false); 1624 EndWriteAttribute(); 1625 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 1626 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 1627 WriteLiteral("</option>\r\n"); 1628 for (var i = 0; i <= 25000; i += 1250) 1629 { 1630 if (i == 25000) 1631 { 1632 WriteLiteral(" <option"); 1633 BeginWriteAttribute("value", " value=\"", 185808, "\"", 185837, 1); 1634 WriteAttributeValue("", 185816, Converter.ToInt32(i), 185816, 21, false); 1635 EndWriteAttribute(); 1636 WriteLiteral(">"); 1637 Write(Converter.ToInt32(i).ToString("N0")); 1638 WriteLiteral("+</option>\r\n"); 1639 } 1640 else 1641 { 1642 WriteLiteral(" <option"); 1643 BeginWriteAttribute("value", " value=\"", 186134, "\"", 186163, 1); 1644 WriteAttributeValue("", 186142, Converter.ToInt32(i), 186142, 21, false); 1645 EndWriteAttribute(); 1646 WriteLiteral(">"); 1647 Write(Converter.ToInt32(i).ToString("N0")); 1648 WriteLiteral("</option>\r\n"); 1649 } 1650 } 1651 WriteLiteral(@" </select> 1652 </div> 1653 </div> 1654 </div> 1655 <div class=""col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0""> 1656 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 1657 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 1658 WriteLiteral(@"</button> 1659 </div> 1660 </div> 1661 </div> 1662 </div> 1663 </div> 1664 <div class=""row d-block d-md-none form-wrapper no-gutters""> 1665 <div class=""col-xs-12 col-md-2""> 1666 <button type=""submit"" class=""btn btn-block btn-search dark-red""><i class=""fa fa-search""></i> "); 1667 Write(Translate("Smartpage:Search.Søg", "Søg")); 1668 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n"); 1669 } 1670 WriteLiteral(" </div>\r\n\r\n"); 1671 1672 RenderSlideMenu(false, Convert.ToString(settings_Maeglersogning)); 1673 WriteLiteral("\r\n"); 1674 if (isBrokerPage) 1675 { 1676 WriteLiteral(" <section class=\"maegler-navbar\">\r\n "); 1677 Write(RenderNavigation(new 1678 { 1679 id = "navbar-main", 1680 cssclass = "dwnavigation", 1681 template = "ul_li.xslt", 1682 StartLevel = 1, 1683 EndLevel = 1 1684 })); 1685 WriteLiteral("\r\n </section>\r\n"); 1686 } 1687 WriteLiteral("\r\n <div class=\"visual-editor\">\r\n"); 1688 WriteLiteral("\r\n\r\n"); 1689 WriteLiteral("\r\n"); 1690 WriteLiteral("\r\n"); 1691 1692 string listPageId = Converter.ToString(GetPageIdByNavigationTag("DynamicListFeed")); 1693 string parentPageId = Dynamicweb.Services.Pages.GetPage(Model.ID).Parent.ID.ToString(); 1694 string topLayout = Model.Item.GetList("TopLayout") != null ? Model.Item.GetList("TopLayout").SelectedValue : "default"; 1695 topLayout = topLayout == "default" && GetParentSettingsItem("ArticleTopLayout") != null ? GetParentSettingsItem("ArticleTopLayout").ToString().ToLower() : topLayout; 1696 string textLayout = Model.Item.GetList("TextLayout") != null ? Model.Item.GetList("TextLayout").SelectedValue : "default"; 1697 textLayout = textLayout == "default" && GetParentSettingsItem("ArticleTextLayout") != null ? GetParentSettingsItem("ArticleTextLayout").ToString().ToLower() : textLayout; 1698 string imageLayout = Model.Item.GetList("ImageLayout") != null ? Model.Item.GetList("ImageLayout").SelectedValue : "default"; 1699 imageLayout = imageLayout == "default" && GetParentSettingsItem("ArticleImageLayout") != null ? GetParentSettingsItem("ArticleImageLayout").ToString().ToLower() : imageLayout; 1700 1701 //string imageColumns = imageLayout == "straight" && textLayout != "full" ? "8" : "12"; 1702 //string contentColumns = textLayout != "full" ? "8" : "12"; 1703 string imageColumns = "12"; 1704 string contentColumns = "12"; 1705 1706 int externalParagraphId = Model.Item.GetItem("CTAParagraphLink") != null ? Model.Item.GetItem("CTAParagraphLink").ParagraphID : 0; 1707 1708 ArticleHeaderLayout headerLayout; 1709 1710 switch (topLayout) 1711 { 1712 case "default": 1713 headerLayout = ArticleHeaderLayout.Clean; 1714 break; 1715 case "split": 1716 headerLayout = ArticleHeaderLayout.Split; 1717 break; 1718 case "banner": 1719 headerLayout = ArticleHeaderLayout.Banner; 1720 break; 1721 case "overlay": 1722 headerLayout = ArticleHeaderLayout.Overlay; 1723 break; 1724 default: 1725 headerLayout = ArticleHeaderLayout.Clean; 1726 break; 1727 } 1728 1729 1730 Block articleContainer = new Block 1731 { 1732 Id = "ArticleContainer", 1733 SortId = 10, 1734 Design = new Design 1735 { 1736 RenderType = RenderType.Row 1737 }, 1738 BlocksList = new List<Block> { 1739 new Block { 1740 Id = "ArticleBody", 1741 SortId = 30, 1742 Design = new Design { 1743 RenderType = RenderType.Column, 1744 Size = "12", 1745 HidePadding = true, 1746 CssClass = "margin-top-large" 1747 } 1748 } 1749 } 1750 }; 1751 articlePage.Add(articleContainer); 1752 1753 ButtonLayout topBannerButtonLayout = ButtonLayout.Primary; 1754 1755 switch (Model.Item.GetString("ButtonDesign")) 1756 { 1757 case "primary": 1758 topBannerButtonLayout = ButtonLayout.Primary; 1759 break; 1760 case "secondary": 1761 topBannerButtonLayout = ButtonLayout.Secondary; 1762 break; 1763 case "teritary": 1764 topBannerButtonLayout = ButtonLayout.Tertiary; 1765 break; 1766 case "link": 1767 topBannerButtonLayout = ButtonLayout.Link; 1768 break; 1769 } 1770 1771 ArticleHeader topBanner = new ArticleHeader 1772 { 1773 Layout = headerLayout, 1774 Image = new Image { Path = Model.Item.GetFile("Image"), ImageDefault = new ImageSettings { Width = 1920, Height = 640 } }, 1775 Heading = Model.Item.GetString("Title"), 1776 Subheading = Model.Item.GetString("Summary"), 1777 TextColor = "#fff", 1778 Author = Model.Item.GetString("Author"), 1779 Date = Model.Item.GetString("Date"), 1780 Category = GetArticleCategory(Model.ID), 1781 CategoryColor = GetArticleCategoryColor(Model.ID), 1782 Link = Model.Item.GetString("Link"), 1783 LinkText = Model.Item.GetString("LinkText"), 1784 ButtonLayout = topBannerButtonLayout, 1785 RatingScore = Model.Item.GetString("Rating") != null ? Converter.ToInt32(Model.Item.GetList("Rating").SelectedValue) : 0, 1786 RatingOutOf = Model.Item.GetString("Rating") != null ? Model.Item.GetList("Rating").Options.Count : 0, 1787 ExternalParagraphId = externalParagraphId 1788 }; 1789 1790 Block articleTop = new Block 1791 { 1792 Id = "ArticleHead", 1793 SortId = 20, 1794 Component = topBanner, 1795 Design = new Design 1796 { 1797 RenderType = RenderType.Column, 1798 Size = "12", 1799 HidePadding = true, 1800 CssClass = "article-head" 1801 } 1802 }; 1803 //articlePage.Add("ArticleContainer", articleTop); 1804 1805 1806 Block articleBodyRow = new Block 1807 { 1808 Id = "ArticleBodyRow", 1809 SortId = 10, 1810 SkipRenderBlocksList = true 1811 }; 1812 articlePage.Add("ArticleBody", articleBodyRow); 1813 1814 1815 if (Model.Item.GetString("Paragraphs") != null) 1816 { 1817 int count = 0; 1818 foreach (var paragraph in Model.Item.GetItems("Paragraphs")) 1819 { 1820 if (!paragraph.GetBoolean("RenderAsQuote")) 1821 { 1822 string enableDropCap = Model.Item.GetString("EnableDropCap") != null ? Model.Item.GetList("EnableDropCap").SelectedValue.ToLower() : "default"; 1823 enableDropCap = enableDropCap == "default" && GetParentSettingsItem("EnableDropCap") != null ? GetParentSettingsItem("EnableDropCap").ToString().ToLower() : enableDropCap; 1824 string text = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : ""; 1825 1826 if (!String.IsNullOrEmpty(text) && enableDropCap == "true" && count == 0 && paragraph.GetString("Text").Substring(0, 3) == "<p>") 1827 { 1828 string firstLetter = paragraph.GetString("Text").Substring(3, 1); 1829 text = paragraph.GetString("Text").Remove(3, 1); 1830 text = text.Insert(3, "<span class=\"article__drop-cap\">" + firstLetter + "</span>"); 1831 } 1832 1833 if (!String.IsNullOrEmpty(paragraph.GetString("Heading"))) 1834 { 1835 Block articleParagraphHeader = new Block 1836 { 1837 Id = "ArticleParagraph" + count + "Heading", 1838 SortId = (count * 10) , 1839 Component = new ArticleSubHeader { Title = paragraph.GetString("Heading") }, 1840 Design = new Design 1841 { 1842 RenderType = RenderType.Column, 1843 Size = contentColumns, 1844 CssClass = "u-color-light--bg u-padding--lg" 1845 } 1846 }; 1847 articlePage.Add("ArticleBodyRow", articleParagraphHeader); 1848 } 1849 1850 if (paragraph.GetFile("Image") != null) 1851 { 1852 string imageTitle = !string.IsNullOrEmpty(paragraph.GetString("Heading")) ? paragraph.GetString("Heading") : ""; 1853 1854 Block articleParagraphImage = new Block 1855 { 1856 Id = "ArticleParagraph" + count + "Image", 1857 SortId = (count * 10) + 2, 1858 Design = new Design 1859 { 1860 RenderType = RenderType.Column, 1861 Size = imageColumns, 1862 CssClass = "u-color-light--bg u-padding--lg" 1863 } 1864 }; 1865 1866 if (imageLayout == "banner") 1867 { 1868 ArticleBanner banner = new ArticleBanner 1869 { 1870 Image = new Image { Path = paragraph.GetFile("Image"), ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, Caption = paragraph.GetString("ImageCaption") }, 1871 Heading = imageTitle, 1872 UseFilters = false 1873 }; 1874 articleParagraphImage.Component = banner; 1875 } 1876 else 1877 { 1878 ArticleImage image = new ArticleImage 1879 { 1880 Image = new Image 1881 { 1882 Path = paragraph.GetFile("Image"), 1883 Title = imageTitle, 1884 ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, 1885 Caption = paragraph.GetString("ImageCaption"), 1886 CssClass = "u-full-width" 1887 } 1888 }; 1889 articleParagraphImage.Component = image; 1890 } 1891 1892 articlePage.Add("ArticleBodyRow", articleParagraphImage); 1893 } 1894 1895 if (!String.IsNullOrEmpty(paragraph.GetString("VideoURL"))) 1896 { 1897 Block articleParagraphVideo = new Block 1898 { 1899 Id = "ArticleParagraph" + count + "Video", 1900 SortId = (count * 10) + 3, 1901 Component = new ArticleVideo { Url = paragraph.GetString("VideoURL"), AutoPlay = "false" }, 1902 Design = new Design 1903 { 1904 RenderType = RenderType.Column, 1905 Size = imageColumns, 1906 CssClass = "u-color-light--bg u-padding--lg" 1907 } 1908 }; 1909 articlePage.Add("ArticleBodyRow", articleParagraphVideo); 1910 } 1911 1912 if (!String.IsNullOrEmpty(text)) 1913 { 1914 Block articleParagraphText = new Block 1915 { 1916 Id = "ArticleParagraph" + count + "Text", 1917 SortId = (count * 10) + 3, 1918 Component = new ArticleText { Text = text }, 1919 Design = new Design 1920 { 1921 RenderType = RenderType.Column, 1922 Size = contentColumns, 1923 CssClass = "u-color-light--bg u-padding--lg" 1924 } 1925 }; 1926 1927 articlePage.Add("ArticleBodyRow", articleParagraphText); 1928 } 1929 } 1930 else 1931 { 1932 if (!String.IsNullOrEmpty(paragraph.GetString("Text"))) 1933 { 1934 string quoteText = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : ""; 1935 string quoteAuthor = paragraph.GetString("Heading") != null ? paragraph.GetString("Heading") : ""; 1936 1937 Block articleParagraphQuote = new Block 1938 { 1939 Id = "ArticleParagraph" + count + "Quote", 1940 SortId = (count * 10) + 3, 1941 Component = new ArticleQuote { Image = new Image { Path = paragraph.GetFile("Image") }, Text = quoteText, Author = quoteAuthor }, 1942 Design = new Design 1943 { 1944 RenderType = RenderType.Column, 1945 Size = contentColumns, 1946 CssClass = "u-color-light--bg u-padding--lg" 1947 } 1948 }; 1949 articlePage.Add("ArticleBodyRow", articleParagraphQuote); 1950 } 1951 } 1952 1953 count++; 1954 } 1955 } 1956 1957 articleBodyRow.Component = new ArticleBodyRow { SubBlocks = articleBodyRow.BlocksList, TopLayout = topLayout, TextLayout = textLayout }; 1958 1959 1960 //Related 1961 string showRelatedArtices = Model.Item.GetString("ShowRelatedArticles") != null ? Model.Item.GetList("ShowRelatedArticles").SelectedValue.ToLower() : "default"; 1962 showRelatedArtices = showRelatedArtices == "default" && GetParentSettingsItem("ShowRelatedArticles") != null ? GetParentSettingsItem("ShowRelatedArticles").ToString().ToLower() : showRelatedArtices; 1963 1964 if (showRelatedArtices == "true") 1965 { 1966 Block articleRelated = new Block 1967 { 1968 Id = "ArticleRelated", 1969 SortId = 30, 1970 Component = new ArticleRelated { Title = Translate("Related articles"), FeedPageId = listPageId, Query = "sourceType=Page&sourcePage=" + parentPageId, PageSize = 4, CurrentPageId = Model.ID.ToString() }, 1971 Design = new Design 1972 { 1973 RenderType = RenderType.Column, 1974 Size = "12" 1975 } 1976 }; 1977 articlePage.Add("ArticleContainer", articleRelated); 1978 } 1979 WriteLiteral("\r\n\r\n"); 1980 WriteLiteral("<section class=\"center-container content-container dw-mod\">\r\n "); 1981 Write(RenderBlockList(articlePage.BlocksRoot.BlocksList)); 1982 WriteLiteral("\r\n</section>\r\n </div>\r\n\r\n"); 1983 if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true) 1984 { 1985 string bName = MyBroker.Broker.Name; 1986 string bClass = "na"; 1987 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 1988 1989 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName)) 1990 { 1991 bName = MyBroker.Broker.CompanyName; 1992 } 1993 try 1994 { 1995 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl"); 1996 if (!string.IsNullOrEmpty(imgUrl)) 1997 { 1998 bImage = imgUrl; 1999 bClass = ""; 2000 } 2001 } 2002 catch 2003 { 2004 // Ignore 2005 } 2006 2007 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId"); 2008 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 2009 2010 WriteLiteral(" <section class=\"din-maegler\">\r\n <div"); 2011 BeginWriteAttribute("class", " class=\"", 204957, "\"", 204984, 2); 2012 WriteAttributeValue("", 204965, "img-wrapper", 204965, 11, true); 2013 WriteAttributeValue(" ", 204976, bClass, 204977, 7, false); 2014 EndWriteAttribute(); 2015 BeginWriteAttribute("style", " style=\"", 204985, "\"", 205024, 3); 2016 WriteAttributeValue("", 204993, "background-image:url(\'", 204993, 22, true); 2017 WriteAttributeValue("", 205015, bImage, 205015, 7, false); 2018 WriteAttributeValue("", 205022, "\')", 205022, 2, true); 2019 EndWriteAttribute(); 2020 WriteLiteral(@"></div> 2021 <div class=""container""> 2022 <div class=""col-12 col-sm-12 col-md-6 offset-md-6""> 2023 <h2>Din personlige mægler</h2> 2024 <div class=""row""> 2025 <div class=""col-12 col-sm-6""> 2026 <p> 2027 <b class=""my-broker-name"">"); 2028 Write(MyBroker.Employee.Name); 2029 WriteLiteral("</b><br>\r\n"); 2030 if (!string.IsNullOrEmpty(MyBroker.Employee.Email)) 2031 { 2032 WriteLiteral("Mail: <a"); 2033 BeginWriteAttribute("href", " href=\"", 205581, "\"", 205641, 2); 2034 WriteAttributeValue("", 205588, "mailto:", 205588, 7, true); 2035 WriteAttributeValue("", 205595, ExtractMaskedEmail(MyBroker.Employee.Email), 205595, 46, false); 2036 EndWriteAttribute(); 2037 WriteLiteral(" class=\"my-broker-email\">"); 2038 Write(ExtractMaskedEmail(MyBroker.Employee.Email)); 2039 WriteLiteral("</a><br>"); 2040 2041 } 2042 if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile)) 2043 { 2044 WriteLiteral("Tlf.: <a"); 2045 BeginWriteAttribute("href", " href=\"", 205940, "\"", 205983, 2); 2046 WriteAttributeValue("", 205947, "tel:", 205947, 4, true); 2047 WriteAttributeValue("", 205951, MyBroker.Employee.PhoneMobile, 205951, 32, false); 2048 EndWriteAttribute(); 2049 WriteLiteral(" class=\"my-broker-phone\">"); 2050 Write(FormatPhoneNumber(MyBroker.Employee.PhoneMobile)); 2051 WriteLiteral("</a>"); 2052 2053 } 2054 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2055 { 2056 WriteLiteral("Tlf.: <a"); 2057 BeginWriteAttribute("href", " href=\"", 206283, "\"", 206322, 2); 2058 WriteAttributeValue("", 206290, "tel:", 206290, 4, true); 2059 WriteAttributeValue("", 206294, MyBroker.Broker.Telephone, 206294, 28, false); 2060 EndWriteAttribute(); 2061 WriteLiteral(" class=\"my-broker-phone\">"); 2062 Write(FormatPhoneNumber(MyBroker.Broker.Telephone)); 2063 WriteLiteral("</a>"); 2064 2065 } 2066 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\">"); 2067 Write(bName); 2068 WriteLiteral("</b><br>\r\n <span class=\"my-broker-company-address\">"); 2069 Write(MyBroker.Broker.Address); 2070 WriteLiteral("</span><br>\r\n <span class=\"my-broker-company-zip\">"); 2071 Write(MyBroker.Broker.ZipCode); 2072 WriteLiteral("</span> <span class=\"my-broker-company-city\">"); 2073 Write(MyBroker.Broker.City); 2074 WriteLiteral("</span><br>\r\n"); 2075 if (!string.IsNullOrEmpty(bEmail)) 2076 { 2077 WriteLiteral("Mail: <a"); 2078 BeginWriteAttribute("href", " href=\"", 207111, "\"", 207134, 2); 2079 WriteAttributeValue("", 207118, "mailto:", 207118, 7, true); 2080 WriteAttributeValue("", 207125, bEmail, 207125, 9, false); 2081 EndWriteAttribute(); 2082 WriteLiteral(" class=\"my-broker-broker-email\">"); 2083 Write(bEmail); 2084 WriteLiteral("</a><br>"); 2085 2086 } 2087 if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2088 { 2089 WriteLiteral("Tlf.: <a"); 2090 BeginWriteAttribute("href", " href=\"", 207399, "\"", 207438, 2); 2091 WriteAttributeValue("", 207406, "tel:", 207406, 4, true); 2092 WriteAttributeValue("", 207410, MyBroker.Broker.Telephone, 207410, 28, false); 2093 EndWriteAttribute(); 2094 WriteLiteral(" class=\"my-broker-broker-phone\">"); 2095 Write(FormatPhoneNumber(MyBroker.Broker.Telephone)); 2096 WriteLiteral("</a>"); 2097 2098 } 2099 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"); 2100 BeginWriteAttribute("href", " href=\"", 207814, "\"", 207849, 2); 2101 WriteAttributeValue("", 207821, "/", 207821, 1, true); 2102 WriteAttributeValue("", 207822, medlemsnummer.Substring(1), 207822, 27, false); 2103 EndWriteAttribute(); 2104 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"); 2105 } 2106 WriteLiteral(" <footer>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n"); 2107 2108 var navigationSettings = new NavigationSettings(); 2109 navigationSettings.StartLevel = 1; 2110 navigationSettings.StopLevel = 3; 2111 navigationSettings.ExpandMode = ExpandMode.All; 2112 navigationSettings.RootAreaId = 1; 2113 navigationSettings.RootNavigationTag = "footer-nav"; 2114 2115 WriteLiteral(" "); 2116 Write(Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings)); 2117 WriteLiteral("\r\n </div>\r\n </div>\r\n </footer>\r\n\r\n"); 2118 if (Model.CurrentUser == null || Model.CurrentUser.ID <= 0) 2119 { 2120 WriteLiteral(@" <div id=""panel-login"" class=""panel panel-form js-loginforms""> 2121 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2122 <b></b> 2123 </button> 2124 <div class=""loginform login""> 2125 "); 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"); 2142 WriteLiteral("<div class=\"loginform forgotpw\" style=\"display: none;\">\r\n <h2 class=\"forgotpw-reg\">"); 2143 Write(Translate("forgot-pw-reg-title", "Glemt adgangskode")); 2144 WriteLiteral("</h2>\r\n <h2 class=\"forgotpw-broker\">"); 2145 Write(Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")); 2146 WriteLiteral("</h2>\r\n <form class=\"form-body js-forgotpw-form\" method=\"post\""); 2147 BeginWriteAttribute("action", " action=\"", 210284, "\"", 210293, 0); 2148 EndWriteAttribute(); 2149 WriteLiteral(">\r\n <input type=\"hidden\" name=\"AccessUserShopID\" class=\"js-forgotpw-shopid\" value=\"SHOP6\" />\r\n <p class=\"forgotpw-reg\">"); 2150 Write(Translate("forgot-pw-reg-teaser", "Har du glemt din adgangskode? Udfyld din e-mail herunder og få tilsendt instrukser for nulstillelse/ændring af din adgangskode.")); 2151 WriteLiteral("</p>\r\n <p class=\"forgotpw-broker\">"); 2152 Write(Translate("forgot-pw-broker-teaser", "Er du blevet tilmeldt via. din mægler, men mangler adgangskode til dit login? Udfyld e-mailen du har oplyst hos mægleren og få tilsendt instrukser for nulstillelse/ændring af din adgangskode.")); 2153 WriteLiteral(@"</p> 2154 <div class=""form-group""> 2155 <input name=""AccessUserEmail"" type=""email"" pattern=""[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$"" placeholder=""E-mail"" class=""form-control js-forgotpw-email"" required /> 2156 </div> 2157 <button class=""btn btn-primary btn-block"" type=""submit"">"); 2158 Write(Translate("forgot-pw-cta", "Nulstil adgangskode")); 2159 WriteLiteral("</button>\r\n <br />\r\n <div class=\"js-forgotpw-message\"></div>\r\n </form>\r\n\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-default btn-block action-login\">"); 2160 Write(Translate("forgot-pw-back-to-login", "Tilbage til login")); 2161 WriteLiteral("</button>\r\n</div>\r\n\r\n </div>\r\n"); 2162 } 2163 WriteLiteral("\r\n"); 2164 WriteLiteral("\r\n"); 2165 2166 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"); 2167 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>"); 2168 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")); 2169 WriteLiteral("</h2>\r\n <form id=\"form-koeberraadgivning\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>"); 2170 Write(Translate("form-navn", "Navn")); 2171 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\" tabindex=\"1\""); 2172 BeginWriteAttribute("placeholder", " placeholder=\'", 212568, "\'", 212650, 1); 2173 WriteAttributeValue("", 212582, Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn"), 212582, 68, false); 2174 EndWriteAttribute(); 2175 BeginWriteAttribute("value", " value=\'", 212651, "\'", 212690, 1); 2176 WriteAttributeValue("", 212659, UserContext.Current.User?.Name, 212659, 31, false); 2177 EndWriteAttribute(); 2178 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2179 Write(Translate("form-email", "E-mail")); 2180 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\""); 2181 BeginWriteAttribute("placeholder", " placeholder=\'", 212967, "\'", 213052, 1); 2182 WriteAttributeValue("", 212981, Translate("Smartpage:Kontakt.Placeholder.Email", "Indtast din e-mail"), 212981, 71, false); 2183 EndWriteAttribute(); 2184 BeginWriteAttribute("value", " value=\'", 213053, "\'", 213093, 1); 2185 WriteAttributeValue("", 213061, UserContext.Current.User?.Email, 213061, 32, false); 2186 EndWriteAttribute(); 2187 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2188 Write(Translate("form-mobile", "Mobil nr.")); 2189 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"3\" maxlength=\"20\" name=\"mobile\""); 2190 BeginWriteAttribute("placeholder", " placeholder=\'", 213404, "\'", 213489, 1); 2191 WriteAttributeValue("", 213418, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 213418, 71, false); 2192 EndWriteAttribute(); 2193 BeginWriteAttribute("value", " value=\'", 213490, "\'", 213530, 1); 2194 WriteAttributeValue("", 213498, UserContext.Current.User?.Phone, 213498, 32, false); 2195 EndWriteAttribute(); 2196 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2197 Write(Translate("form-telephone", "Telefon nr.")); 2198 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"4\" maxlength=\"20\" name=\"telefonnummer\""); 2199 BeginWriteAttribute("placeholder", " placeholder=\'", 213813, "\'", 213897, 1); 2200 WriteAttributeValue("", 213827, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 213827, 70, false); 2201 EndWriteAttribute(); 2202 BeginWriteAttribute("value", " value=\'", 213898, "\'", 213939, 1); 2203 WriteAttributeValue("", 213906, UserContext.Current?.User?.Phone, 213906, 33, false); 2204 EndWriteAttribute(); 2205 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <h3>"); 2206 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2207 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2208 Write(Translate("form-zip", "Post nr")); 2209 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\" tabindex=\"5\""); 2210 BeginWriteAttribute("placeholder", " placeholder=\'", 214347, "\'", 214425, 1); 2211 WriteAttributeValue("", 214361, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 214361, 64, false); 2212 EndWriteAttribute(); 2213 BeginWriteAttribute("value", " value=\"", 214426, "\"", 214442, 1); 2214 WriteAttributeValue("", 214434, userZip, 214434, 8, false); 2215 EndWriteAttribute(); 2216 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2217 Write(Translate("form-city", "By")); 2218 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>"); 2219 Write(Translate("form-adresse", "Adresse")); 2220 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\" tabindex=\"6\""); 2221 BeginWriteAttribute("placeholder", " placeholder=\'", 215009, "\'", 215099, 1); 2222 WriteAttributeValue("", 215023, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 215023, 76, false); 2223 EndWriteAttribute(); 2224 WriteLiteral(" required />\r\n\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2225 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2226 WriteLiteral(@"</label> 2227 </div> 2228 <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""> 2229 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2230 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2231 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\""); 2232 BeginWriteAttribute("placeholder", " placeholder=\'", 215893, "\'", 215971, 1); 2233 WriteAttributeValue("", 215907, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 215907, 64, false); 2234 EndWriteAttribute(); 2235 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\">"); 2236 Write(Translate("KontaktMægler", "Kontakt Mægler")); 2237 WriteLiteral(@"</button> 2238 </div> 2239 </div> 2240 </div> 2241 <div class=""form-group mt-3""> 2242 <div class=""checkbox""> 2243 <label> 2244 <input type=""checkbox"" name=""kontaktmigok"" required /> 2245 2246 <span>"); 2247 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2248 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2249 Write(privacyPolicyText); 2250 WriteLiteral(" <a"); 2251 BeginWriteAttribute("href", " href=\"", 216784, "\"", 216808, 2); 2252 WriteAttributeValue("", 216791, "mailto:", 216791, 7, true); 2253 WriteAttributeValue("", 216798, termsMail, 216798, 10, false); 2254 EndWriteAttribute(); 2255 WriteLiteral(">"); 2256 Write(termsMail); 2257 WriteLiteral("</a>.\r\n Læs mere på <a"); 2258 BeginWriteAttribute("href", " href=\"", 216853, "\"", 216887, 1); 2259 WriteAttributeValue("", 216860, settings_Persondatapolitik, 216860, 27, false); 2260 EndWriteAttribute(); 2261 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n\r\n <input type=\"hidden\" name=\"fn\" value=\"krk\" />\r\n <input type=\"hidden\" name=\"origin\""); 2262 BeginWriteAttribute("value", " value=\"", 217033, "\"", 217041, 0); 2263 EndWriteAttribute(); 2264 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2265 BeginWriteAttribute("value", " value=\"", 217091, "\"", 217099, 0); 2266 EndWriteAttribute(); 2267 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2268 BeginWriteAttribute("value", " value=\"", 217147, "\"", 217171, 1); 2269 WriteAttributeValue("", 217155, Pageview.AreaID, 217155, 16, false); 2270 EndWriteAttribute(); 2271 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2272 BeginWriteAttribute("value", " value=\"", 217220, "\"", 217236, 1); 2273 WriteAttributeValue("", 217228, butikId, 217228, 8, false); 2274 EndWriteAttribute(); 2275 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2276 BeginWriteAttribute("value", " value=\"", 217290, "\"", 217298, 0); 2277 EndWriteAttribute(); 2278 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2279 BeginWriteAttribute("value", " value=\"", 217349, "\"", 217357, 0); 2280 EndWriteAttribute(); 2281 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2282 BeginWriteAttribute("value", " value=\"", 217407, "\"", 217415, 0); 2283 EndWriteAttribute(); 2284 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-advisor\" style=\"display:none;\">\r\n <h2>"); 2285 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2286 WriteLiteral("</h2>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2287 BeginWriteAttribute("src", " src=\"", 217648, "\"", 217654, 0); 2288 EndWriteAttribute(); 2289 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2290 </div> 2291 <div class=""col-6""> 2292 <p class=""js-maegler-name""></p> 2293 <p class=""js-maegler-address""></p> 2294 <p class=""js-maegler-phone""></p> 2295 <p class=""js-maegler-mail""></p> 2296 </div> 2297 </div> 2298 <p>"); 2299 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2300 WriteLiteral(@"</p> 2301 </div> 2302 </div> 2303 2304 <!--ÅBENT HUS--> 2305 <div id=""panel-aabenthus"" class=""panel panel-form""> 2306 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2307 <b></b> 2308 </button> 2309 2310 2311 <form id=""form-aabenthus"" method=""POST"" action=""/InboxHandler""> 2312 <h2>"); 2313 Write(Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")); 2314 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>"); 2315 Write(Translate("Smarptage:Adresse", "Adresse:")); 2316 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>"); 2317 Write(Translate("Smarptage:Date", "Dato:")); 2318 WriteLiteral("</strong> <label class=\"js-aabenthus-date mb-0\"></label>\r\n </div>\r\n <div class=\"d-block mb-4\">\r\n <strong>"); 2319 Write(Translate("Smarptage:Time", "Tidspunkt:")); 2320 WriteLiteral("</strong> <label class=\"js-aabenthus-time mb-0\"></label>\r\n </div>\r\n <h3>"); 2321 Write(Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")); 2322 WriteLiteral("</h3>\r\n <div class=\"form-group\">\r\n <label for=\"aabenthus-name\"><strong>"); 2323 Write(Translate("form-navn", "Navn")); 2324 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2325 BeginWriteAttribute("placeholder", " placeholder=\'", 219272, "\'", 219356, 1); 2326 WriteAttributeValue("", 219286, Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn"), 219286, 70, false); 2327 EndWriteAttribute(); 2328 BeginWriteAttribute("value", " value=\'", 219357, "\'", 219397, 1); 2329 WriteAttributeValue("", 219365, UserContext.Current?.User?.Name, 219365, 32, false); 2330 EndWriteAttribute(); 2331 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2332 Write(Translate("form-email", "E-mail")); 2333 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\""); 2334 BeginWriteAttribute("placeholder", " placeholder=\'", 219661, "\'", 219748, 1); 2335 WriteAttributeValue("", 219675, Translate("Smartpage:Aabenthus.Placeholder.Email", "Indtast din e-mail"), 219675, 73, false); 2336 EndWriteAttribute(); 2337 BeginWriteAttribute("value", " value=\'", 219749, "\'", 219789, 1); 2338 WriteAttributeValue("", 219757, UserContext.Current.User?.Email, 219757, 32, false); 2339 EndWriteAttribute(); 2340 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2341 Write(Translate("form-mobile", "Mobil nr.")); 2342 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2343 BeginWriteAttribute("placeholder", " placeholder=\'", 220082, "\'", 220169, 1); 2344 WriteAttributeValue("", 220096, Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr."), 220096, 73, false); 2345 EndWriteAttribute(); 2346 BeginWriteAttribute("value", " value=\'", 220170, "\'", 220210, 1); 2347 WriteAttributeValue("", 220178, UserContext.Current.User?.Phone, 220178, 32, false); 2348 EndWriteAttribute(); 2349 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2350 Write(Translate("form-telephone", "Telefon nr.")); 2351 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2352 BeginWriteAttribute("placeholder", " placeholder=\'", 220480, "\'", 220566, 1); 2353 WriteAttributeValue("", 220494, Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr."), 220494, 72, false); 2354 EndWriteAttribute(); 2355 BeginWriteAttribute("value", " value=\'", 220567, "\'", 220607, 1); 2356 WriteAttributeValue("", 220575, UserContext.Current.User?.Phone, 220575, 32, false); 2357 EndWriteAttribute(); 2358 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\">"); 2359 Write(Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")); 2360 WriteLiteral(@"</button> 2361 </div> 2362 </div> 2363 </div> 2364 <div class=""form-group""> 2365 <div class=""checkbox""> 2366 <label> 2367 <input type=""checkbox"" name=""kontaktmigok"" required /> 2368 2369 <span class=""base-color"">"); 2370 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2371 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n "); 2372 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>")); 2373 WriteLiteral("\r\n\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"ah\" />\r\n <input type=\"hidden\" name=\"origin\""); 2374 BeginWriteAttribute("value", " value=\"", 221770, "\"", 221778, 0); 2375 EndWriteAttribute(); 2376 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2377 BeginWriteAttribute("value", " value=\"", 221828, "\"", 221843, 1); 2378 WriteAttributeValue("", 221836, userID, 221836, 7, false); 2379 EndWriteAttribute(); 2380 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2381 BeginWriteAttribute("value", " value=\"", 221891, "\"", 221915, 1); 2382 WriteAttributeValue("", 221899, Pageview.AreaID, 221899, 16, false); 2383 EndWriteAttribute(); 2384 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2385 BeginWriteAttribute("value", " value=\"", 221964, "\"", 221980, 1); 2386 WriteAttributeValue("", 221972, butikId, 221972, 8, false); 2387 EndWriteAttribute(); 2388 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsaddresse\""); 2389 BeginWriteAttribute("value", " value=\"", 222034, "\"", 222042, 0); 2390 EndWriteAttribute(); 2391 WriteLiteral(" class=\"js-aabenthus-address-input\" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2392 BeginWriteAttribute("value", " value=\"", 222131, "\"", 222139, 0); 2393 EndWriteAttribute(); 2394 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2395 BeginWriteAttribute("value", " value=\"", 222190, "\"", 222198, 0); 2396 EndWriteAttribute(); 2397 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2398 BeginWriteAttribute("value", " value=\"", 222248, "\"", 222256, 0); 2399 EndWriteAttribute(); 2400 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2401 BeginWriteAttribute("value", " value=\"", 222306, "\"", 222314, 0); 2402 EndWriteAttribute(); 2403 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsnr\""); 2404 BeginWriteAttribute("value", " value=\"", 222362, "\"", 222370, 0); 2405 EndWriteAttribute(); 2406 WriteLiteral(" class=\"js-sagsnr\" />\r\n <input type=\"hidden\" name=\"productId\""); 2407 BeginWriteAttribute("value", " value=\"", 222439, "\"", 222495, 1); 2408 WriteAttributeValue("", 222447, Dynamicweb.Context.Current.Request["ProductId"], 222447, 48, false); 2409 EndWriteAttribute(); 2410 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"aftaleid\""); 2411 BeginWriteAttribute("value", " value=\"", 222545, "\"", 222553, 0); 2412 EndWriteAttribute(); 2413 WriteLiteral(@" class=""js-aftaleid"" /> 2414 2415 <input type=""hidden"" name=""dateMail"" class=""js-aabenthus-date-input"" /> 2416 <input type=""hidden"" name=""timeMail"" class=""js-aabenthus-time-input"" /> 2417 <input type=""hidden"" name=""brokerImageMail"" class=""property-broker-image-input"" /> 2418 <input type=""hidden"" name=""employeeNameMail"" class=""js-maegler-employee-name-input"" /> 2419 <input type=""hidden"" name=""employeeTitleMail"" class=""js-maegler-employee-title-input"" /> 2420 <input type=""hidden"" name=""employeeMailMail"" class=""js-maegler-mail-input"" /> 2421 <input type=""hidden"" name=""employeeMobileMail"" class=""js-maegler-mobile-input"" /> 2422 <input type=""hidden"" name=""employeePhoneMail"" class=""js-maegler-phone-input"" /> 2423 2424 <input type=""hidden"" name=""brokerNameMail"" class=""js-broker-name-input"" /> 2425 <input type=""hidden"" name=""brokerAddressMail"" class=""js-broker-address-input"" /> 2426 <input type=""hidden"" name=""brokerPhoneMail"" class=""js-broker-phone-input"" /> 2427 </form> 2428 <di"); 2429 WriteLiteral("v id=\"tak-aabenthus\" style=\"display:none;\">\r\n <h2>"); 2430 Write(Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")); 2431 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>"); 2432 Write(Translate("Smarptage:Adresse", "Adresse:")); 2433 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>"); 2434 Write(Translate("Smarptage:Date", "Dato:")); 2435 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>"); 2436 Write(Translate("Smarptage:Time", "Tidspunkt:")); 2437 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>"); 2438 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>")); 2439 WriteLiteral("</p>\r\n </div>\r\n <div class=\"js-not-employee\">\r\n <p>"); 2440 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")); 2441 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\""); 2442 BeginWriteAttribute("style", " style=\"", 224945, "\"", 224953, 0); 2443 EndWriteAttribute(); 2444 WriteLiteral(@"></div> 2445 2446 </div> 2447 </div> 2448 <div class=""col-12""> 2449 <div class=""bg-base""> 2450 2451 <div class=""js-employee""> 2452 <h4 class=""js-maegler-employee-name""></h4> 2453 <div class=""icon-container""> 2454 <i class=""fas fa-envelope""></i> <span class=""js-maegler-mail""></span> 2455 </div> 2456 <div class=""icon-container""> 2457 <i class=""fas fa-phone""></i> <span class=""js-maegler-mobile""></span> 2458 </div> 2459 </div> 2460 2461 2462 <h4 class=""js-maegler-name""></h4> 2463 <div class=""icon-container""> 2464 <i class=""fas fa-map-marker-alt""></i> <span class=""js-maegler-address""></span> 2465 </div> 2466 <div class=""icon-container""> 2467 <i class=""fas fa-phone""></i> <span class=""js-maegler-phone""></span>"); 2468 WriteLiteral(@" 2469 2470 </div> 2471 <a class=""btn btn-border"" onclick=""panelKontaktmaeglerGuldkoeber()"">KONTAKT MÆGLER</a> 2472 </div> 2473 </div> 2474 </div> 2475 </div> 2476 </div> 2477 2478 <!-- KONTAKT GULDKØBER --> 2479 <div id=""panel-kontakt-guldkoeber"" class=""panel panel-form""> 2480 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2481 <b></b> 2482 </button> 2483 <h2>"); 2484 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")); 2485 WriteLiteral("</h2>\r\n <form id=\"form-kontaktmaegler\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>"); 2486 Write(Translate("form-navn", "Navn")); 2487 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2488 BeginWriteAttribute("placeholder", " placeholder=\'", 226738, "\'", 226783, 1); 2489 WriteAttributeValue("", 226752, Translate("form-navn", "Navn"), 226752, 31, false); 2490 EndWriteAttribute(); 2491 BeginWriteAttribute("value", " value=\'", 226784, "\'", 226823, 1); 2492 WriteAttributeValue("", 226792, UserContext.Current.User?.Name, 226792, 31, false); 2493 EndWriteAttribute(); 2494 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2495 Write(Translate("form-email", "E-mail")); 2496 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\""); 2497 BeginWriteAttribute("placeholder", " placeholder=\'", 227087, "\'", 227135, 1); 2498 WriteAttributeValue("", 227101, Translate("form-email", "E-mail"), 227101, 34, false); 2499 EndWriteAttribute(); 2500 BeginWriteAttribute("value", " value=\'", 227136, "\'", 227176, 1); 2501 WriteAttributeValue("", 227144, UserContext.Current.User?.Email, 227144, 32, false); 2502 EndWriteAttribute(); 2503 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2504 Write(Translate("form-mobile", "Mobil nr.")); 2505 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2506 BeginWriteAttribute("placeholder", " placeholder=\'", 227474, "\'", 227559, 1); 2507 WriteAttributeValue("", 227488, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 227488, 71, false); 2508 EndWriteAttribute(); 2509 BeginWriteAttribute("value", " value=\'", 227560, "\'", 227600, 1); 2510 WriteAttributeValue("", 227568, UserContext.Current.User?.Phone, 227568, 32, false); 2511 EndWriteAttribute(); 2512 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2513 Write(Translate("form-telephone", "Telefon nr.")); 2514 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2515 BeginWriteAttribute("placeholder", " placeholder=\'", 227870, "\'", 227954, 1); 2516 WriteAttributeValue("", 227884, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 227884, 70, false); 2517 EndWriteAttribute(); 2518 BeginWriteAttribute("value", " value=\'", 227955, "\'", 227995, 1); 2519 WriteAttributeValue("", 227963, UserContext.Current.User?.Phone, 227963, 32, false); 2520 EndWriteAttribute(); 2521 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2522 Write(Translate("form-zip", "Post nr")); 2523 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2524 BeginWriteAttribute("placeholder", " placeholder=\'", 228311, "\'", 228389, 1); 2525 WriteAttributeValue("", 228325, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 228325, 64, false); 2526 EndWriteAttribute(); 2527 BeginWriteAttribute("value", " value=\"", 228390, "\"", 228406, 1); 2528 WriteAttributeValue("", 228398, userZip, 228398, 8, false); 2529 EndWriteAttribute(); 2530 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2531 Write(Translate("form-city", "By")); 2532 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>"); 2533 Write(Translate("form-adresse", "Adresse")); 2534 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2535 BeginWriteAttribute("placeholder", " placeholder=\'", 228962, "\'", 229052, 1); 2536 WriteAttributeValue("", 228976, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 228976, 76, false); 2537 EndWriteAttribute(); 2538 BeginWriteAttribute("value", " value=\"", 229053, "\"", 229073, 1); 2539 WriteAttributeValue("", 229061, userAddress, 229061, 12, false); 2540 EndWriteAttribute(); 2541 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2542 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2543 WriteLiteral("</label>\r\n </div>\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\""); 2544 BeginWriteAttribute("placeholder", " placeholder=\'", 229399, "\'", 229477, 1); 2545 WriteAttributeValue("", 229413, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 229413, 64, false); 2546 EndWriteAttribute(); 2547 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>"); 2548 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2549 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\">"); 2550 Write(Translate("KontaktMægler", "Kontakt Mægler")); 2551 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2552 Write(privacyPolicyText); 2553 WriteLiteral(" <a"); 2554 BeginWriteAttribute("href", " href=\"", 230263, "\"", 230287, 2); 2555 WriteAttributeValue("", 230270, "mailto:", 230270, 7, true); 2556 WriteAttributeValue("", 230277, termsMail, 230277, 10, false); 2557 EndWriteAttribute(); 2558 WriteLiteral(">"); 2559 Write(termsMail); 2560 WriteLiteral("</a>.\r\n Læs mere på <a"); 2561 BeginWriteAttribute("href", " href=\"", 230332, "\"", 230366, 1); 2562 WriteAttributeValue("", 230339, settings_Persondatapolitik, 230339, 27, false); 2563 EndWriteAttribute(); 2564 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"gk\" />\r\n <input type=\"hidden\" name=\"origin\""); 2565 BeginWriteAttribute("value", " value=\"", 230509, "\"", 230517, 0); 2566 EndWriteAttribute(); 2567 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2568 BeginWriteAttribute("value", " value=\"", 230567, "\"", 230582, 1); 2569 WriteAttributeValue("", 230575, userID, 230575, 7, false); 2570 EndWriteAttribute(); 2571 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2572 BeginWriteAttribute("value", " value=\"", 230630, "\"", 230654, 1); 2573 WriteAttributeValue("", 230638, Pageview.AreaID, 230638, 16, false); 2574 EndWriteAttribute(); 2575 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\""); 2576 BeginWriteAttribute("value", " value=\"", 230703, "\"", 230719, 1); 2577 WriteAttributeValue("", 230711, butikId, 230711, 8, false); 2578 EndWriteAttribute(); 2579 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2580 BeginWriteAttribute("value", " value=\"", 230773, "\"", 230781, 0); 2581 EndWriteAttribute(); 2582 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2583 BeginWriteAttribute("value", " value=\"", 230832, "\"", 230840, 0); 2584 EndWriteAttribute(); 2585 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2586 BeginWriteAttribute("value", " value=\"", 230890, "\"", 230898, 0); 2587 EndWriteAttribute(); 2588 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2589 BeginWriteAttribute("value", " value=\"", 230948, "\"", 230956, 0); 2590 EndWriteAttribute(); 2591 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-maegler-guldkoeber\" style=\"display:none;\">\r\n <h2>"); 2592 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2593 WriteLiteral("</h2>\r\n <p>"); 2594 Write(Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")); 2595 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2596 BeginWriteAttribute("src", " src=\"", 231318, "\"", 231324, 0); 2597 EndWriteAttribute(); 2598 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2599 </div> 2600 <div class=""col-6""> 2601 <p class=""js-maegler-name""></p> 2602 <p class=""js-maegler-address""></p> 2603 <p class=""js-maegler-phone""></p> 2604 <p class=""js-maegler-mail""></p> 2605 </div> 2606 </div> 2607 <p>"); 2608 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2609 WriteLiteral(@"</p> 2610 </div> 2611 </div> 2612 2613 <!-- BESTIL SALGSVURDERING --> 2614 <div id=""panel-salgsvurdering"" class=""panel panel-form""> 2615 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2616 <b></b> 2617 </button> 2618 2619 <form id=""bestil-salgsvurdering"" class=""buyer-advisor-form js-buyer-advisor-form"" method=""POST"" action=""/InboxHandler""> 2620 <h2 class=""js-buyer-advisor-header"">"); 2621 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")); 2622 WriteLiteral("</h2>\r\n <p>"); 2623 Write(Translate("form-salgsvurdering-beskrivelse", "")); 2624 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2625 Write(Translate("form-navn", "Navn")); 2626 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2627 BeginWriteAttribute("placeholder", " placeholder=\'", 232481, "\'", 232570, 1); 2628 WriteAttributeValue("", 232495, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 232495, 75, false); 2629 EndWriteAttribute(); 2630 BeginWriteAttribute("value", " value=\'", 232571, "\'", 232610, 1); 2631 WriteAttributeValue("", 232579, UserContext.Current.User?.Name, 232579, 31, false); 2632 EndWriteAttribute(); 2633 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2634 Write(Translate("form-email", "E-mail")); 2635 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\""); 2636 BeginWriteAttribute("placeholder", " placeholder=\'", 232874, "\'", 232966, 1); 2637 WriteAttributeValue("", 232888, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 232888, 78, false); 2638 EndWriteAttribute(); 2639 BeginWriteAttribute("value", " value=\'", 232967, "\'", 233007, 1); 2640 WriteAttributeValue("", 232975, UserContext.Current.User?.Email, 232975, 32, false); 2641 EndWriteAttribute(); 2642 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2643 Write(Translate("form-mobile", "Mobil nr.")); 2644 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2645 BeginWriteAttribute("placeholder", " placeholder=\'", 233305, "\'", 233397, 1); 2646 WriteAttributeValue("", 233319, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 233319, 78, false); 2647 EndWriteAttribute(); 2648 BeginWriteAttribute("value", " value=\'", 233398, "\'", 233438, 1); 2649 WriteAttributeValue("", 233406, UserContext.Current.User?.Phone, 233406, 32, false); 2650 EndWriteAttribute(); 2651 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2652 Write(Translate("form-telephone", "Telefon nr.")); 2653 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2654 BeginWriteAttribute("placeholder", " placeholder=\'", 233708, "\'", 233799, 1); 2655 WriteAttributeValue("", 233722, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 233722, 77, false); 2656 EndWriteAttribute(); 2657 BeginWriteAttribute("value", " value=\'", 233800, "\'", 233840, 1); 2658 WriteAttributeValue("", 233808, UserContext.Current.User?.Phone, 233808, 32, false); 2659 EndWriteAttribute(); 2660 WriteLiteral(" />\r\n </div>\r\n\r\n </div>\r\n\r\n <h3>"); 2661 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2662 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2663 Write(Translate("form-zip", "Post nr")); 2664 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2665 BeginWriteAttribute("placeholder", " placeholder=\'", 234260, "\'", 234338, 1); 2666 WriteAttributeValue("", 234274, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 234274, 64, false); 2667 EndWriteAttribute(); 2668 BeginWriteAttribute("value", " value=\"", 234339, "\"", 234355, 1); 2669 WriteAttributeValue("", 234347, userZip, 234347, 8, false); 2670 EndWriteAttribute(); 2671 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2672 Write(Translate("form-city", "By")); 2673 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>"); 2674 Write(Translate("form-adresse", "Adresse")); 2675 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2676 BeginWriteAttribute("placeholder", " placeholder=\'", 234909, "\'", 234999, 1); 2677 WriteAttributeValue("", 234923, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 234923, 76, false); 2678 EndWriteAttribute(); 2679 BeginWriteAttribute("value", " value=\"", 235000, "\"", 235020, 1); 2680 WriteAttributeValue("", 235008, userAddress, 235008, 12, false); 2681 EndWriteAttribute(); 2682 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2683 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2684 WriteLiteral(@"</label> 2685 </div> 2686 2687 <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""> 2688 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2689 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2690 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\""); 2691 BeginWriteAttribute("placeholder", " placeholder=\'", 235790, "\'", 235868, 1); 2692 WriteAttributeValue("", 235804, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 235804, 64, false); 2693 EndWriteAttribute(); 2694 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>"); 2695 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")); 2696 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\""); 2697 BeginWriteAttribute("id", " id=\"", 236314, "\"", 236319, 0); 2698 EndWriteAttribute(); 2699 WriteLiteral(" name=\"choose-broker\""); 2700 BeginWriteAttribute("value", " value=\"", 236341, "\"", 236349, 0); 2701 EndWriteAttribute(); 2702 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\""); 2703 BeginWriteAttribute("for", " for=\"", 236415, "\"", 236421, 0); 2704 EndWriteAttribute(); 2705 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"); 2706 BeginWriteAttribute("src", " src=\"", 236667, "\"", 236673, 0); 2707 EndWriteAttribute(); 2708 WriteLiteral(@" class=""img-fluid js-broker-image""> 2709 </div> 2710 <div class=""col-6""> 2711 <span class=""d-block""> 2712 <strong class=""js-choose-broker-name""></strong> 2713 </span> 2714 <span class=""js-choose-broker-address""></span> 2715 <input type=""hidden"" class=""js-choose-broker-phone"""); 2716 BeginWriteAttribute("value", " value=\"", 237085, "\"", 237093, 0); 2717 EndWriteAttribute(); 2718 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\""); 2719 BeginWriteAttribute("value", " value=\"", 237174, "\"", 237182, 0); 2720 EndWriteAttribute(); 2721 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\">"); 2722 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")); 2723 WriteLiteral(@"</h3> 2724 <div class=""js-choose-broker col-12""> 2725 </div> 2726 2727 </div> 2728 2729 <div class=""form-group mt-4""> 2730 <div class=""checkbox""> 2731 <label> 2732 <input type=""checkbox"" name=""kontaktmigok"" required /> 2733 2734 <span class=""consent-checkbox"">"); 2735 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2736 WriteLiteral(@"</span> 2737 2738 </label> 2739 </div> 2740 </div> 2741 <div class=""form-group""> 2742 <div class=""row""> 2743 <div class=""col-12""> 2744 <button type=""submit"" class=""btn btn-green btn-block js-buyer-advisor-button"">"); 2745 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")); 2746 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2747 Write(privacyPolicyText); 2748 WriteLiteral(" <a"); 2749 BeginWriteAttribute("href", " href=\"", 238342, "\"", 238366, 2); 2750 WriteAttributeValue("", 238349, "mailto:", 238349, 7, true); 2751 WriteAttributeValue("", 238356, termsMail, 238356, 10, false); 2752 EndWriteAttribute(); 2753 WriteLiteral(">"); 2754 Write(termsMail); 2755 WriteLiteral("</a>.\r\n Læs mere på <a"); 2756 BeginWriteAttribute("href", " href=\"", 238411, "\"", 238445, 1); 2757 WriteAttributeValue("", 238418, settings_Persondatapolitik, 238418, 27, false); 2758 EndWriteAttribute(); 2759 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\""); 2760 BeginWriteAttribute("value", " value=\"", 238622, "\"", 238630, 0); 2761 EndWriteAttribute(); 2762 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2763 BeginWriteAttribute("value", " value=\"", 238680, "\"", 238695, 1); 2764 WriteAttributeValue("", 238688, userID, 238688, 7, false); 2765 EndWriteAttribute(); 2766 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2767 BeginWriteAttribute("value", " value=\"", 238743, "\"", 238767, 1); 2768 WriteAttributeValue("", 238751, Pageview.AreaID, 238751, 16, false); 2769 EndWriteAttribute(); 2770 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning\" name=\"boligvisning\""); 2771 BeginWriteAttribute("value", " value=\"", 238839, "\"", 238847, 0); 2772 EndWriteAttribute(); 2773 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-butikid\" name=\"butikId\""); 2774 BeginWriteAttribute("value", " value=\"", 238930, "\"", 238938, 0); 2775 EndWriteAttribute(); 2776 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-sagsnr\" name=\"sagsnr\""); 2777 BeginWriteAttribute("value", " value=\"", 239019, "\"", 239027, 0); 2778 EndWriteAttribute(); 2779 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\""); 2780 BeginWriteAttribute("value", " value=\"", 239078, "\"", 239134, 1); 2781 WriteAttributeValue("", 239086, Dynamicweb.Context.Current.Request["ProductId"], 239086, 48, false); 2782 EndWriteAttribute(); 2783 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2784 BeginWriteAttribute("value", " value=\"", 239188, "\"", 239196, 0); 2785 EndWriteAttribute(); 2786 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2787 BeginWriteAttribute("value", " value=\"", 239247, "\"", 239255, 0); 2788 EndWriteAttribute(); 2789 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 2790 BeginWriteAttribute("value", " value=\"", 239305, "\"", 239313, 0); 2791 EndWriteAttribute(); 2792 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 2793 BeginWriteAttribute("value", " value=\"", 239363, "\"", 239371, 0); 2794 EndWriteAttribute(); 2795 WriteLiteral(" />\r\n <input class=\"js-value-check\" type=\"hidden\" name=\"valueCheck\""); 2796 BeginWriteAttribute("value", " value=\"", 239446, "\"", 239454, 0); 2797 EndWriteAttribute(); 2798 WriteLiteral(" />\r\n <input class=\"js-green-appraisal\" type=\"hidden\" name=\"greenAppraisal\""); 2799 BeginWriteAttribute("value", " value=\"", 239537, "\"", 239545, 0); 2800 EndWriteAttribute(); 2801 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>"); 2802 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 2803 WriteLiteral("</h2>\r\n <p>"); 2804 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")); 2805 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 2806 BeginWriteAttribute("src", " src=\"", 239907, "\"", 239913, 0); 2807 EndWriteAttribute(); 2808 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 2809 </div> 2810 <div class=""col-6""> 2811 <p class=""js-maegler-name""></p> 2812 <p class=""js-maegler-address""></p> 2813 <p class=""js-maegler-phone""></p> 2814 <p class=""js-maegler-mail""></p> 2815 </div> 2816 </div> 2817 <p>"); 2818 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 2819 WriteLiteral(@"</p> 2820 </div> 2821 </div> 2822 2823 <!-- BESTIL SALGSVURDERING GULDKØBER --> 2824 <div id=""panel-salgsvurdering-guldkoeber"" class=""panel panel-form""> 2825 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close""> 2826 <b></b> 2827 </button> 2828 2829 <form id=""bestil-salgsvurdering-guldkoeber"" method=""POST"" action=""/InboxHandler""> 2830 <h2>"); 2831 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")); 2832 WriteLiteral("</h2>\r\n <p>"); 2833 Write(Translate("form-salgsvurdering-beskrivelse", "")); 2834 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2835 Write(Translate("form-navn", "Navn")); 2836 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\""); 2837 BeginWriteAttribute("placeholder", " placeholder=\'", 241021, "\'", 241110, 1); 2838 WriteAttributeValue("", 241035, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 241035, 75, false); 2839 EndWriteAttribute(); 2840 BeginWriteAttribute("value", " value=\'", 241111, "\'", 241150, 1); 2841 WriteAttributeValue("", 241119, UserContext.Current.User?.Name, 241119, 31, false); 2842 EndWriteAttribute(); 2843 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>"); 2844 Write(Translate("form-email", "E-mail")); 2845 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\""); 2846 BeginWriteAttribute("placeholder", " placeholder=\'", 241414, "\'", 241506, 1); 2847 WriteAttributeValue("", 241428, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 241428, 78, false); 2848 EndWriteAttribute(); 2849 BeginWriteAttribute("value", " value=\'", 241507, "\'", 241547, 1); 2850 WriteAttributeValue("", 241515, UserContext.Current.User?.Email, 241515, 32, false); 2851 EndWriteAttribute(); 2852 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>"); 2853 Write(Translate("form-telephone", "Telefon nr.")); 2854 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\""); 2855 BeginWriteAttribute("placeholder", " placeholder=\'", 241856, "\'", 241947, 1); 2856 WriteAttributeValue("", 241870, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 241870, 77, false); 2857 EndWriteAttribute(); 2858 BeginWriteAttribute("value", " value=\'", 241948, "\'", 241988, 1); 2859 WriteAttributeValue("", 241956, UserContext.Current.User?.Phone, 241956, 32, false); 2860 EndWriteAttribute(); 2861 WriteLiteral(" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>"); 2862 Write(Translate("form-mobile", "Mobil nr.")); 2863 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\""); 2864 BeginWriteAttribute("placeholder", " placeholder=\'", 242238, "\'", 242330, 1); 2865 WriteAttributeValue("", 242252, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 242252, 78, false); 2866 EndWriteAttribute(); 2867 BeginWriteAttribute("value", " value=\'", 242331, "\'", 242371, 1); 2868 WriteAttributeValue("", 242339, UserContext.Current.User?.Phone, 242339, 32, false); 2869 EndWriteAttribute(); 2870 WriteLiteral(" required />\r\n </div>\r\n </div>\r\n\r\n <h3>"); 2871 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")); 2872 WriteLiteral("</h3>\r\n\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>"); 2873 Write(Translate("form-zip", "Post nr")); 2874 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\""); 2875 BeginWriteAttribute("placeholder", " placeholder=\'", 242800, "\'", 242878, 1); 2876 WriteAttributeValue("", 242814, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 242814, 64, false); 2877 EndWriteAttribute(); 2878 BeginWriteAttribute("value", " value=\"", 242879, "\"", 242895, 1); 2879 WriteAttributeValue("", 242887, userZip, 242887, 8, false); 2880 EndWriteAttribute(); 2881 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>"); 2882 Write(Translate("form-city", "By")); 2883 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>"); 2884 Write(Translate("form-adresse", "Adresse")); 2885 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\""); 2886 BeginWriteAttribute("placeholder", " placeholder=\'", 243449, "\'", 243539, 1); 2887 WriteAttributeValue("", 243463, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 243463, 76, false); 2888 EndWriteAttribute(); 2889 BeginWriteAttribute("value", " value=\"", 243540, "\"", 243560, 1); 2890 WriteAttributeValue("", 243548, userAddress, 243548, 12, false); 2891 EndWriteAttribute(); 2892 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">"); 2893 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")); 2894 WriteLiteral(@"</label> 2895 </div> 2896 2897 <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""> 2898 <strong class=""f-12""><i class=""fas fa-plus""></i> "); 2899 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")); 2900 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\""); 2901 BeginWriteAttribute("placeholder", " placeholder=\'", 244330, "\'", 244408, 1); 2902 WriteAttributeValue("", 244344, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 244344, 64, false); 2903 EndWriteAttribute(); 2904 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>"); 2905 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")); 2906 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\""); 2907 BeginWriteAttribute("id", " id=\"", 244852, "\"", 244857, 0); 2908 EndWriteAttribute(); 2909 WriteLiteral(" name=\"choose-broker-gk\""); 2910 BeginWriteAttribute("value", " value=\"", 244882, "\"", 244890, 0); 2911 EndWriteAttribute(); 2912 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\""); 2913 BeginWriteAttribute("for", " for=\"", 244956, "\"", 244962, 0); 2914 EndWriteAttribute(); 2915 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"); 2916 BeginWriteAttribute("src", " src=\"", 245208, "\"", 245214, 0); 2917 EndWriteAttribute(); 2918 WriteLiteral(@" class=""img-fluid js-broker-image""> 2919 </div> 2920 <div class=""col-6""> 2921 <span class=""d-block""> 2922 <strong class=""js-choose-broker-name""></strong> 2923 </span> 2924 <span class=""js-choose-broker-address""></span> 2925 <input type=""hidden"" class=""js-choose-broker-phone"""); 2926 BeginWriteAttribute("value", " value=\"", 245626, "\"", 245634, 0); 2927 EndWriteAttribute(); 2928 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\""); 2929 BeginWriteAttribute("value", " value=\"", 245715, "\"", 245723, 0); 2930 EndWriteAttribute(); 2931 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\">"); 2932 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")); 2933 WriteLiteral(@"</h3> 2934 <div class=""js-choose-broker col-12""> 2935 </div> 2936 2937 </div> 2938 2939 2940 <div class=""form-group""> 2941 <div class=""row""> 2942 <div class=""col-12""> 2943 <button type=""submit"" class=""btn btn-green btn-block"">"); 2944 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")); 2945 WriteLiteral(@"</button> 2946 </div> 2947 </div> 2948 </div> 2949 <div class=""form-group""> 2950 <div class=""checkbox""> 2951 <label> 2952 <input type=""checkbox"" name=""kontaktmigok"" required /> 2953 2954 <span>"); 2955 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")); 2956 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n "); 2957 Write(privacyPolicyText); 2958 WriteLiteral(" <a"); 2959 BeginWriteAttribute("href", " href=\"", 246831, "\"", 246855, 2); 2960 WriteAttributeValue("", 246838, "mailto:", 246838, 7, true); 2961 WriteAttributeValue("", 246845, termsMail, 246845, 10, false); 2962 EndWriteAttribute(); 2963 WriteLiteral(">"); 2964 Write(termsMail); 2965 WriteLiteral("</a>.\r\n Læs mere på <a"); 2966 BeginWriteAttribute("href", " href=\"", 246900, "\"", 246934, 1); 2967 WriteAttributeValue("", 246907, settings_Persondatapolitik, 246907, 27, false); 2968 EndWriteAttribute(); 2969 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\""); 2970 BeginWriteAttribute("value", " value=\"", 247111, "\"", 247119, 0); 2971 EndWriteAttribute(); 2972 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\""); 2973 BeginWriteAttribute("value", " value=\"", 247169, "\"", 247184, 1); 2974 WriteAttributeValue("", 247177, userID, 247177, 7, false); 2975 EndWriteAttribute(); 2976 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\""); 2977 BeginWriteAttribute("value", " value=\"", 247232, "\"", 247256, 1); 2978 WriteAttributeValue("", 247240, Pageview.AreaID, 247240, 16, false); 2979 EndWriteAttribute(); 2980 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning-gk\" name=\"boligvisning\""); 2981 BeginWriteAttribute("value", " value=\"", 247331, "\"", 247339, 0); 2982 EndWriteAttribute(); 2983 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-butikid\" name=\"butikId\""); 2984 BeginWriteAttribute("value", " value=\"", 247425, "\"", 247433, 0); 2985 EndWriteAttribute(); 2986 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-sagsnr\" name=\"sagsnr\""); 2987 BeginWriteAttribute("value", " value=\"", 247517, "\"", 247525, 0); 2988 EndWriteAttribute(); 2989 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\""); 2990 BeginWriteAttribute("value", " value=\"", 247576, "\"", 247632, 1); 2991 WriteAttributeValue("", 247584, Dynamicweb.Context.Current.Request["ProductId"], 247584, 48, false); 2992 EndWriteAttribute(); 2993 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\""); 2994 BeginWriteAttribute("value", " value=\"", 247686, "\"", 247694, 0); 2995 EndWriteAttribute(); 2996 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\""); 2997 BeginWriteAttribute("value", " value=\"", 247745, "\"", 247753, 0); 2998 EndWriteAttribute(); 2999 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\""); 3000 BeginWriteAttribute("value", " value=\"", 247803, "\"", 247811, 0); 3001 EndWriteAttribute(); 3002 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\""); 3003 BeginWriteAttribute("value", " value=\"", 247861, "\"", 247869, 0); 3004 EndWriteAttribute(); 3005 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>"); 3006 Write(Translate("TakForDinInteresse", "Tak for din interesse")); 3007 WriteLiteral("</h2>\r\n <p>"); 3008 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")); 3009 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img"); 3010 BeginWriteAttribute("src", " src=\"", 248231, "\"", 248237, 0); 3011 EndWriteAttribute(); 3012 WriteLiteral(@" class=""img-fluid js-maegler-img"" /> 3013 </div> 3014 <div class=""col-6""> 3015 <p class=""js-maegler-name""></p> 3016 <p class=""js-maegler-address""></p> 3017 <p class=""js-maegler-phone""></p> 3018 <p class=""js-maegler-mail""></p> 3019 </div> 3020 </div> 3021 <p>"); 3022 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")); 3023 WriteLiteral("</p>\r\n </div>\r\n</div>\r\n\r\n"); 3024 WriteLiteral("\r\n"); 3025 3026 var areaItem = Pageview.Area.Item; 3027 bool turnstileDisabled = areaItem != null 3028 && areaItem.ContainsKey("DisableTurnstile") 3029 && Converter.ToBoolean(areaItem["DisableTurnstile"]); 3030 bool turnstileEnabled = !turnstileDisabled && RealMaeglerne.Dynamicweb.Config.IsTurnstileConfigured(); 3031 WriteLiteral("\r\n"); 3032 if (turnstileEnabled) 3033 { 3034 string turnstileSiteKey = RealMaeglerne.Dynamicweb.Config.GetTurnstileSiteKey(); 3035 string turnstileAreaId = Converter.ToString(Pageview.Area.ID); 3036 string turnstileLanguage = Pageview.Area.CultureInfo.Name; 3037 3038 WriteLiteral(" <div class=\"js-turnstile-configuration d-none\"\r\n data-site-key=\""); 3039 Write(HtmlEncoder.HtmlAttributeEncode(turnstileSiteKey)); 3040 WriteLiteral("\"\r\n data-area-id=\""); 3041 Write(HtmlEncoder.HtmlAttributeEncode(turnstileAreaId)); 3042 WriteLiteral("\">\r\n <input type=\"hidden\"\r\n class=\"js-turnstile-language\""); 3043 BeginWriteAttribute("value", "\r\n value=\"", 249606, "\"", 249681, 1); 3044 WriteAttributeValue("", 249630, HtmlEncoder.HtmlAttributeEncode(turnstileLanguage), 249630, 51, false); 3045 EndWriteAttribute(); 3046 WriteLiteral(" />\r\n <input type=\"hidden\"\r\n class=\"js-turnstile-validation-message-text\""); 3047 BeginWriteAttribute("value", "\r\n value=\"", 249776, "\"", 249926, 1); 3048 WriteAttributeValue("", 249800, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Turnstile.ValidationMessage", "Bekræft venligst, at du ikke er en robot.")), 249800, 126, false); 3049 EndWriteAttribute(); 3050 WriteLiteral(" />\r\n </div>\r\n"); 3051 } 3052 WriteLiteral("\r\n\r\n <div class=\"overlay-wrapper\"></div>\r\n <div class=\"dropdown-overlay\"></div>\r\n <div class=\"loader-inner ball-pulse\"></div>\r\n\r\n"); 3053 3054 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js")); 3055 WriteLiteral(" <script type=\"text/javascript\""); 3056 BeginWriteAttribute("src", " src=\'", 250292, "\'", 250396, 3); 3057 WriteAttributeValue("", 250298, TemplateUrl, 250298, 14, false); 3058 WriteAttributeValue("", 250312, "assets/webpack/js/3rdparty/viamapstrap.js?", 250312, 42, true); 3059 WriteAttributeValue("", 250354, viamapstrapFileInfo.LastWriteTime.Ticks, 250354, 42, false); 3060 EndWriteAttribute(); 3061 WriteLiteral(" async></script>\r\n"); 3062 3063 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js")); 3064 WriteLiteral(" <script type=\"text/javascript\""); 3065 BeginWriteAttribute("src", " src=\'", 250599, "\'", 250686, 3); 3066 WriteAttributeValue("", 250605, TemplateUrl, 250605, 14, false); 3067 WriteAttributeValue("", 250619, "assets/dist/bundle.app.min.js?", 250619, 30, true); 3068 WriteAttributeValue("", 250649, bundleFileInfo.LastWriteTime.Ticks, 250649, 37, false); 3069 EndWriteAttribute(); 3070 WriteLiteral(" async></script>\r\n"); 3071 WriteLiteral("\r\n "); 3072 Write(RenderSnippet("JavaScriptBottom")); 3073 WriteLiteral("\r\n\r\n"); 3074 if (Context.Current.Request.QueryString["ShowLogin"] == "true") 3075 { 3076 WriteLiteral(" <input class=\"js-showLogin\" value=\"true\" />\r\n"); 3077 } 3078 WriteLiteral("\r\n"); 3079 if (!string.IsNullOrEmpty(settings_ConduzeId)) 3080 { 3081 WriteLiteral(" <script type=\"text/javascript\" id=\"conduze-sdk\""); 3082 BeginWriteAttribute("src", " src=\"", 251010, "\"", 251071, 3); 3083 WriteAttributeValue("", 251016, "https://cdn.conduze.com/", 251016, 24, true); 3084 WriteAttributeValue("", 251040, settings_ConduzeId, 251040, 19, false); 3085 WriteAttributeValue("", 251059, "/tracking.js", 251059, 12, true); 3086 EndWriteAttribute(); 3087 WriteLiteral(" async></script>\r\n"); 3088 } 3089 WriteLiteral("\r\n"); 3090 if (!string.IsNullOrEmpty(settings_Weply)) 3091 { 3092 WriteLiteral(" <script"); 3093 BeginWriteAttribute("src", " src=\"", 251170, "\"", 251221, 2); 3094 WriteAttributeValue("", 251176, "https://app.weply.chat/widget/", 251176, 30, true); 3095 WriteAttributeValue("", 251206, settings_Weply, 251206, 15, false); 3096 EndWriteAttribute(); 3097 WriteLiteral(" async></script>\r\n"); 3098 } 3099 WriteLiteral("\r\n</body>\r\n</html>\r\n\r\n"); 3100 } 3101 #pragma warning restore 1998 3102 3103 void RenderErhvervsTypeCheckboxes(string productGroupFilter) 3104 { 3105 WriteLiteral(@" <div class=""col-xs-6 col-md-4""> 3106 <div class=""checkbox""> 3107 <label> 3108 <input type=""checkbox"" name=""propertytype"" value=""bolig/erhverv, kombineret erhverv og bolig, byejendom (kontor, butik, beboelse)"" /> 3109 <span>Bolig/erhverv</span> 3110 </label> 3111 </div> 3112 <div class=""checkbox""> 3113 <label> 3114 <input type=""checkbox"" name=""propertytype"" value=""erhvervsgrund"" /> 3115 <span>Erhvervsgrund</span> 3116 </label> 3117 </div> 3118 <div class=""checkbox""> 3119 <label> 3120 <input type=""checkbox"" name=""propertytype"" value=""boligudlejning"" /> 3121 <span>Boligudlejningsejendom</span> 3122 </label> 3123 </div> 3124 <div class=""checkbox""> 3125 <label> 3126 <input type=""checkbox"" name=""propertytype"" value=""kontor, klinik, kontorhotel, showroom, under"); 3127 WriteLiteral(@"visningslokaler"" /> 3128 <span>Kontor</span> 3129 </label> 3130 </div> 3131 </div> 3132 <div class=""col-xs-6 col-md-4""> 3133 <div class=""checkbox""> 3134 <label> 3135 <input type=""checkbox"" name=""propertytype"" value=""butik / detail, butik / detailhandel"" /> 3136 <span>Butik/detailhandel</span> 3137 </label> 3138 </div> 3139 <div class=""checkbox""> 3140 <label> 3141 <input type=""checkbox"" name=""propertytype"" value=""industri / logistik, håndværk, industri, kontor / lager, logistik"" /> 3142 <span>Produktion/lager</span> 3143 </label> 3144 </div> 3145 <div class=""checkbox""> 3146 <label> 3147 <input type=""checkbox"" name=""propertytype"" value=""hotel - kursusejendom, restaurant"" /> 3148 <span>Hotel og restaurant</span> 3149 </label> 3150 </div> 3151 <div c"); 3152 WriteLiteral(@"lass=""checkbox""> 3153 <label> 3154 <input type=""checkbox"" name=""propertytype"" value=""projekt ejendom"" /> 3155 <span>Projektejendom</span> 3156 </label> 3157 </div> 3158 </div> 3159 <div class=""col-xs-6 col-md-4""> 3160 <div class=""checkbox""> 3161 <label> 3162 <input type=""checkbox"" name=""propertytype"" value=""andet"" /> 3163 <span>Andet</span> 3164 </label> 3165 </div> 3166 </div> 3167 "); 3168 WriteLiteral(" <input type=\"hidden\" name=\"propertycategory\" value=\"erhverv, udlejning\" />\r\n <input type=\"hidden\" name=\"filtrering\""); 3169 BeginWriteAttribute("value", " value=\"", 3445, "\"", 3472, 1); 3170 WriteAttributeValue("", 3453, productGroupFilter, 3453, 19, false); 3171 EndWriteAttribute(); 3172 WriteLiteral(" />\r\n"); 3173 } 3174 void RenderBoligtypeCheckboxes() 3175 { 3176 WriteLiteral(@" <div class=""col-6 col-md-4""> 3177 <div class=""checkbox""> 3178 <label> 3179 <input type=""checkbox"" name=""propertytype"" value=""villa"" /> 3180 <span>Villa</span> 3181 </label> 3182 </div> 3183 <div class=""checkbox""> 3184 <label> 3185 <input type=""checkbox"" name=""propertytype"" value=""rækkehus"" /> 3186 <span>Rækkehus</span> 3187 </label> 3188 </div> 3189 <div class=""checkbox""> 3190 <label> 3191 <input type=""checkbox"" name=""propertytype"" value=""villalejlighed"" /> 3192 <span>Villalejlighed</span> 3193 </label> 3194 </div> 3195 <div class=""checkbox""> 3196 <label> 3197 <input type=""checkbox"" name=""propertytype"" value=""andelsbolig"" /> 3198 <span>Andelsbolig</span> 3199 </label> 3200 </div> 3201 </div> 3202 <div class=""co"); 3203 WriteLiteral(@"l-6 col-md-4""> 3204 <div class=""checkbox""> 3205 <label> 3206 <input type=""checkbox"" name=""propertytype"" value=""fritidshus, fritidsbolig"" /> 3207 <span>Fritidsbolig</span> 3208 </label> 3209 </div> 3210 <div class=""checkbox""> 3211 <label> 3212 <input type=""checkbox"" name=""propertytype"" value=""ejerlejlighed"" class=""specialOption"" data-disable-slider=""#grundareal"" data-disable-slider-ranges=""#grundarealmin,#grundarealmax"" /> 3213 <span>Ejerlejlighed</span> 3214 </label> 3215 </div> 3216 <div class=""checkbox""> 3217 <label> 3218 <input type=""checkbox"" name=""propertytype"" value=""helårsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" /> 3219 <span>Helårsgrund</span> 3220 </label> 3221 </div> 3222 <div "); 3223 WriteLiteral(@"class=""checkbox""> 3224 <label> 3225 <input type=""checkbox"" name=""propertytype"" value=""fritidsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" /> 3226 <span>Fritidsgrund</span> 3227 </label> 3228 </div> 3229 </div> 3230 <div class=""col-6 col-md-4""> 3231 <div class=""checkbox""> 3232 <label> 3233 <input type=""checkbox"" name=""propertytype"" value=""landejendom, lystejendom"" class=""specialOption"" data-disable-checkbox=""true"" /> 3234 <span>Landejendom</span> 3235 </label> 3236 </div> 3237 <div class=""checkbox""> 3238 <label> 3239 <input type=""checkbox"" name=""propertytype"" value=""erhverv"" class=""specialOption"" data-disable-checkbox=""true"" data-disable-slider=""#roomsslider"" data-disable-slider-ranges=""#roomsmin"" /> 3240 <span>Erhverv<"); 3241 WriteLiteral("/span>\r\n </label>\r\n </div>\r\n </div>\r\n"); 3242 } 3243 3244 void RenderChecked(string queryString) 3245 { 3246 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString) 3247 { 3248 Write("checked"); 3249 3250 } 3251 } 3252 3253 void RenderBoligtypeCheckboxesDropdown() 3254 { 3255 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){ 3256 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" }, 3257 { "Andelsbolig", "andelsbolig" } 3258 }; 3259 foreach (KeyValuePair<string, string> type in propertyTypes) 3260 { 3261 bool ischecked = false; 3262 string[] propertytypeSplit = new string[0]; 3263 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"])) 3264 { 3265 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(','); 3266 } 3267 foreach (var propertytypeParams in propertytypeSplit) 3268 { 3269 if (propertytypeParams == type.Value) 3270 { 3271 ischecked = true; 3272 } 3273 } 3274 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3275 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3276 WriteLiteral("\r\n <input type=\"checkbox\" name=\"propertytype\""); 3277 BeginWriteAttribute("value", " value=\"", 8068, "\"", 8087, 1); 3278 WriteAttributeValue("", 8076, type.Value, 8076, 11, false); 3279 EndWriteAttribute(); 3280 WriteLiteral(" class=\"js-input-check datavalue js-datavalue js-count\" data-val=\""); 3281 Write(type.Key); 3282 WriteLiteral("\" onchange=\"submitFilter()\""); 3283 BeginWriteAttribute("checked", " checked=\"", 8190, "\"", 8210, 1); 3284 WriteAttributeValue("", 8200, ischecked, 8200, 10, false); 3285 EndWriteAttribute(); 3286 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3287 } 3288 3289 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){ 3290 { "Fritidsbolig", "fritidshus, fritidsbolig" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" }, 3291 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" } 3292 }; 3293 foreach (KeyValuePair<string, string> type in propertyTypes2) 3294 { 3295 bool ischecked = false; 3296 string[] propertytypeSplit2 = new string[0]; 3297 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"])) 3298 { 3299 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(','); 3300 } 3301 foreach (var propertytypeParams in propertytypeSplit2) 3302 { 3303 if (propertytypeParams == type.Value) 3304 { 3305 ischecked = true; 3306 } 3307 } 3308 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3309 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3310 WriteLiteral("\r\n"); 3311 if (type.Value == "ejerlejlighed") 3312 { 3313 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3314 BeginWriteAttribute("value", " value=\"", 9634, "\"", 9653, 1); 3315 WriteAttributeValue("", 9642, type.Value, 9642, 11, false); 3316 EndWriteAttribute(); 3317 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#grundareal\" data-disable-slider-ranges=\"#grundarealmin,#grundarealmax\" data-val=\""); 3318 Write(type.Key); 3319 WriteLiteral("\" onchange=\"submitFilter()\""); 3320 BeginWriteAttribute("checked", " checked=\"", 9827, "\"", 9847, 1); 3321 WriteAttributeValue("", 9837, ischecked, 9837, 10, false); 3322 EndWriteAttribute(); 3323 WriteLiteral(" />\r\n"); 3324 } 3325 else if (type.Value == "helårsgrund") 3326 { 3327 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3328 BeginWriteAttribute("value", " value=\"", 10024, "\"", 10043, 1); 3329 WriteAttributeValue("", 10032, type.Value, 10032, 11, false); 3330 EndWriteAttribute(); 3331 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\""); 3332 Write(type.Key); 3333 WriteLiteral("\" onchange=\"submitFilter()\""); 3334 BeginWriteAttribute("checked", " checked=\"", 10240, "\"", 10260, 1); 3335 WriteAttributeValue("", 10250, ischecked, 10250, 10, false); 3336 EndWriteAttribute(); 3337 WriteLiteral(" />\r\n"); 3338 } 3339 else if (type.Value == "fritidsgrund") 3340 { 3341 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3342 BeginWriteAttribute("value", " value=\"", 10438, "\"", 10457, 1); 3343 WriteAttributeValue("", 10446, type.Value, 10446, 11, false); 3344 EndWriteAttribute(); 3345 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\""); 3346 Write(type.Key); 3347 WriteLiteral("\" onchange=\"submitFilter()\""); 3348 BeginWriteAttribute("checked", " checked=\"", 10654, "\"", 10674, 1); 3349 WriteAttributeValue("", 10664, ischecked, 10664, 10, false); 3350 EndWriteAttribute(); 3351 WriteLiteral(" />\r\n"); 3352 } 3353 else 3354 { 3355 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\""); 3356 BeginWriteAttribute("value", " value=\"", 10818, "\"", 10837, 1); 3357 WriteAttributeValue("", 10826, type.Value, 10826, 11, false); 3358 EndWriteAttribute(); 3359 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3360 Write(type.Key); 3361 WriteLiteral("\" onchange=\"submitFilter()\""); 3362 BeginWriteAttribute("checked", " checked=\"", 10918, "\"", 10938, 1); 3363 WriteAttributeValue("", 10928, ischecked, 10928, 10, false); 3364 EndWriteAttribute(); 3365 WriteLiteral(" />\r\n"); 3366 } 3367 WriteLiteral(" <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3368 } 3369 } 3370 3371 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false) 3372 { 3373 Dictionary<string, string> erhverType = new Dictionary<string, string>(){ 3374 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" }, 3375 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" } 3376 }; 3377 var submitonchange = ""; 3378 if (submitOnChange) 3379 { 3380 submitonchange = "onchange='submitFilter()'"; 3381 } 3382 3383 foreach (KeyValuePair<string, string> type in erhverType) 3384 { 3385 string ischecked = ""; 3386 string[] olineParamsSplit = new string[0]; 3387 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"])) 3388 { 3389 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(','); 3390 } 3391 foreach (var olineParams in olineParamsSplit) 3392 { 3393 if (olineParams == type.Value) 3394 { 3395 ischecked = "checked"; 3396 } 3397 } 3398 3399 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n "); 3400 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")); 3401 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\""); 3402 BeginWriteAttribute("value", " value=\"", 12582, "\"", 12601, 1); 3403 WriteAttributeValue("", 12590, type.Value, 12590, 11, false); 3404 EndWriteAttribute(); 3405 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\""); 3406 Write(type.Key); 3407 WriteLiteral("\" "); 3408 Write(submitonchange); 3409 WriteLiteral(" "); 3410 Write(ischecked); 3411 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n"); 3412 } 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=\"", 14192, "\"", 14211, 1); 3442 WriteAttributeValue("", 14200, type.Value, 14200, 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=\"", 14292, "\"", 14312, 1); 3448 WriteAttributeValue("", 14302, ischecked, 14302, 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=\"", 16255, "\"", 16310, 5); 3509 WriteAttributeValue("", 16263, "form-control", 16263, 12, true); 3510 WriteAttributeValue(" ", 16275, "d-block", 16276, 8, true); 3511 WriteAttributeValue(" ", 16283, "d-lg-none", 16284, 10, true); 3512 WriteAttributeValue(" ", 16293, "mb-10", 16294, 6, true); 3513 WriteAttributeValue(" ", 16299, className, 16300, 10, false); 3514 EndWriteAttribute(); 3515 WriteLiteral(" onchange=\"submitFilter()\""); 3516 BeginWriteAttribute("name", " name=\"", 16337, "\"", 16354, 1); 3517 WriteAttributeValue("", 16344, inputname, 16344, 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=\"", 16950, "\"", 16960, 1); 3532 WriteAttributeValue("", 16958, i, 16958, 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=\"", 17179, "\"", 17189, 1); 3544 WriteAttributeValue("", 17187, i, 17187, 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=\"", 17613, "\"", 17623, 1); 3559 WriteAttributeValue("", 17621, i, 17621, 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=\"", 17841, "\"", 17851, 1); 3571 WriteAttributeValue("", 17849, i, 17849, 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=\"", 23021, "\"", 23036, 1); 3724 WriteAttributeValue("", 23026, parameter, 23026, 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 == "search") 3738 { 3739 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"])) 3740 { 3741 WriteLiteral(" <div class=\"search-terms\""); 3742 BeginWriteAttribute("id", " id=\"", 23484, "\"", 23499, 1); 3743 WriteAttributeValue("", 23489, parameter, 23489, 10, false); 3744 EndWriteAttribute(); 3745 WriteLiteral(">\r\n "); 3746 Write(Dynamicweb.Context.Current.Request[parameter]); 3747 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3748 Write(parameter); 3749 WriteLiteral("\"></i>\r\n </div>\r\n"); 3750 } 3751 } 3752 else 3753 { 3754 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter])) 3755 { 3756 Dictionary<string, string> 3757 ubudsform = new Dictionary<string, string> 3758 (){ 3759 {"salg", "Salg" }, { "leje","Leje" } 3760 }; 3761 3762 foreach (var er in ubudsform) 3763 { 3764 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key)) 3765 { 3766 WriteLiteral(" <div class=\"search-terms\""); 3767 BeginWriteAttribute("id", " id=\"", 24648, "\"", 24663, 1); 3768 WriteAttributeValue("", 24653, parameter, 24653, 10, false); 3769 EndWriteAttribute(); 3770 WriteLiteral(">\r\n "); 3771 Write(er.Value); 3772 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\""); 3773 Write(parameter); 3774 WriteLiteral("\" data-val=\""); 3775 Write(er.Key); 3776 WriteLiteral("\"></i>\r\n </div>\r\n"); 3777 } 3778 } 3779 3780 3781 } 3782 } 3783 } 3784 3785 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString) 3786 { 3787 var selected = ""; 3788 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue) 3789 { 3790 selected = "selected"; 3791 } 3792 3793 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected); 3794 3795 Write(current); 3796 3797 } 3798 3799 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "") 3800 { 3801 WriteLiteral(" <div"); 3802 BeginWriteAttribute("class", " class=\"", 25667, "\"", 25713, 3); 3803 WriteAttributeValue("", 25675, "main-search-form", 25675, 16, true); 3804 WriteAttributeValue(" ", 25691, "frontpage", 25692, 10, true); 3805 WriteAttributeValue(" ", 25701, cssClasses, 25702, 11, false); 3806 EndWriteAttribute(); 3807 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>"); 3808 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig")); 3809 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>"); 3810 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")); 3811 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\""); 3812 BeginWriteAttribute("value", " value=\'", 26428, "\'", 26449, 1); 3813 WriteAttributeValue("", 26436, searchPageId, 26436, 13, false); 3814 EndWriteAttribute(); 3815 WriteLiteral(@" id=""searchPageId-frontpage"" disabled=""disabled"" /> 3816 <div class=""row form-wrapper no-gutters""> 3817 3818 <div class=""col-xs-12 col-md-5 col-searchbar""> 3819 <div class=""searchbar""> 3820 <input type=""text"""); 3821 BeginWriteAttribute("name", " name=\"", 26727, "\"", 26754, 1); 3822 WriteAttributeValue("", 26734, querySearchNameAttr, 26734, 20, false); 3823 EndWriteAttribute(); 3824 WriteLiteral(" id=\"searchfield-frontpage\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\""); 3825 BeginWriteAttribute("value", " value=\"", 26867, "\"", 26945, 1); 3826 WriteAttributeValue("", 26875, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 26875, 70, false); 3827 EndWriteAttribute(); 3828 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom-frontpage\" name=\"zipcodefrom\""); 3829 BeginWriteAttribute("value", " value=\"", 27045, "\"", 27128, 1); 3830 WriteAttributeValue("", 27053, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 27053, 75, false); 3831 EndWriteAttribute(); 3832 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto-frontpage\" name=\"zipcodeto\""); 3833 BeginWriteAttribute("value", " value=\"", 27224, "\"", 27305, 1); 3834 WriteAttributeValue("", 27232, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 27232, 73, false); 3835 EndWriteAttribute(); 3836 WriteLiteral(@" /> 3837 </div> 3838 </div> 3839 <div class=""col-xs-12 col-md-5""> 3840 <div class=""row no-gutters""> 3841 <div class=""col-xs-12 col-md-6 input-col""> 3842 <div class=""dropdown w-overlay""> 3843 <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""> 3844 "); 3845 Write(Translate("Smartpage:Search.Boligtype", "Boligtype")); 3846 WriteLiteral(@" 3847 </button> 3848 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype""> 3849 <ul class=""bolig-dropdown list-unstyled""> 3850 "); 3851 3852 RenderBoligtypeCheckboxesDropdown(); 3853 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">"); 3854 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 3855 WriteLiteral(@"</button> 3856 </div> 3857 3858 </div> 3859 3860 </div> 3861 <div class=""col-xs-12 col-md-6 input-col""> 3862 <div class=""dropdown w-overlay""> 3863 <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""> 3864 "); 3865 Write(Translate("Smartpage:Search.Pris", "Pris")); 3866 WriteLiteral(@" 3867 </button> 3868 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris""> 3869 <input type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input"""); 3870 BeginWriteAttribute("placeholder", " placeholder=\'", 29484, "\'", 29560, 1); 3871 WriteAttributeValue("", 29498, Translate("Smartpage:Search.Placeholder.MinPris","Min. pris"), 29498, 62, false); 3872 EndWriteAttribute(); 3873 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3874 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")); 3875 WriteLiteral("</option>\r\n"); 3876 for (var i = 0; i <= 10000000; i += 100000) 3877 { 3878 if (i == 10000000) 3879 { 3880 WriteLiteral(" <option"); 3881 BeginWriteAttribute("value", " value=\"", 30169, "\"", 30179, 1); 3882 WriteAttributeValue("", 30177, i, 30177, 2, false); 3883 EndWriteAttribute(); 3884 WriteLiteral(" data-value=\'"); 3885 Write(Convert.ToInt32(i).ToString("N0")); 3886 WriteLiteral("+\'>"); 3887 Write(Convert.ToInt32(i).ToString("N0")); 3888 WriteLiteral("+</option>\r\n"); 3889 } 3890 else 3891 { 3892 WriteLiteral(" <option"); 3893 BeginWriteAttribute("value", " value=\"", 30491, "\"", 30501, 1); 3894 WriteAttributeValue("", 30499, i, 30499, 2, false); 3895 EndWriteAttribute(); 3896 WriteLiteral(" data-value=\'"); 3897 Write(Convert.ToInt32(i).ToString("N0")); 3898 WriteLiteral("\'>"); 3899 Write(Convert.ToInt32(i).ToString("N0")); 3900 WriteLiteral("</option>\r\n"); 3901 } 3902 } 3903 WriteLiteral(@" </select> 3904 <input type=""hidden"" id=""pricemin-frontpage"" name=""pricemin"" /> 3905 3906 <input type=""text"" class=""form-control js-auto-thousand js-pricemax-frontpage-input"""); 3907 BeginWriteAttribute("placeholder", " placeholder=\'", 30976, "\'", 31052, 1); 3908 WriteAttributeValue("", 30990, Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris"), 30990, 62, false); 3909 EndWriteAttribute(); 3910 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3911 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")); 3912 WriteLiteral("</option>\r\n"); 3913 for (var i = 0; i <= 10000000; i += 100000) 3914 { 3915 if (i == 10000000) 3916 { 3917 WriteLiteral(" <option"); 3918 BeginWriteAttribute("value", " value=\"", 31655, "\"", 31665, 1); 3919 WriteAttributeValue("", 31663, i, 31663, 2, false); 3920 EndWriteAttribute(); 3921 WriteLiteral(" data-value=\'"); 3922 Write(Convert.ToInt32(i).ToString("N0")); 3923 WriteLiteral("+\'>"); 3924 Write(Convert.ToInt32(i).ToString("N0")); 3925 WriteLiteral("+</option>\r\n"); 3926 } 3927 else 3928 { 3929 WriteLiteral(" <option"); 3930 BeginWriteAttribute("value", " value=\"", 31977, "\"", 31987, 1); 3931 WriteAttributeValue("", 31985, i, 31985, 2, false); 3932 EndWriteAttribute(); 3933 WriteLiteral(" data-value=\'"); 3934 Write(Convert.ToInt32(i).ToString("N0")); 3935 WriteLiteral("\'>"); 3936 Write(Convert.ToInt32(i).ToString("N0")); 3937 WriteLiteral("</option>\r\n"); 3938 } 3939 } 3940 WriteLiteral(" </select>\r\n <input type=\"hidden\" id=\"pricemax-frontpage\" name=\"pricemax\" />\r\n <button class=\"btn btn-primary js-close-dropdown mt-3\">"); 3941 Write(Translate("Smartpage:Search.Anvend", "Anvend")); 3942 WriteLiteral(@"</button> 3943 </div> 3944 </div> 3945 </div> 3946 </div> 3947 </div> 3948 <div class=""col-xs-12 col-md-2 d-none d-md-block""> 3949 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 3950 Write(Translate("Smartpage:Search.Søg", "Søg")); 3951 WriteLiteral(@"</button> 3952 </div> 3953 </div> 3954 3955 <div class=""row moresearch-btn no-gutters""> 3956 <div class=""col-sm-12""> 3957 <div class=""row align-items-center no-gutters""> 3958 <div class=""col-12 col-md-4""> 3959 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch"" aria-expanded=""false"" aria-controls=""moreSearch""> 3960 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open"">"); 3961 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")); 3962 WriteLiteral("</span> <span class=\"open\"><span class=\"js-filter-count\">0</span> "); 3963 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt")); 3964 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\">"); 3965 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg")); 3966 WriteLiteral("</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"collapse\" id=\"moreSearch\">\r\n <h4 class=\"mt-20\"><b>"); 3967 Write(Translate("Smartpage:Search.Bolig", "Bolig")); 3968 WriteLiteral(@"</b></h4> 3969 <div class=""row align-items-end mb-30""> 3970 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 3971 <div class=""filter-container row""> 3972 <label class=""d-block col-12"">"); 3973 Write(Translate("Smartpage:Search.Boligareal", "Boligareal")); 3974 WriteLiteral(@"</label> 3975 <div class=""col-6 pr-sm-0 pr-2""> 3976 <input type=""text"" name=""boligarealmin"" id=""boligarealmin-frontpage"" class=""form-control js-boligarealmin-frontpage-input js-count"""); 3977 BeginWriteAttribute("placeholder", " placeholder=\'", 34853, "\'", 34925, 1); 3978 WriteAttributeValue("", 34867, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 34867, 58, false); 3979 EndWriteAttribute(); 3980 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 3981 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 3982 WriteLiteral("</option>\r\n"); 3983 for (var i = 0; i <= 300; i += 10) 3984 { 3985 if (i == 300) 3986 { 3987 WriteLiteral(" <option"); 3988 BeginWriteAttribute("value", " value=\"", 35532, "\"", 35542, 1); 3989 WriteAttributeValue("", 35540, i, 35540, 2, false); 3990 EndWriteAttribute(); 3991 WriteLiteral(">"); 3992 Write(i); 3993 WriteLiteral("+</option>\r\n"); 3994 } 3995 else 3996 { 3997 WriteLiteral(" <option"); 3998 BeginWriteAttribute("value", " value=\"", 35789, "\"", 35799, 1); 3999 WriteAttributeValue("", 35797, i, 35797, 2, false); 4000 EndWriteAttribute(); 4001 WriteLiteral(">"); 4002 Write(i); 4003 WriteLiteral("</option>\r\n"); 4004 } 4005 } 4006 WriteLiteral(@" </select> 4007 </div> 4008 <div class=""col-6 pl-sm-0 pl-2""> 4009 <input type=""text"" name=""boligarealmax"" id=""boligarealmax-frontpage"" class=""form-control js-boligarealmax-frontpage-input js-count"""); 4010 BeginWriteAttribute("placeholder", " placeholder=\'", 36272, "\'", 36344, 1); 4011 WriteAttributeValue("", 36286, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 36286, 58, false); 4012 EndWriteAttribute(); 4013 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4014 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 4015 WriteLiteral("</option>\r\n"); 4016 for (var i = 0; i <= 300; i += 10) 4017 { 4018 if (i == 300) 4019 { 4020 WriteLiteral(" <option"); 4021 BeginWriteAttribute("value", " value=\"", 36951, "\"", 36961, 1); 4022 WriteAttributeValue("", 36959, i, 36959, 2, false); 4023 EndWriteAttribute(); 4024 WriteLiteral(">"); 4025 Write(i); 4026 WriteLiteral("+</option>\r\n"); 4027 } 4028 else 4029 { 4030 WriteLiteral(" <option"); 4031 BeginWriteAttribute("value", " value=\"", 37208, "\"", 37218, 1); 4032 WriteAttributeValue("", 37216, i, 37216, 2, false); 4033 EndWriteAttribute(); 4034 WriteLiteral(">"); 4035 Write(i); 4036 WriteLiteral("</option>\r\n"); 4037 } 4038 } 4039 WriteLiteral(@" </select> 4040 </div> 4041 </div> 4042 </div> 4043 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4044 <div class=""filter-container row""> 4045 <label class=""d-block col-12"">"); 4046 Write(Translate("Smartpage:Search.Grundareal", "Grundareal")); 4047 WriteLiteral(@"</label> 4048 <div class=""col-6 pr-sm-0 pr-2""> 4049 <input type=""text"" name=""grundarealmin"" id=""grundarealmin-frontpage"" class=""form-control js-grundarealmin-frontpage-input js-count"""); 4050 BeginWriteAttribute("placeholder", " placeholder=\'", 38067, "\'", 38139, 1); 4051 WriteAttributeValue("", 38081, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 38081, 58, false); 4052 EndWriteAttribute(); 4053 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4054 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")); 4055 WriteLiteral("</option>\r\n"); 4056 for (var i = 0; i <= 10000; i += 100) 4057 { 4058 if (i == 10000) 4059 { 4060 WriteLiteral(" <option"); 4061 BeginWriteAttribute("value", " value=\"", 38751, "\"", 38761, 1); 4062 WriteAttributeValue("", 38759, i, 38759, 2, false); 4063 EndWriteAttribute(); 4064 WriteLiteral(">"); 4065 Write(i); 4066 WriteLiteral("+</option>\r\n"); 4067 } 4068 else 4069 { 4070 WriteLiteral(" <option"); 4071 BeginWriteAttribute("value", " value=\"", 39008, "\"", 39018, 1); 4072 WriteAttributeValue("", 39016, i, 39016, 2, false); 4073 EndWriteAttribute(); 4074 WriteLiteral(">"); 4075 Write(i); 4076 WriteLiteral("</option>\r\n"); 4077 } 4078 } 4079 WriteLiteral(@" </select> 4080 </div> 4081 <div class=""col-6 pl-sm-0 pl-2""> 4082 <input type=""text"" name=""grundarealmax"" id=""grundarealmax-frontpage"" class=""form-control js-grundarealmax-frontpage-input js-count"""); 4083 BeginWriteAttribute("placeholder", " placeholder=\'", 39491, "\'", 39563, 1); 4084 WriteAttributeValue("", 39505, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 39505, 58, false); 4085 EndWriteAttribute(); 4086 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4087 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")); 4088 WriteLiteral("</option>\r\n"); 4089 for (var i = 0; i <= 10000; i += 100) 4090 { 4091 if (i == 10000) 4092 { 4093 WriteLiteral(" <option"); 4094 BeginWriteAttribute("value", " value=\"", 40175, "\"", 40185, 1); 4095 WriteAttributeValue("", 40183, i, 40183, 2, false); 4096 EndWriteAttribute(); 4097 WriteLiteral(">"); 4098 Write(i); 4099 WriteLiteral("+</option>\r\n"); 4100 } 4101 else 4102 { 4103 WriteLiteral(" <option"); 4104 BeginWriteAttribute("value", " value=\"", 40432, "\"", 40442, 1); 4105 WriteAttributeValue("", 40440, i, 40440, 2, false); 4106 EndWriteAttribute(); 4107 WriteLiteral(">"); 4108 Write(i); 4109 WriteLiteral("</option>\r\n"); 4110 } 4111 } 4112 WriteLiteral(@" </select> 4113 </div> 4114 </div> 4115 </div> 4116 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4117 <div class=""filter-container row""> 4118 <label class=""d-block col-12"">Antal rum</label> 4119 4120 <div class=""col-6 pr-sm-0 pr-2""> 4121 <select name=""roomsmin"" id=""roomsmin-frontpage"" class=""form-control reverse js-count""> 4122 <option selected=""true"" disabled=""disabled"">"); 4123 Write(Translate("Smartpage:Search.Placeholder.Min", "Min")); 4124 WriteLiteral(@"</option> 4125 <option value=""1"">1</option> 4126 <option value=""2"">2</option> 4127 <option value=""3"">3</option> 4128 <option value=""4"">4</option> 4129 <option value=""5+"">5+</option> 4130 </select> 4131 </div> 4132 <div class=""col-6 pl-sm-0 pl-2""> 4133 <select name=""roomsmax"" id=""roomsmax-frontpage"" class=""form-control reverse js-count""> 4134 <option selected=""true"" disabled=""disabled"">"); 4135 Write(Translate("Smartpage:Search.Placeholder.Max", "Max")); 4136 WriteLiteral(@"</option> 4137 <option value=""1"">1</option> 4138 <option value=""2"">2</option> 4139 <option value=""3"">3</option> 4140 <option value=""4"">4</option> 4141 <option value=""5+"">"); 4142 Write(Translate("Smartpage:Rooms.5", "5")); 4143 WriteLiteral(@"</option> 4144 </select> 4145 </div> 4146 </div> 4147 </div> 4148 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0""> 4149 <div class=""row""> 4150 <div class=""col-12""> 4151 <div class=""filter-container""> 4152 <label class=""d-block"">Energimærke</label> 4153 <select name=""energylabel"" id=""energylabel-frontpage"" class=""form-control reverse js-count""> 4154 <option disabled selected=""selected"">"); 4155 Write(Translate("Smartpage:Search.Vælg", "Vælg")); 4156 WriteLiteral(@"</option> 4157 <option value=""01"">G</option> 4158 <option value=""02"">F</option> 4159 <option value=""03"">E</option> 4160 <option value=""04"">D</option> 4161 <option value=""05"">C</option> 4162 <option value=""06"">B</option> 4163 <option value=""07"">A</option> 4164 <option value=""08"">A2010</option> 4165 <option value=""09"">A2015</option> 4166 <option value=""10"">A2020+</option> 4167 </select> 4168 </div> 4169 </div> 4170 "); 4171 WriteLiteral(" </div>\r\n </div>\r\n <div class=\"col-12 col-sm-6 col-lg-3 mt-3\">\r\n <h4"); 4172 BeginWriteAttribute("class", " class=\"", 44687, "\"", 44695, 0); 4173 EndWriteAttribute(); 4174 WriteLiteral("><b>"); 4175 Write(Translate("Smartpage:Search.Økonomi", "Økonomi")); 4176 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">"); 4177 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")); 4178 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\""); 4179 BeginWriteAttribute("placeholder", " placeholder=\'", 45251, "\'", 45325, 1); 4180 WriteAttributeValue("", 45265, Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK"), 45265, 60, false); 4181 EndWriteAttribute(); 4182 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4183 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")); 4184 WriteLiteral("</option>\r\n"); 4185 for (var i = 0; i <= 25000; i += 1250) 4186 { 4187 if (i == 25000) 4188 { 4189 WriteLiteral(" <option>"); 4190 Write(Convert.ToInt32(i).ToString("N0")); 4191 WriteLiteral("+</option>\r\n"); 4192 } 4193 else 4194 { 4195 WriteLiteral(" <option>"); 4196 Write(Convert.ToInt32(i).ToString("N0")); 4197 WriteLiteral("</option>\r\n"); 4198 } 4199 } 4200 WriteLiteral(@" </select> 4201 </div> 4202 <div class=""col-6 pl-sm-0 pl-2""> 4203 <input type=""text"" name=""subsidymax"" id=""subsidymax-frontpage"" class=""form-control js-subsidymax-frontpage-input js-count"""); 4204 BeginWriteAttribute("placeholder", " placeholder=\'", 46710, "\'", 46784, 1); 4205 WriteAttributeValue("", 46724, Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK"), 46724, 60, false); 4206 EndWriteAttribute(); 4207 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">"); 4208 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")); 4209 WriteLiteral("</option>\r\n"); 4210 for (var i = 0; i <= 25000; i += 1250) 4211 { 4212 if (i == 25000) 4213 { 4214 WriteLiteral(" <option"); 4215 BeginWriteAttribute("value", " value=\"", 47396, "\"", 47423, 1); 4216 WriteAttributeValue("", 47404, Convert.ToInt32(i), 47404, 19, false); 4217 EndWriteAttribute(); 4218 WriteLiteral(">"); 4219 Write(Convert.ToInt32(i).ToString("N0")); 4220 WriteLiteral("+</option>\r\n"); 4221 } 4222 else 4223 { 4224 WriteLiteral(" <option"); 4225 BeginWriteAttribute("value", " value=\"", 47702, "\"", 47729, 1); 4226 WriteAttributeValue("", 47710, Convert.ToInt32(i), 47710, 19, false); 4227 EndWriteAttribute(); 4228 WriteLiteral(">"); 4229 Write(Convert.ToInt32(i).ToString("N0")); 4230 WriteLiteral("</option>\r\n"); 4231 } 4232 } 4233 WriteLiteral(@" </select> 4234 </div> 4235 </div> 4236 </div> 4237 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0""> 4238 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> "); 4239 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")); 4240 WriteLiteral(@"</button> 4241 </div> 4242 </div> 4243 </div> 4244 </div> 4245 </div> 4246 4247 <div class=""row d-block d-md-none form-wrapper no-gutters""> 4248 <div class=""col-xs-12 col-md-2""> 4249 <button type=""submit"" class=""btn btn-block btn-search btn-mobile-search"">"); 4250 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig")); 4251 WriteLiteral(@"<i class=""fa fa-search cta-icon""></i></button> 4252 </div> 4253 </div> 4254 </form> 4255 <div class=""front-page-actions d-md-none""> 4256 <div> 4257 <button class=""btn btn-block btn-search btn-mobile-search js-search-mobile"">"); 4258 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig")); 4259 WriteLiteral("<i class=\"fa fa-search cta-icon\"></i></button>\r\n </div>\r\n <div>\r\n"); 4260 4261 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : ""; 4262 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER"); 4263 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\">\r\n <input name=\"id\""); 4264 BeginWriteAttribute("value", " value=\"", 49672, "\"", 49695, 1); 4265 WriteAttributeValue("", 49680, brokerSearchId, 49680, 15, false); 4266 EndWriteAttribute(); 4267 WriteLiteral(@" type=""hidden"" /> 4268 <div class=""icon-wrapper-wclick""> 4269 <i class=""fas fa-search ta-submit-on-icon-click""></i> 4270 <input class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" name=""q"" type=""text"""); 4271 BeginWriteAttribute("placeholder", " placeholder=\"", 49999, "\"", 50021, 1); 4272 WriteAttributeValue("", 50013, ctaText, 50013, 8, false); 4273 EndWriteAttribute(); 4274 WriteLiteral(" onfocus=\"this.placeholder = \'\'\""); 4275 BeginWriteAttribute("onblur", " onblur=\"", 50054, "\"", 50090, 3); 4276 WriteAttributeValue("", 50063, "this.placeholder=\'", 50063, 18, true); 4277 WriteAttributeValue("", 50081, ctaText, 50081, 8, false); 4278 WriteAttributeValue("", 50089, "\'", 50089, 1, true); 4279 EndWriteAttribute(); 4280 WriteLiteral(" />\r\n </div>\r\n </form>\r\n"); 4281 WriteLiteral(" </div>\r\n <div>\r\n <a href=\"javascript:panelSalgsvurdering(\'Hovedmenu\')\" class=\"btn btn-orange btn-block\">"); 4282 Write(Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING")); 4283 WriteLiteral("<i class=\"cta-icon fa fa-angle-right\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n"); 4284 4285 } 4286 Custom.Integration.Brokers.Models.BrokerEmployee GetBrokerFromCurrentProduct() 4287 { 4288 string productId = Dynamicweb.Context.Current.Request["ProductId"]; 4289 4290 if (string.IsNullOrWhiteSpace(productId)) 4291 { 4292 return null; 4293 } 4294 4295 var propertyProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(productId, string.Empty, true); 4296 if (propertyProduct == null) 4297 { 4298 return null; 4299 } 4300 4301 string employee = Dynamicweb.Core.Converter.ToString( 4302 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xAktoererMaeglerKontaktEmail") 4303 ); 4304 string storeId = Dynamicweb.Core.Converter.ToString( 4305 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xButikID") 4306 ); 4307 4308 if (string.IsNullOrWhiteSpace(employee) || string.IsNullOrWhiteSpace(storeId)) 4309 { 4310 return null; 4311 } 4312 4313 return Custom.Integration.Brokers.Search.GetEmployee(storeId, employee); 4314 } 4315 4316 string GetAgentTitleFromCurrentProduct() 4317 { 4318 var propBroker = GetBrokerFromCurrentProduct(); 4319 4320 if (propBroker?.Broker == null) 4321 { 4322 return string.Empty; 4323 } 4324 4325 if (!string.IsNullOrEmpty(propBroker.Broker.CompanyName)) 4326 { 4327 return propBroker.Broker.CompanyName; 4328 } 4329 4330 return propBroker.Broker.Name ?? string.Empty; 4331 } 4332 4333 string GetMasterBrokerUrlFromCurrentProduct() 4334 { 4335 var propBroker = GetBrokerFromCurrentProduct(); 4336 4337 var itemId = propBroker?.Broker?.ItemId; 4338 var itemType = propBroker?.Broker?.ItemType; 4339 4340 if (string.IsNullOrWhiteSpace(itemId) || string.IsNullOrWhiteSpace(itemType)) 4341 { 4342 return string.Empty; 4343 } 4344 var brokerItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(itemType, itemId); 4345 4346 if (brokerItem == null) 4347 { 4348 return string.Empty; 4349 } 4350 4351 var websiteId = Dynamicweb.Core.Converter.ToInt32(brokerItem["WebsiteId"]); 4352 var page = Dynamicweb.Content.Services.Pages.GetFirstPageForArea(websiteId); 4353 return Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?Id=" + page?.ID); 4354 } 4355 4356 // === Video link helpers (used by the property page) === 4357 4358 // True when the link points directly at a video file we can play in a <video> element. Everything else is iframed. 4359 bool IsDirectVideoFile(string url) 4360 { 4361 if (string.IsNullOrWhiteSpace(url)) { return false; } 4362 4363 // Strip query/fragment before checking the file extension. 4364 string path = url.Split('?', '#')[0]; 4365 string[] directExtensions = { ".mp4", ".webm", ".ogg", ".ogv", ".mov", ".m4v" }; 4366 foreach (var ext in directExtensions) 4367 { 4368 if (path.EndsWith(ext, StringComparison.InvariantCultureIgnoreCase)) { return true; } 4369 } 4370 return false; 4371 } 4372 4373 string GetYouTubeId(string url) 4374 { 4375 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 4376 4377 string[] patterns = { @"youtu\.be/([^?&/]+)", @"[?&]v=([^?&]+)", @"/embed/([^?&/]+)", @"/shorts/([^?&/]+)" }; 4378 foreach (var pattern in patterns) 4379 { 4380 var match = System.Text.RegularExpressions.Regex.Match(url, pattern); 4381 if (match.Success) { return match.Groups[1].Value; } 4382 } 4383 4384 return string.Empty; 4385 } 4386 4387 string GetVimeoId(string url) 4388 { 4389 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 4390 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?(\d+)"); 4391 return match.Success ? match.Groups[1].Value : string.Empty; 4392 } 4393 4394 string GetVimeoHash(string url) 4395 { 4396 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 4397 // Unlisted videos carry a privacy hash: vimeo.com/{id}/{hash} 4398 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?\d+/(\w+)"); 4399 return match.Success ? match.Groups[1].Value : string.Empty; 4400 } 4401 4402 // Builds the iframe src for a non-file link. YouTube/Vimeo share links are rewritten to their embeddable form 4403 // (their pages block framing); every other link (Matterport, CR3, already-embeddable pages) is used as-is. 4404 string BuildEmbedUrl(string url, bool background) 4405 { 4406 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; } 4407 4408 if (url.Contains("youtube", StringComparison.InvariantCultureIgnoreCase) || url.Contains("youtu.be", StringComparison.InvariantCultureIgnoreCase)) 4409 { 4410 string id = GetYouTubeId(url); 4411 if (!string.IsNullOrEmpty(id)) 4412 { 4413 string baseUrl = "https://www.youtube-nocookie.com/embed/" + id; 4414 return background 4415 ? baseUrl + "?autoplay=1&mute=1&loop=1&playlist=" + id + "&controls=0&playsinline=1&rel=0" 4416 : baseUrl + "?rel=0"; 4417 } 4418 } 4419 else if (url.Contains("vimeo", StringComparison.InvariantCultureIgnoreCase)) 4420 { 4421 string id = GetVimeoId(url); 4422 if (!string.IsNullOrEmpty(id)) 4423 { 4424 string baseUrl = "https://player.vimeo.com/video/" + id; 4425 var queryParams = new List<string>(); 4426 string hash = GetVimeoHash(url); 4427 if (!string.IsNullOrEmpty(hash)) { queryParams.Add("h=" + hash); } 4428 if (background) { queryParams.Add("background=1"); } 4429 return queryParams.Count > 0 ? baseUrl + "?" + string.Join("&", queryParams) : baseUrl; 4430 } 4431 } 4432 4433 // Matterport, CR3 and any already-embeddable link frame as-is. 4434 return url; 4435 } 4436 4437 void RenderSlideMenu(bool erhverv, string maeglersoegning) 4438 { 4439 WriteLiteral(" <div id=\"menu\" \r\n class=\"main-menu-slide \"\r\n role=\"navigation\""); 4440 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 56824, "\"", 56940, 1); 4441 WriteAttributeValue("", 56851, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.MainMenu", "Hovedmenu")), 56851, 89, false); 4442 EndWriteAttribute(); 4443 WriteLiteral(@" 4444 aria-modal=""true""> 4445 <div class=""container""> 4446 <div class=""row""> 4447 <div class=""col-12""> 4448 <span class=""menu-headline"">MENU</span> 4449 </div> 4450 <div class=""menu-slide"" 4451 role=""button"" 4452 tabindex=""0"""); 4453 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 57305, "\"", 57433, 1); 4454 WriteAttributeValue("", 57344, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.CloseMenu", "Luk menu")), 57344, 89, false); 4455 EndWriteAttribute(); 4456 WriteLiteral(">\r\n <b aria-hidden=\"true\"></b>\r\n </div>\r\n <div class=\"col-12 main-slidemenu\" role=\"region\""); 4457 BeginWriteAttribute("aria-label", " aria-label=\"", 57585, "\"", 57701, 1); 4458 WriteAttributeValue("", 57598, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.NavigationLinks", "Navigationslinks")), 57598, 103, false); 4459 EndWriteAttribute(); 4460 WriteLiteral(">\r\n"); 4461 4462 var navigationSettings = new NavigationSettings(); 4463 navigationSettings.StartLevel = 1; 4464 navigationSettings.StopLevel = 2; 4465 navigationSettings.ExpandMode = ExpandMode.All; 4466 navigationSettings.RootAreaId = Pageview.Area.ID; 4467 4468 Write(Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings)); 4469 WriteLiteral(" </div>\r\n <div class=\"col-12 bottom-btns\">\r\n\r\n"); 4470 4471 string[] maeglerid; 4472 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0"; 4473 4474 if (erhverv) 4475 { 4476 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None); 4477 } 4478 else 4479 { 4480 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None); 4481 } 4482 4483 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\" role=\"search\">\r\n <input name=\"id\""); 4484 BeginWriteAttribute("value", " value=\"", 59198, "\"", 59219, 1); 4485 WriteAttributeValue("", 59206, maeglerid[1], 59206, 13, false); 4486 EndWriteAttribute(); 4487 WriteLiteral(" type=\"hidden\" />\r\n <div class=\"icon-wrapper-wclick\">\r\n <label for=\"broker-search-menu-vm\" class=\"sr-only\">"); 4488 Write(Translate("Custom:Accessibility.FindBroker", "Find mægler")); 4489 WriteLiteral(@"</label> 4490 <i class=""fas fa-search ta-submit-on-icon-click"" 4491 aria-hidden=""true"" 4492 role=""button"" 4493 tabindex=""0"""); 4494 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 59714, "\"", 59867, 1); 4495 WriteAttributeValue("", 59767, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.SearchBroker", "Søg efter mægler")), 59767, 100, false); 4496 EndWriteAttribute(); 4497 WriteLiteral(@"></i> 4498 <input id=""broker-search-menu-vm"" 4499 class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" 4500 name=""q"" 4501 type=""text"""); 4502 BeginWriteAttribute("placeholder", " \r\n placeholder=\"", 60175, "\"", 60326, 1); 4503 WriteAttributeValue("", 60234, HtmlEncoder.HtmlAttributeEncode(Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER")), 60234, 92, false); 4504 EndWriteAttribute(); 4505 BeginWriteAttribute("aria-label", " \r\n aria-label=\"", 60327, "\"", 60523, 1); 4506 WriteAttributeValue("", 60385, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.BrokerSearchField", "Indtast postnummer eller navn for at finde mægler")), 60385, 138, false); 4507 EndWriteAttribute(); 4508 WriteLiteral("\r\n onfocus=\"this.placeholder = \'FIND MÆGLER\'\" />\r\n </div>\r\n </form>\r\n"); 4509 WriteLiteral(" <br />\r\n"); 4510 4511 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + ""; 4512 WriteLiteral(" <a"); 4513 BeginWriteAttribute("href", " href=\"", 60933, "\"", 61004, 5); 4514 WriteAttributeValue("", 60940, "javascript:panelSalgsvurdering(\'", 60940, 32, true); 4515 WriteAttributeValue("", 60972, dpmaegler, 60972, 10, false); 4516 WriteAttributeValue("", 60982, "\',\'", 60982, 3, true); 4517 WriteAttributeValue("", 60985, Pageview.AreaID, 60985, 16, false); 4518 WriteAttributeValue("", 61001, "\');", 61001, 3, true); 4519 EndWriteAttribute(); 4520 WriteLiteral(" \r\n class=\"btn btn-block btn-default-invert js-close-menu\""); 4521 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 61089, "\"", 61245, 1); 4522 WriteAttributeValue("", 61130, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.FreeSalesAssessment", "Få gratis salgsvurdering")), 61130, 115, false); 4523 EndWriteAttribute(); 4524 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"); 4525 } 4526 4527 void RenderBlockList(List<Block> blocks) 4528 { 4529 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false; 4530 blocks = blocks.OrderBy(item => item.SortId).ToList(); 4531 4532 foreach (Block item in blocks) 4533 { 4534 if (debug) { 4535 WriteLiteral(" <!-- Block START: "); 4536 Write(item.Id); 4537 WriteLiteral(" -->\r\n"); 4538 } 4539 4540 if (item.Design == null) 4541 { 4542 RenderBlock(item); 4543 } 4544 else if (item.Design.RenderType == RenderType.None) { 4545 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : ""; 4546 4547 WriteLiteral(" <div"); 4548 BeginWriteAttribute("class", " class=\"", 62500, "\"", 62524, 2); 4549 WriteAttributeValue("", 62508, cssClass, 62508, 9, false); 4550 WriteAttributeValue(" ", 62517, "dw-mod", 62518, 7, true); 4551 EndWriteAttribute(); 4552 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4553 } 4554 else if (item.Design.RenderType != RenderType.Hide) 4555 { 4556 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : ""; 4557 4558 if (!item.SkipRenderBlocksList) { 4559 if (item.Design.RenderType == RenderType.Row) 4560 { 4561 WriteLiteral(" <div"); 4562 BeginWriteAttribute("class", " class=\"", 62951, "\"", 63006, 4); 4563 WriteAttributeValue("", 62959, "grid", 62959, 4, true); 4564 WriteAttributeValue(" ", 62963, "grid--align-content-start", 62964, 26, true); 4565 WriteAttributeValue(" ", 62989, cssClass, 62990, 9, false); 4566 WriteAttributeValue(" ", 62999, "dw-mod", 63000, 7, true); 4567 EndWriteAttribute(); 4568 BeginWriteAttribute("id", " id=\"", 63007, "\"", 63027, 2); 4569 WriteAttributeValue("", 63012, "Block__", 63012, 7, true); 4570 WriteAttributeValue("", 63019, item.Id, 63019, 8, false); 4571 EndWriteAttribute(); 4572 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4573 } 4574 4575 if (item.Design.RenderType == RenderType.Column) 4576 { 4577 string hidePadding = item.Design.HidePadding ? "u-no-padding" : ""; 4578 string size = item.Design.Size ?? "12"; 4579 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size; 4580 4581 WriteLiteral(" <div"); 4582 BeginWriteAttribute("class", " class=\"", 63523, "\"", 63654, 9); 4583 WriteAttributeValue("", 63531, "grid__col-lg-", 63531, 13, true); 4584 WriteAttributeValue("", 63544, item.Design.Size, 63544, 17, false); 4585 WriteAttributeValue(" ", 63561, "grid__col-md-", 63562, 14, true); 4586 WriteAttributeValue("", 63575, item.Design.Size, 63575, 17, false); 4587 WriteAttributeValue(" ", 63592, "grid__col-sm-12", 63593, 16, true); 4588 WriteAttributeValue(" ", 63608, "grid__col-xs-12", 63609, 16, true); 4589 WriteAttributeValue(" ", 63624, hidePadding, 63625, 12, false); 4590 WriteAttributeValue(" ", 63637, cssClass, 63638, 9, false); 4591 WriteAttributeValue(" ", 63647, "dw-mod", 63648, 7, true); 4592 EndWriteAttribute(); 4593 BeginWriteAttribute("id", " id=\"", 63655, "\"", 63675, 2); 4594 WriteAttributeValue("", 63660, "Block__", 63660, 7, true); 4595 WriteAttributeValue("", 63667, item.Id, 63667, 8, false); 4596 EndWriteAttribute(); 4597 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4598 } 4599 4600 if (item.Design.RenderType == RenderType.Table) 4601 { 4602 WriteLiteral(" <table"); 4603 BeginWriteAttribute("class", " class=\"", 63906, "\"", 63936, 3); 4604 WriteAttributeValue("", 63914, "table", 63914, 5, true); 4605 WriteAttributeValue(" ", 63919, cssClass, 63920, 9, false); 4606 WriteAttributeValue(" ", 63929, "dw-mod", 63930, 7, true); 4607 EndWriteAttribute(); 4608 BeginWriteAttribute("id", " id=\"", 63937, "\"", 63957, 2); 4609 WriteAttributeValue("", 63942, "Block__", 63942, 7, true); 4610 WriteAttributeValue("", 63949, item.Id, 63949, 8, false); 4611 EndWriteAttribute(); 4612 WriteLiteral(">\r\n RenderBlock(item);\r\n </table>\r\n"); 4613 } 4614 4615 if (item.Design.RenderType == RenderType.TableRow) 4616 { 4617 WriteLiteral(" <tr"); 4618 BeginWriteAttribute("class", " class=\"", 64190, "\"", 64214, 2); 4619 WriteAttributeValue("", 64198, cssClass, 64198, 9, false); 4620 WriteAttributeValue(" ", 64207, "dw-mod", 64208, 7, true); 4621 EndWriteAttribute(); 4622 BeginWriteAttribute("id", " id=\"", 64215, "\"", 64235, 2); 4623 WriteAttributeValue("", 64220, "Block__", 64220, 7, true); 4624 WriteAttributeValue("", 64227, item.Id, 64227, 8, false); 4625 EndWriteAttribute(); 4626 WriteLiteral(">\r\n RenderBlock(item);\r\n </tr>\r\n"); 4627 } 4628 4629 if (item.Design.RenderType == RenderType.TableColumn) 4630 { 4631 WriteLiteral(" <td"); 4632 BeginWriteAttribute("class", " class=\"", 64468, "\"", 64492, 2); 4633 WriteAttributeValue("", 64476, cssClass, 64476, 9, false); 4634 WriteAttributeValue(" ", 64485, "dw-mod", 64486, 7, true); 4635 EndWriteAttribute(); 4636 BeginWriteAttribute("id", " id=\"", 64493, "\"", 64513, 2); 4637 WriteAttributeValue("", 64498, "Block__", 64498, 7, true); 4638 WriteAttributeValue("", 64505, item.Id, 64505, 8, false); 4639 EndWriteAttribute(); 4640 WriteLiteral(">\r\n RenderBlock(item);\r\n </td>\r\n"); 4641 } 4642 4643 if (item.Design.RenderType == RenderType.CardHeader) 4644 { 4645 WriteLiteral(" <div"); 4646 BeginWriteAttribute("class", " class=\"", 64746, "\"", 64782, 3); 4647 WriteAttributeValue("", 64754, "card-header", 64754, 11, true); 4648 WriteAttributeValue(" ", 64765, cssClass, 64766, 9, false); 4649 WriteAttributeValue(" ", 64775, "dw-mod", 64776, 7, true); 4650 EndWriteAttribute(); 4651 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4652 } 4653 4654 if (item.Design.RenderType == RenderType.CardBody) 4655 { 4656 WriteLiteral(" <div"); 4657 BeginWriteAttribute("class", " class=\"", 65014, "\"", 65043, 3); 4658 WriteAttributeValue("", 65022, "card", 65022, 4, true); 4659 WriteAttributeValue(" ", 65026, cssClass, 65027, 9, false); 4660 WriteAttributeValue(" ", 65036, "dw-mod", 65037, 7, true); 4661 EndWriteAttribute(); 4662 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4663 } 4664 4665 if (item.Design.RenderType == RenderType.CardFooter) 4666 { 4667 WriteLiteral(" <div"); 4668 BeginWriteAttribute("class", " class=\"", 65277, "\"", 65313, 3); 4669 WriteAttributeValue("", 65285, "card-footer", 65285, 11, true); 4670 WriteAttributeValue(" ", 65296, cssClass, 65297, 9, false); 4671 WriteAttributeValue(" ", 65306, "dw-mod", 65307, 7, true); 4672 EndWriteAttribute(); 4673 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n"); 4674 } 4675 } 4676 else 4677 { 4678 RenderBlock(item); 4679 } 4680 } 4681 4682 if (debug) { 4683 WriteLiteral(" <!-- Block END: "); 4684 Write(item.Id); 4685 WriteLiteral(" -->\r\n"); 4686 } 4687 } 4688 } 4689 4690 void RenderBlock(Block item) 4691 { 4692 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false; 4693 4694 if (item.Template != null) 4695 { 4696 Write(BlocksPage.RenderTemplate(item.Template)); 4697 4698 } 4699 4700 if (item.Component != null) 4701 { 4702 string customSufix = "Custom"; 4703 string methodName = item.Component.HelperName; 4704 4705 ComponentBase[] methodParameters = new ComponentBase[1]; 4706 methodParameters[0] = item.Component; 4707 Type methodType = this.GetType(); 4708 4709 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix); 4710 MethodInfo generalMethod = methodType.GetMethod(methodName); 4711 4712 try { 4713 if (debug) { 4714 WriteLiteral(" <!-- Component: "); 4715 Write(methodName.Replace("Render", "")); 4716 WriteLiteral(" -->\r\n"); 4717 } 4718 Write(customMethod.Invoke(this, methodParameters).ToString()); 4719 ; 4720 } catch { 4721 try { 4722 Write(generalMethod.Invoke(this, methodParameters).ToString()); 4723 4724 ; 4725 } catch(Exception ex) { 4726 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex); 4727 } 4728 } 4729 } 4730 4731 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList) 4732 { 4733 RenderBlockList(item.BlocksList); 4734 } 4735 } 4736 4737 void Render(ComponentBase component) 4738 { 4739 if (component != null) 4740 { 4741 Write(component.Render(this)); 4742 4743 } 4744 } 4745 4746 void RenderIcon(Icon settings) 4747 { 4748 if (settings != null) 4749 { 4750 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : ""; 4751 4752 if (settings.Name != null) 4753 { 4754 if (string.IsNullOrEmpty(settings.Label)) 4755 { 4756 WriteLiteral(" <i"); 4757 BeginWriteAttribute("class", " class=\"", 68209, "\"", 68267, 3); 4758 WriteAttributeValue("", 68217, settings.Prefix, 68217, 16, false); 4759 WriteAttributeValue(" ", 68233, settings.Name, 68234, 14, false); 4760 WriteAttributeValue(" ", 68248, settings.CssClass, 68249, 18, false); 4761 EndWriteAttribute(); 4762 WriteLiteral(" "); 4763 Write(color); 4764 WriteLiteral("></i>\r\n"); 4765 } 4766 else 4767 { 4768 if (settings.LabelPosition == IconLabelPosition.Before) 4769 { 4770 WriteLiteral(" <div"); 4771 BeginWriteAttribute("class", " class=\"", 68470, "\"", 68530, 3); 4772 WriteAttributeValue("", 68478, "u-flex", 68478, 6, true); 4773 WriteAttributeValue(" ", 68484, "u-flex--align-items-center", 68485, 27, true); 4774 WriteAttributeValue(" ", 68511, settings.CssClass, 68512, 18, false); 4775 EndWriteAttribute(); 4776 WriteLiteral(">"); 4777 Write(settings.Label); 4778 WriteLiteral(" <i"); 4779 BeginWriteAttribute("class", " class=\"", 68550, "\"", 68603, 3); 4780 WriteAttributeValue("", 68558, settings.Prefix, 68558, 16, false); 4781 WriteAttributeValue(" ", 68574, settings.Name, 68575, 14, false); 4782 WriteAttributeValue(" ", 68589, "u-margin-left", 68590, 14, true); 4783 EndWriteAttribute(); 4784 WriteLiteral(" "); 4785 Write(color); 4786 WriteLiteral("></i></div>\r\n"); 4787 } 4788 else 4789 { 4790 WriteLiteral(" <div"); 4791 BeginWriteAttribute("class", " class=\"", 68724, "\"", 68784, 3); 4792 WriteAttributeValue("", 68732, "u-flex", 68732, 6, true); 4793 WriteAttributeValue(" ", 68738, "u-flex--align-items-center", 68739, 27, true); 4794 WriteAttributeValue(" ", 68765, settings.CssClass, 68766, 18, false); 4795 EndWriteAttribute(); 4796 WriteLiteral("><i"); 4797 BeginWriteAttribute("class", " class=\"", 68788, "\"", 68854, 4); 4798 WriteAttributeValue("", 68796, settings.Prefix, 68796, 16, false); 4799 WriteAttributeValue(" ", 68812, settings.Name, 68813, 14, false); 4800 WriteAttributeValue(" ", 68827, "u-margin-right--lg", 68828, 19, true); 4801 WriteAttributeValue(" ", 68846, "u-w20px", 68847, 8, true); 4802 EndWriteAttribute(); 4803 WriteLiteral(" "); 4804 Write(color); 4805 WriteLiteral("></i>"); 4806 Write(settings.Label); 4807 WriteLiteral("</div>\r\n"); 4808 } 4809 } 4810 } 4811 else if (!string.IsNullOrEmpty(settings.Label)) 4812 { 4813 Write(settings.Label); 4814 4815 } 4816 } 4817 } 4818 4819 void RenderButton(Button settings) 4820 { 4821 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null)) 4822 { 4823 Dictionary<string, string> attributes = new Dictionary<string, string>(); 4824 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>(); 4825 if (settings.Disabled) { 4826 attributes.Add("disabled", "true"); 4827 classList.Add("disabled"); 4828 } 4829 4830 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle)) 4831 { 4832 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N"); 4833 RenderConfirmDialog(settings); 4834 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true"; 4835 } 4836 4837 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 4838 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 4839 if (!string.IsNullOrEmpty(settings.AltText)) 4840 { 4841 attributes.Add("title", settings.AltText); 4842 } 4843 else if (!string.IsNullOrEmpty(settings.Title)) 4844 { 4845 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty); 4846 cleanTitle = cleanTitle.Replace("&nbsp;", " "); 4847 attributes.Add("title", cleanTitle); 4848 } 4849 4850 var onClickEvents = new List<string>(); 4851 if (!string.IsNullOrEmpty(settings.OnClick)) 4852 { 4853 onClickEvents.Add(settings.OnClick); 4854 } 4855 if (!string.IsNullOrEmpty(settings.Href)) 4856 { 4857 if (settings.Href.Contains("javascript")) 4858 { 4859 settings.Href = settings.Href.Replace("http://", ""); 4860 } 4861 onClickEvents.Add("location.href='" + settings.Href + "'"); 4862 } 4863 if (onClickEvents.Count > 0) 4864 { 4865 attributes.Add("onClick", string.Join(";", onClickEvents)); 4866 } 4867 4868 if (settings.ButtonLayout != ButtonLayout.None) 4869 { 4870 classList.Add("btn"); 4871 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower(); 4872 if (btnLayout == "linkclean") 4873 { 4874 btnLayout = "link-clean"; //fix 4875 } 4876 classList.Add("btn--" + btnLayout); 4877 } 4878 4879 if (settings.Icon == null) 4880 { 4881 settings.Icon = new Icon(); 4882 } 4883 4884 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : ""; 4885 settings.Icon.Label = settings.Title; 4886 4887 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower()); 4888 4889 WriteLiteral(" <button"); 4890 BeginWriteAttribute("class", " class=\"", 72447, "\"", 72490, 2); 4891 WriteAttributeValue("", 72455, string.Join(" ", classList), 72455, 28, false); 4892 WriteAttributeValue(" ", 72483, "dw-mod", 72484, 7, true); 4893 EndWriteAttribute(); 4894 WriteLiteral(" "); 4895 Write(ComponentMethods.AddAttributes(attributes)); 4896 WriteLiteral(" "); 4897 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 4898 WriteLiteral(">"); 4899 RenderIcon(settings.Icon);WriteLiteral("</button>\r\n"); 4900 } 4901 } 4902 4903 void RenderConfirmDialog(Button settings) 4904 { 4905 Modal confirmDialog = new Modal { 4906 Id = settings.Id, 4907 Width = ModalWidth.Sm, 4908 Heading = new Heading 4909 { 4910 Level = 2, 4911 Title = settings.ConfirmTitle 4912 }, 4913 BodyText = settings.ConfirmText 4914 }; 4915 4916 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"}); 4917 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick }); 4918 4919 RenderModal(confirmDialog); 4920 } 4921 4922 void RenderLink(Link settings) 4923 { 4924 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null)) 4925 { 4926 Dictionary<string, string> attributes = new Dictionary<string, string>(); 4927 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>(); 4928 if (settings.Disabled) 4929 { 4930 attributes.Add("disabled", "true"); 4931 classList.Add("disabled"); 4932 } 4933 4934 if (!string.IsNullOrEmpty(settings.AltText)) 4935 { 4936 attributes.Add("title", settings.AltText); 4937 } 4938 else if (!string.IsNullOrEmpty(settings.Title)) 4939 { 4940 attributes.Add("title", settings.Title); 4941 } 4942 4943 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 4944 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 4945 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); } 4946 attributes.Add("href", settings.Href); 4947 4948 if (settings.ButtonLayout != ButtonLayout.None) 4949 { 4950 classList.Add("btn"); 4951 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower(); 4952 if (btnLayout == "linkclean") 4953 { 4954 btnLayout = "link-clean"; //fix 4955 } 4956 classList.Add("btn--" + btnLayout); 4957 } 4958 4959 if (settings.Icon == null) 4960 { 4961 settings.Icon = new Icon(); 4962 } 4963 settings.Icon.Label = settings.Title; 4964 4965 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None) 4966 { 4967 settings.Rel = LinkRelType.Noopener; 4968 } 4969 if (settings.Target != LinkTargetType.None) 4970 { 4971 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower()); 4972 } 4973 if (settings.Download) 4974 { 4975 attributes.Add("download", "true"); 4976 } 4977 if (settings.Rel != LinkRelType.None) 4978 { 4979 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower()); 4980 } 4981 4982 WriteLiteral(" <a"); 4983 BeginWriteAttribute("class", " class=\"", 76222, "\"", 76265, 2); 4984 WriteAttributeValue("", 76230, string.Join(" ", classList), 76230, 28, false); 4985 WriteAttributeValue(" ", 76258, "dw-mod", 76259, 7, true); 4986 EndWriteAttribute(); 4987 WriteLiteral(" "); 4988 Write(ComponentMethods.AddAttributes(attributes)); 4989 WriteLiteral(" "); 4990 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 4991 WriteLiteral(">Render(settings.Icon);</a>\r\n"); 4992 } 4993 } 4994 4995 void RenderRating(Rating settings) 4996 { 4997 if (settings.Score > 0) 4998 { 4999 int rating = settings.Score; 5000 string iconType = "fa-star"; 5001 5002 switch (settings.Type.ToString()) { 5003 case "Stars": 5004 iconType = "fa-star"; 5005 break; 5006 case "Hearts": 5007 iconType = "fa-heart"; 5008 break; 5009 case "Lemons": 5010 iconType = "fa-lemon"; 5011 break; 5012 case "Bombs": 5013 iconType = "fa-bomb"; 5014 break; 5015 } 5016 5017 WriteLiteral(" <div class=\"u-ta-right\">\r\n"); 5018 for (int i = 0; i < settings.OutOf; i++) 5019 { 5020 WriteLiteral(" <i"); 5021 BeginWriteAttribute("class", " class=\"", 77399, "\"", 77446, 2); 5022 WriteAttributeValue("", 77407, rating > i ? "fas" : "far", 77407, 29, false); 5023 WriteAttributeValue(" ", 77436, iconType, 77437, 9, false); 5024 EndWriteAttribute(); 5025 WriteLiteral("></i>\r\n"); 5026 } 5027 WriteLiteral(" </div>\r\n"); 5028 } 5029 } 5030 5031 void RenderNavigation(Navigation settings) { 5032 RenderNavigation(new 5033 { 5034 id = settings.Id, 5035 cssclass = settings.CssClass, 5036 startLevel = settings.StartLevel, 5037 endlevel = settings.EndLevel, 5038 expandmode = settings.Expandmode, 5039 sitemapmode = settings.SitemapMode, 5040 template = settings.Template 5041 }); 5042 } 5043 5044 void RenderLeftNavigation(LeftNavigation settings) { 5045 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id; 5046 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template; 5047 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel; 5048 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel; 5049 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode; 5050 5051 WriteLiteral(" <div class=\"grid__cell\">\r\n RenderNavigation(settings);\r\n </div> \r\n"); 5052 } 5053 5054 void RenderHeading(Heading settings) 5055 { 5056 if (settings != null && !string.IsNullOrEmpty(settings.Title)) 5057 { 5058 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : ""; 5059 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div"; 5060 5061 Write("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">"); 5062 5063 if (!string.IsNullOrEmpty(settings.Link)) 5064 { 5065 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None }); 5066 } 5067 else 5068 { 5069 if (settings.Icon == null) 5070 { 5071 settings.Icon = new Icon(); 5072 } 5073 settings.Icon.Label = settings.Title; 5074 RenderIcon(settings.Icon); 5075 } 5076 Write("</" + tagName + ">"); 5077 ; 5078 } 5079 } 5080 5081 void RenderImage(Image settings) 5082 { 5083 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None) 5084 { 5085 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5086 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); } 5087 5088 if (settings.Caption != null) 5089 { 5090 WriteLiteral(" "); 5091 WriteLiteral("<div>\r\n"); 5092 } 5093 5094 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower(); 5095 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower(); 5096 5097 WriteLiteral(" <div"); 5098 BeginWriteAttribute("class", " class=\"", 80927, "\"", 81008, 5); 5099 WriteAttributeValue("", 80935, "image-filter", 80935, 12, true); 5100 WriteAttributeValue(" ", 80947, "image-filter--", 80948, 15, true); 5101 WriteAttributeValue("", 80962, primaryFilterClass, 80962, 19, false); 5102 WriteAttributeValue(" ", 80981, "u-position-relative", 80982, 20, true); 5103 WriteAttributeValue(" ", 81001, "dw-mod", 81002, 7, true); 5104 EndWriteAttribute(); 5105 WriteLiteral(" "); 5106 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5107 WriteLiteral(">\r\n <div"); 5108 BeginWriteAttribute("class", " class=\"", 81088, "\"", 81151, 4); 5109 WriteAttributeValue("", 81096, "image-filter", 81096, 12, true); 5110 WriteAttributeValue(" ", 81108, "image-filter--", 81109, 15, true); 5111 WriteAttributeValue("", 81123, secondaryFilterClass, 81123, 21, false); 5112 WriteAttributeValue(" ", 81144, "dw-mod", 81145, 7, true); 5113 EndWriteAttribute(); 5114 WriteLiteral(">\r\n"); 5115 if (settings.Link != null) 5116 { 5117 WriteLiteral(" <a"); 5118 BeginWriteAttribute("href", " href=\"", 81265, "\"", 81286, 1); 5119 WriteAttributeValue("", 81272, settings.Link, 81272, 14, false); 5120 EndWriteAttribute(); 5121 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n"); 5122 } 5123 else 5124 { 5125 RenderTheImage(settings); 5126 } 5127 WriteLiteral(" </div>\r\n </div>\r\n"); 5128 5129 if (settings.Caption != null) 5130 { 5131 WriteLiteral(" <span class=\"image-caption dw-mod\">"); 5132 Write(settings.Caption); 5133 WriteLiteral("</span>\r\n "); 5134 WriteLiteral("</div>\r\n"); 5135 } 5136 } 5137 else 5138 { 5139 if (settings.Caption != null) 5140 { 5141 WriteLiteral(" "); 5142 WriteLiteral("<div>\r\n"); 5143 } 5144 if (!string.IsNullOrEmpty(settings.Link)) 5145 { 5146 WriteLiteral(" <a"); 5147 BeginWriteAttribute("href", " href=\"", 82029, "\"", 82050, 1); 5148 WriteAttributeValue("", 82036, settings.Link, 82036, 14, false); 5149 EndWriteAttribute(); 5150 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n"); 5151 } 5152 else 5153 { 5154 RenderTheImage(settings); 5155 } 5156 5157 if (settings.Caption != null) 5158 { 5159 WriteLiteral(" <span class=\"image-caption dw-mod\">"); 5160 Write(settings.Caption); 5161 WriteLiteral("</span>\r\n "); 5162 WriteLiteral("</div>\r\n"); 5163 } 5164 } 5165 } 5166 5167 void RenderTheImage(Image settings) 5168 { 5169 if (settings != null) 5170 { 5171 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg"; 5172 string placeholderImage = "/Files/Images/placeholder.gif"; 5173 string imageEngine = "/Admin/Public/GetImage.ashx?"; 5174 5175 string imageStyle = ""; 5176 5177 switch (settings.Style) 5178 { 5179 case ImageStyle.Ball: 5180 imageStyle = "grid__cell-img--ball"; 5181 break; 5182 5183 case ImageStyle.Triangle: 5184 imageStyle = "grid__cell-img--triangle"; 5185 break; 5186 } 5187 5188 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle) 5189 { 5190 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop; 5191 5192 if (settings.ImageDefault != null) 5193 { 5194 settings.ImageDefault.Height = settings.ImageDefault.Width; 5195 } 5196 if (settings.ImageMedium != null) 5197 { 5198 settings.ImageMedium.Height = settings.ImageMedium.Width; 5199 } 5200 if (settings.ImageSmall != null) 5201 { 5202 settings.ImageSmall.Height = settings.ImageSmall.Width; 5203 } 5204 } 5205 5206 string defaultImage = imageEngine; 5207 string imageSmall = ""; 5208 string imageMedium = ""; 5209 5210 if (settings.DisableImageEngine) 5211 { 5212 defaultImage = settings.Path; 5213 } 5214 else 5215 { 5216 if (settings.ImageDefault != null) 5217 { 5218 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault); 5219 5220 if (settings.Path.GetType() != typeof(string)) 5221 { 5222 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5223 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5224 } 5225 else 5226 { 5227 defaultImage += settings.Path != null ? "Image=" + settings.Path : ""; 5228 } 5229 5230 defaultImage += "&AlternativeImage=" + alternativeImage; 5231 } 5232 5233 if (settings.ImageSmall != null) 5234 { 5235 imageSmall = "data-src-small=\"" + imageEngine; 5236 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall); 5237 5238 if (settings.Path.GetType() != typeof(string)) 5239 { 5240 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5241 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5242 } 5243 else 5244 { 5245 imageSmall += settings.Path != null ? "Image=" + settings.Path : ""; 5246 } 5247 5248 imageSmall += "&alternativeImage=" + alternativeImage; 5249 5250 imageSmall += "\""; 5251 } 5252 5253 if (settings.ImageMedium != null) 5254 { 5255 imageMedium = "data-src-medium=\"" + imageEngine; 5256 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium); 5257 5258 if (settings.Path.GetType() != typeof(string)) 5259 { 5260 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : ""; 5261 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : ""; 5262 } 5263 else 5264 { 5265 imageMedium += settings.Path != null ? "Image=" + settings.Path : ""; 5266 } 5267 5268 imageMedium += "&alternativeImage=" + alternativeImage; 5269 5270 imageMedium += "\""; 5271 } 5272 } 5273 5274 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5275 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); } 5276 if (!string.IsNullOrEmpty(settings.Title)) 5277 { 5278 optionalAttributes.Add("alt", settings.Title); 5279 optionalAttributes.Add("title", settings.Title); 5280 } 5281 5282 if (settings.DisableLazyLoad) 5283 { 5284 WriteLiteral(" <img"); 5285 BeginWriteAttribute("id", " id=\"", 87529, "\"", 87546, 1); 5286 WriteAttributeValue("", 87534, settings.Id, 87534, 12, false); 5287 EndWriteAttribute(); 5288 BeginWriteAttribute("class", " class=\"", 87547, "\"", 87592, 3); 5289 WriteAttributeValue("", 87555, imageStyle, 87555, 11, false); 5290 WriteAttributeValue(" ", 87566, settings.CssClass, 87567, 18, false); 5291 WriteAttributeValue(" ", 87585, "dw-mod", 87586, 7, true); 5292 EndWriteAttribute(); 5293 BeginWriteAttribute("src", " src=\"", 87593, "\"", 87612, 1); 5294 WriteAttributeValue("", 87599, defaultImage, 87599, 13, false); 5295 EndWriteAttribute(); 5296 WriteLiteral(" "); 5297 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5298 WriteLiteral(" "); 5299 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5300 WriteLiteral(" />\r\n"); 5301 } 5302 else 5303 { 5304 5305 WriteLiteral(" <img"); 5306 BeginWriteAttribute("id", " id=\"", 87810, "\"", 87827, 1); 5307 WriteAttributeValue("", 87815, settings.Id, 87815, 12, false); 5308 EndWriteAttribute(); 5309 BeginWriteAttribute("class", " class=\"", 87828, "\"", 87873, 3); 5310 WriteAttributeValue("", 87836, imageStyle, 87836, 11, false); 5311 WriteAttributeValue(" ", 87847, settings.CssClass, 87848, 18, false); 5312 WriteAttributeValue(" ", 87866, "dw-mod", 87867, 7, true); 5313 EndWriteAttribute(); 5314 WriteLiteral(" loading=\"lazy\""); 5315 BeginWriteAttribute("src", " src=\"", 87889, "\"", 87908, 1); 5316 WriteAttributeValue("", 87895, defaultImage, 87895, 13, false); 5317 EndWriteAttribute(); 5318 WriteLiteral(" "); 5319 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5320 WriteLiteral(" "); 5321 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5322 WriteLiteral(" />\r\n"); 5323 } 5324 } 5325 } 5326 5327 void RenderHiddenField(HiddenField settings) { 5328 var attributes = new Dictionary<string, string>(); 5329 attributes.Add("type", "hidden"); 5330 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5331 if (settings.Value != null) { attributes.Add("value", settings.Value); } 5332 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 5333 5334 WriteLiteral(" <input "); 5335 Write(ComponentMethods.AddAttributes(attributes)); 5336 WriteLiteral(" "); 5337 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5338 WriteLiteral("/>\r\n"); 5339 } 5340 5341 void RenderRadioButtonField(RadioButtonField settings) 5342 { 5343 var attributes = new Dictionary<string, string>(); 5344 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id)) 5345 { 5346 settings.Id = Guid.NewGuid().ToString("N"); 5347 } 5348 5349 /*base settings*/ 5350 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5351 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); } 5352 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); } 5353 if (settings.Disabled) { attributes.Add("disabled", "true"); } 5354 if (settings.Required) { attributes.Add("required", "true"); } 5355 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); } 5356 /*end*/ 5357 5358 attributes.Add("type", "radio"); 5359 if (settings.Checked) { attributes.Add("checked", "true"); } 5360 settings.CssClass = "form__control " + settings.CssClass; 5361 if (settings.Value != null) { attributes.Add("value", settings.Value); } 5362 5363 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value); 5364 5365 WriteLiteral(" <div"); 5366 BeginWriteAttribute("class", " class=\"", 90228, "\"", 90286, 3); 5367 WriteAttributeValue("", 90236, "form__field-group", 90236, 17, true); 5368 WriteAttributeValue(" ", 90253, settings.WrapperCssClass, 90254, 25, false); 5369 WriteAttributeValue(" ", 90279, "dw-mod", 90280, 7, true); 5370 EndWriteAttribute(); 5371 WriteLiteral(">\r\n <input "); 5372 Write(ComponentMethods.AddAttributes(resultAttributes)); 5373 WriteLiteral(" class=\""); 5374 Write(settings.CssClass); 5375 WriteLiteral(" dw-mod\" />\r\n"); 5376 if (!string.IsNullOrEmpty(settings.Label)) 5377 { 5378 WriteLiteral(" <label"); 5379 BeginWriteAttribute("for", " for=\"", 90491, "\"", 90509, 1); 5380 WriteAttributeValue("", 90497, settings.Id, 90497, 12, false); 5381 EndWriteAttribute(); 5382 WriteLiteral(" class=\"dw-mod\">"); 5383 Write(settings.Label); 5384 WriteLiteral("</label>\r\n"); 5385 } 5386 if (!string.IsNullOrEmpty(settings.HelpText)) 5387 { 5388 WriteLiteral(" <small class=\"form__help-text\">"); 5389 Write(settings.HelpText); 5390 WriteLiteral("</small>\r\n"); 5391 } 5392 WriteLiteral(" Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n"); 5393 } 5394 5395 void RenderRadioButtonListField(RadioButtonListField settings) 5396 { 5397 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; } 5398 5399 WriteLiteral(" <div"); 5400 BeginWriteAttribute("class", " class=\"", 91224, "\"", 91298, 4); 5401 WriteAttributeValue("", 91232, "form__field-group", 91232, 17, true); 5402 WriteAttributeValue(" ", 91249, settings.WrapperCssClass, 91250, 25, false); 5403 WriteAttributeValue(" ", 91275, "u-margin-bottom", 91276, 16, true); 5404 WriteAttributeValue(" ", 91291, "dw-mod", 91292, 7, true); 5405 EndWriteAttribute(); 5406 WriteLiteral(" "); 5407 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5408 WriteLiteral(">\r\n"); 5409 if (!string.IsNullOrEmpty(settings.Label)) 5410 { 5411 WriteLiteral(" <label>"); 5412 Write(settings.Label); 5413 WriteLiteral("</label>\r\n"); 5414 } 5415 if (!string.IsNullOrEmpty(settings.HelpText)) 5416 { 5417 WriteLiteral(" <small class=\"form__help-text\">"); 5418 Write(settings.HelpText); 5419 WriteLiteral("</small>\r\n"); 5420 } 5421 WriteLiteral("\r\n"); 5422 foreach (var item in settings.Options) 5423 { 5424 if (settings.Required) 5425 { 5426 item.Required = true; 5427 } 5428 if (settings.Disabled) 5429 { 5430 item.Disabled = true; 5431 } 5432 if (!string.IsNullOrEmpty(settings.Name)) 5433 { 5434 item.Name = settings.Name; 5435 } 5436 if (settings.Value != null && settings.Value == item.Value) 5437 { 5438 item.Checked = true; 5439 } 5440 if (!string.IsNullOrEmpty(settings.OnClick)) 5441 { 5442 item.OnClick += settings.OnClick; 5443 } 5444 if (!string.IsNullOrEmpty(settings.OnChange)) 5445 { 5446 item.OnChange += settings.OnChange; 5447 } 5448 if (!string.IsNullOrEmpty(settings.CssClass)) 5449 { 5450 item.CssClass += settings.CssClass; 5451 } 5452 Render(item); 5453 } 5454 WriteLiteral("\r\n Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n"); 5455 } 5456 5457 void RenderForm(Form settings) { 5458 if (settings != null) 5459 { 5460 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>(); 5461 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); }; 5462 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); }; 5463 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); }; 5464 var enctypes = new Dictionary<string, string> 5465 { 5466 { "multipart", "multipart/form-data" }, 5467 { "text", "text/plain" }, 5468 { "application", "application/x-www-form-urlencoded" } 5469 }; 5470 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); }; 5471 optionalAttributes.Add("method", settings.Method.ToString()); 5472 5473 if (!string.IsNullOrEmpty(settings.FormStartMarkup)) 5474 { 5475 Write(settings.FormStartMarkup); 5476 5477 } 5478 else 5479 { 5480 WriteLiteral(" "); 5481 WriteLiteral("<form class=\""); 5482 Write(settings.CssClass); 5483 WriteLiteral(" u-no-margin dw-mod\" "); 5484 Write(ComponentMethods.AddAttributes(optionalAttributes)); 5485 WriteLiteral(" "); 5486 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes)); 5487 WriteLiteral(">\r\n"); 5488 } 5489 5490 foreach (var field in settings.GetFields()) 5491 { 5492 Render(field); 5493 } 5494 5495 WriteLiteral(" "); 5496 WriteLiteral("</form>\r\n"); 5497 } 5498 } 5499 5500 void RenderText(Text settings) 5501 { 5502 Write(settings.Content); 5503 5504 } 5505 5506 void RenderContentModule(ContentModule settings) { 5507 if (!string.IsNullOrEmpty(settings.Content)) 5508 { 5509 Write(settings.Content); 5510 5511 } 5512 } 5513 5514 void RenderModal(Modal settings) { 5515 if (settings != null) 5516 { 5517 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N"); 5518 5519 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : ""; 5520 5521 WriteLiteral(" <input type=\"checkbox\""); 5522 BeginWriteAttribute("id", " id=\"", 95694, "\"", 95721, 2); 5523 WriteAttributeValue("", 95699, modalId, 95699, 10, false); 5524 WriteAttributeValue("", 95709, "ModalTrigger", 95709, 12, true); 5525 EndWriteAttribute(); 5526 WriteLiteral(" class=\"modal-trigger\" "); 5527 Write(onchange); 5528 WriteLiteral(" />\r\n"); 5529 WriteLiteral(" <div class=\"modal-container\">\r\n"); 5530 if (!settings.DisableDarkOverlay) 5531 { 5532 WriteLiteral(" <label"); 5533 BeginWriteAttribute("for", " for=\"", 95901, "\"", 95929, 2); 5534 WriteAttributeValue("", 95907, modalId, 95907, 10, false); 5535 WriteAttributeValue("", 95917, "ModalTrigger", 95917, 12, true); 5536 EndWriteAttribute(); 5537 BeginWriteAttribute("id", " id=\"", 95930, "\"", 95957, 2); 5538 WriteAttributeValue("", 95935, modalId, 95935, 10, false); 5539 WriteAttributeValue("", 95945, "ModalOverlay", 95945, 12, true); 5540 EndWriteAttribute(); 5541 WriteLiteral(" class=\"modal-overlay\"></label>\r\n"); 5542 } 5543 WriteLiteral(" <div"); 5544 BeginWriteAttribute("class", " class=\"", 96030, "\"", 96139, 5); 5545 WriteAttributeValue("", 96038, "modal", 96038, 5, true); 5546 WriteAttributeValue(" ", 96043, "modal--", 96044, 8, true); 5547 WriteAttributeValue("", 96051, settings.Width.ToString().ToLower(), 96051, 36, false); 5548 WriteAttributeValue(" ", 96087, "modal-height--", 96088, 15, true); 5549 WriteAttributeValue("", 96102, settings.Height.ToString().ToLower(), 96102, 37, false); 5550 EndWriteAttribute(); 5551 BeginWriteAttribute("id", " id=\"", 96140, "\"", 96160, 2); 5552 WriteAttributeValue("", 96145, modalId, 96145, 10, false); 5553 WriteAttributeValue("", 96155, "Modal", 96155, 5, true); 5554 EndWriteAttribute(); 5555 WriteLiteral(">\r\n"); 5556 if (settings.Heading != null) 5557 { 5558 if (!string.IsNullOrEmpty(settings.Heading.Title)) 5559 { 5560 WriteLiteral(" <div class=\"modal__header\">\r\n RenderHeading(settings.Heading);\r\n </div>\r\n"); 5561 } 5562 } 5563 WriteLiteral(" <div"); 5564 BeginWriteAttribute("class", " class=\"", 96575, "\"", 96670, 2); 5565 WriteAttributeValue("", 96583, "modal__body", 96583, 11, true); 5566 WriteAttributeValue(" ", 96594, settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "", 96595, 75, false); 5567 EndWriteAttribute(); 5568 WriteLiteral(">\r\n"); 5569 if (!string.IsNullOrEmpty(settings.BodyText)) 5570 { 5571 Write(settings.BodyText); 5572 5573 } 5574 if (settings.BodyTemplate != null) 5575 { 5576 Write(settings.BodyTemplate); 5577 5578 } 5579 5580 var actions = settings.GetActions(); 5581 WriteLiteral(" </div>\r\n"); 5582 if (actions.Length > 0) 5583 { 5584 WriteLiteral(" <div class=\"modal__footer\">\r\n"); 5585 foreach (var action in actions) 5586 { 5587 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") { 5588 action.CssClass += " u-no-margin"; 5589 } else { 5590 action.CssClass += " u-full-width u-margin-bottom"; 5591 } 5592 5593 Render(action); 5594 } 5595 WriteLiteral(" </div>\r\n"); 5596 } 5597 WriteLiteral(" <label class=\"modal__close-btn\""); 5598 BeginWriteAttribute("for", " for=\"", 97914, "\"", 97942, 2); 5599 WriteAttributeValue("", 97920, modalId, 97920, 10, false); 5600 WriteAttributeValue("", 97930, "ModalTrigger", 97930, 12, true); 5601 EndWriteAttribute(); 5602 WriteLiteral("></label>\r\n </div>\r\n </div>\r\n"); 5603 } 5604 } 5605 5606 void RenderMediaListItem(MediaListItem settings) 5607 { 5608 WriteLiteral(" <div"); 5609 BeginWriteAttribute("class", " class=\"", 98180, "\"", 98229, 3); 5610 WriteAttributeValue("", 98188, "media-list-item", 98188, 15, true); 5611 WriteAttributeValue(" ", 98203, settings.CssClass, 98204, 18, false); 5612 WriteAttributeValue(" ", 98222, "dw-mod", 98223, 7, true); 5613 EndWriteAttribute(); 5614 WriteLiteral(" "); 5615 Write(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : ""); 5616 WriteLiteral(">\r\n"); 5617 if (!string.IsNullOrEmpty(settings.Label)) 5618 { 5619 if (!string.IsNullOrEmpty(settings.Link)) 5620 { 5621 Render(new Link 5622 { 5623 Href = settings.Link, 5624 CssClass = "media-list-item__sticker dw-mod", 5625 ButtonLayout = ButtonLayout.None, 5626 Title = settings.Label, 5627 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : "" 5628 }); 5629 } 5630 else if (!string.IsNullOrEmpty(settings.OnClick)) 5631 { 5632 WriteLiteral(" <span class=\"media-list-item__sticker dw-mod\""); 5633 BeginWriteAttribute("onclick", " onclick=\"", 99037, "\"", 99066, 1); 5634 WriteAttributeValue("", 99047, settings.OnClick, 99047, 19, false); 5635 EndWriteAttribute(); 5636 WriteLiteral(">\r\n <span class=\"u-uppercase\">"); 5637 Write(settings.Label); 5638 WriteLiteral("</span>\r\n </span>\r\n"); 5639 } 5640 else 5641 { 5642 WriteLiteral(" <span class=\"media-list-item__sticker media-list-item__sticker--no-link dw-mod\">\r\n <span class=\"u-uppercase\">"); 5643 Write(settings.Label); 5644 WriteLiteral("</span>\r\n </span>\r\n"); 5645 } 5646 } 5647 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"); 5648 if (!string.IsNullOrEmpty(settings.Title)) 5649 { 5650 if (!string.IsNullOrEmpty(settings.Link)) 5651 { 5652 Render(new Link 5653 { 5654 Href = settings.Link, 5655 CssClass = "media-list-item__name dw-mod", 5656 ButtonLayout = ButtonLayout.None, 5657 Title = settings.Title, 5658 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : "" 5659 }); 5660 } 5661 else if (!string.IsNullOrEmpty(settings.OnClick)) 5662 { 5663 WriteLiteral(" <span class=\"media-list-item__name dw-mod\""); 5664 BeginWriteAttribute("onclick", " onclick=\"", 100563, "\"", 100592, 1); 5665 WriteAttributeValue("", 100573, settings.OnClick, 100573, 19, false); 5666 EndWriteAttribute(); 5667 WriteLiteral(">"); 5668 Write(settings.Title); 5669 WriteLiteral("</span>\r\n"); 5670 } 5671 else 5672 { 5673 WriteLiteral(" <span class=\"media-list-item__name media-list-item__name--no-link dw-mod\">"); 5674 Write(settings.Title); 5675 WriteLiteral("</span>\r\n"); 5676 } 5677 } 5678 WriteLiteral("\r\n"); 5679 if (!string.IsNullOrEmpty(settings.Status)) 5680 { 5681 WriteLiteral(" <div class=\"media-list-item__state dw-mod\">"); 5682 Write(settings.Status); 5683 WriteLiteral("</div>\r\n"); 5684 } 5685 WriteLiteral(" </div>\r\n"); 5686 5687 settings.InfoTable.CssClass += " media-list-item__parameters-table"; 5688 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"); 5689 5690 var actions = settings.GetActions(); 5691 5692 foreach (ButtonBase action in actions) 5693 { 5694 action.ButtonLayout = ButtonLayout.None; 5695 action.CssClass += " media-list-item__action link"; 5696 5697 Render(action); 5698 } 5699 WriteLiteral(" </div>\r\n\r\n"); 5700 if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title)) 5701 { 5702 settings.SelectButton.CssClass += " u-no-margin"; 5703 5704 WriteLiteral(" <div class=\"media-list-item__action-button\">\r\n Render(settings.SelectButton);\r\n </div>\r\n"); 5705 } 5706 WriteLiteral(" </div>\r\n </div>\r\n </div>\r\n"); 5707 } 5708 5709 void RenderTable(Table settings) 5710 { 5711 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5712 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5713 5714 var enumToClasses = new Dictionary<TableDesign, string> 5715 { 5716 { TableDesign.Clean, "table--clean" }, 5717 { TableDesign.Bordered, "table--bordered" }, 5718 { TableDesign.Striped, "table--striped" }, 5719 { TableDesign.Hover, "table--hover" }, 5720 { TableDesign.Compact, "table--compact" }, 5721 { TableDesign.Condensed, "table--condensed" }, 5722 { TableDesign.NoTopBorder, "table--no-top-border" } 5723 }; 5724 string tableDesignClass = ""; 5725 if (settings.Design != TableDesign.None) 5726 { 5727 tableDesignClass = enumToClasses[settings.Design]; 5728 } 5729 5730 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); } 5731 5732 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5733 5734 WriteLiteral(" <table "); 5735 Write(ComponentMethods.AddAttributes(resultAttributes)); 5736 WriteLiteral(">\r\n"); 5737 if (settings.Header != null) 5738 { 5739 WriteLiteral(" <thead>\r\n Render(settings.Header);\r\n </thead>\r\n"); 5740 } 5741 WriteLiteral(" <tbody>\r\n"); 5742 foreach (var row in settings.Rows) 5743 { 5744 Render(row); 5745 } 5746 WriteLiteral(" </tbody>\r\n"); 5747 if (settings.Footer != null) 5748 { 5749 WriteLiteral(" <tfoot>\r\n Render(settings.Footer);\r\n </tfoot>\r\n"); 5750 } 5751 WriteLiteral(" </table>\r\n"); 5752 } 5753 5754 void RenderTableRow(TableRow settings) 5755 { 5756 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5757 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5758 5759 var enumToClasses = new Dictionary<TableRowDesign, string> 5760 { 5761 { TableRowDesign.NoBorder, "table__row--no-border" }, 5762 { TableRowDesign.Border, "table__row--border" }, 5763 { TableRowDesign.TopBorder, "table__row--top-line" }, 5764 { TableRowDesign.BottomBorder, "table__row--bottom-line" }, 5765 { TableRowDesign.Solid, "table__row--solid" } 5766 }; 5767 5768 string tableRowDesignClass = ""; 5769 if (settings.Design != TableRowDesign.None) 5770 { 5771 tableRowDesignClass = enumToClasses[settings.Design]; 5772 } 5773 5774 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); } 5775 5776 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5777 5778 WriteLiteral(" <tr "); 5779 Write(ComponentMethods.AddAttributes(resultAttributes)); 5780 WriteLiteral(">\r\n"); 5781 foreach (var cell in settings.Cells) 5782 { 5783 if (settings.IsHeaderRow) 5784 { 5785 cell.IsHeader = true; 5786 } 5787 Render(cell); 5788 } 5789 WriteLiteral(" </tr>\r\n"); 5790 } 5791 5792 void RenderTableCell(TableCell settings) 5793 { 5794 Dictionary<string, string> attributes = new Dictionary<string, string>(); 5795 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); } 5796 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); } 5797 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); } 5798 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); } 5799 5800 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); 5801 5802 string tagName = settings.IsHeader ? "th" : "td"; 5803 5804 Write("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">"); 5805 Write(settings.Content); 5806 Write("</" + tagName + ">"); 5807 ; 5808 } 5809 5810 BlocksPage articlePage = BlocksPage.GetBlockPage("DynamicArticle"); 5811 5812 public string GetParentSettingsItem(string systemName) 5813 { 5814 string item = null; 5815 5816 Dynamicweb.Content.Page current = Dynamicweb.Services.Pages.GetPage(Model.ID); 5817 while (current != null && current.Parent != current) 5818 { 5819 var temp = current.Item != null ? current.Item[systemName] : ""; 5820 5821 if (temp != null) 5822 { 5823 item = temp.ToString(); 5824 5825 if (!String.IsNullOrEmpty(item) && !String.Equals("default", item, StringComparison.OrdinalIgnoreCase)) 5826 { 5827 break; 5828 } 5829 } 5830 5831 current = current.Parent; 5832 } 5833 5834 return item; 5835 } 5836 5837 public string GetArticleCategory(int pageId) 5838 { 5839 string categoryName = null; 5840 5841 //Secure that the article is not in the root folder = Actual has a category 5842 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null) 5843 { 5844 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null) 5845 { 5846 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType)) 5847 { 5848 categoryName = Dynamicweb.Services.Pages.GetPage(pageId).Parent.GetDisplayName(); 5849 } 5850 } 5851 } 5852 5853 return categoryName; 5854 } 5855 5856 public string GetArticleCategoryColor(int pageId) 5857 { 5858 string categoryColor = ""; 5859 5860 //Secure that the article is not in the root folder = Actual has a category 5861 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null) 5862 { 5863 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null) 5864 { 5865 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType)) 5866 { 5867 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"] != null) 5868 { 5869 var service = new ColorSwatchService(); 5870 categoryColor = Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"].ToString(); 5871 5872 if (!categoryColor.Contains("#")) 5873 { 5874 categoryColor = service.GetHexColor(Converter.ToInt32(Model.Area.ID), categoryColor); 5875 } 5876 } 5877 } 5878 } 5879 } 5880 5881 return categoryColor; 5882 } 5883 } 5884 } 5885 #pragma warning restore 1591 5886

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