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