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