Error compiling template "Designs/rm/DynamicArticle.cshtml"
Line 21: The using directive for 'Dynamicweb.Content.Items' appeared previously in this namespace
Line 22: The using directive for 'Dynamicweb.Frontend.Navigation' appeared previously in this namespace
Line 23: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 25: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 26: The using directive for 'System.Text.RegularExpressions' appeared previously in this namespace
Line 33: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 34: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 36: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 38: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 39: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 40: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 41: The using directive for 'System.Reflection' appeared previously in this namespace
Line 42: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 43: The using directive for 'System.Reflection' appeared previously in this namespace
Line 44: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 45: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 46: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 47: The using directive for 'System.Text.RegularExpressions' appeared previously in this namespace
Line 48: The using directive for 'System.Reflection' appeared previously in this namespace
Line 49: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 50: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 51: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 52: The using directive for 'System.Reflection' appeared previously in this namespace
Line 53: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 54: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 55: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 56: The using directive for 'System.Reflection' appeared previously in this namespace
Line 57: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 58: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 59: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 60: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 61: The using directive for 'System.Reflection' appeared previously in this namespace
Line 62: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 63: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 64: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 65: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 66: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 68: The using directive for 'System.Reflection' appeared previously in this namespace
Line 69: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 70: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 71: The using directive for 'System.Reflection' appeared previously in this namespace
Line 72: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 73: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 74: The using directive for 'System.Reflection' appeared previously in this namespace
Line 75: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 76: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 77: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 78: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 79: The using directive for 'System.Reflection' appeared previously in this namespace
Line 80: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 81: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 82: The using directive for 'System.Reflection' appeared previously in this namespace
Line 83: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 84: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 85: The using directive for 'System.Reflection' appeared previously in this namespace
Line 86: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 87: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 88: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 89: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 90: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 91: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 92: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 93: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 94: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 95: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 97: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 98: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 99: The using directive for 'Dynamicweb.Rapido.Blocks.Components.Articles' appeared previously in this namespace
Line 100: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 101: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 102: The using directive for 'Dynamicweb.Content.Items' appeared previously in this namespace
Line 104: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 105: The using directive for 'Dynamicweb.Core.Encoders' appeared previously in this namespace
Line 1701: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 1702: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1704: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1706: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1793: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1794: 'ListViewModel.Options' is obsolete: 'Use the GetAllOptions extension method instead'
Line 1830: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1969: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1989: Argument 1: cannot convert from 'void' to 'object'
Line 5180: The variable 'placeholderImage' is assigned but its value is never used
Line 5824: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5850: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5852: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5854: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5856: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5869: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5871: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5873: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5875: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5878: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
1 // <auto-generated/>
2 #pragma warning disable 1591
3 namespace CompiledRazorTemplates.Dynamic
4 {
5 #line hidden
6 using System.Threading.Tasks;
7 using System.Linq;
8 using System;
9 using System.Globalization;
10 using System.Text.RegularExpressions;
11 using Custom.Integration.Brokers;
12 using RealMaeglerne.Dynamicweb;
13 using Dynamicweb.Content.Items;
14 using Dynamicweb.Environment;
15 using Newtonsoft.Json;
16 using Dynamicweb.Logging;
17 using Dynamicweb.Core;
18 using Dynamicweb.Frontend.Navigation;
19 using Dynamicweb;
20 using static RealMaeglerne.Library.Helper;
21 using Dynamicweb.Content.Items;
22 using Dynamicweb.Frontend.Navigation;
23 using Dynamicweb.Core;
24 using Dynamicweb.Core.Encoders;
25 using Dynamicweb;
26 using System.Text.RegularExpressions;
27 using System.Collections.Generic;
28 using System.Reflection;
29 using Dynamicweb.Rapido.Blocks.Components;
30 using Dynamicweb.Rapido.Blocks.Components.Articles;
31 using Dynamicweb.Rapido.Blocks.Components.Documentation;
32 using Dynamicweb.Rapido.Blocks;
33 using Dynamicweb;
34 using Dynamicweb.Rapido.Blocks.Components;
35 using Dynamicweb.Rapido.Blocks.Components.General;
36 using Dynamicweb.Rapido.Blocks;
37 using System.IO;
38 using Dynamicweb.Rapido.Blocks.Components;
39 using Dynamicweb.Rapido.Blocks.Components.General;
40 using Dynamicweb.Rapido.Blocks;
41 using System.Reflection;
42 using Dynamicweb.Rapido.Blocks.Components.General;
43 using System.Reflection;
44 using Dynamicweb.Rapido.Blocks.Components.General;
45 using Dynamicweb.Rapido.Blocks.Components;
46 using Dynamicweb.Core;
47 using System.Text.RegularExpressions;
48 using System.Reflection;
49 using Dynamicweb.Rapido.Blocks.Components.General;
50 using Dynamicweb.Rapido.Blocks.Components;
51 using Dynamicweb.Core;
52 using System.Reflection;
53 using Dynamicweb.Rapido.Blocks.Components;
54 using Dynamicweb.Rapido.Blocks.Components.General;
55 using Dynamicweb.Rapido.Blocks;
56 using System.Reflection;
57 using Dynamicweb.Rapido.Blocks.Components.General;
58 using Dynamicweb.Rapido.Blocks.Components;
59 using Dynamicweb.Rapido.Blocks.Components.General;
60 using Dynamicweb.Rapido.Blocks.Components;
61 using System.Reflection;
62 using Dynamicweb.Rapido.Blocks.Components.General;
63 using Dynamicweb.Core;
64 using Dynamicweb.Rapido.Blocks.Components;
65 using Dynamicweb.Rapido.Blocks.Components.General;
66 using Dynamicweb.Rapido.Blocks;
67 using Dynamicweb.Frontend;
68 using System.Reflection;
69 using Dynamicweb.Rapido.Blocks.Components.General;
70 using Dynamicweb.Rapido.Blocks.Components;
71 using System.Reflection;
72 using Dynamicweb.Rapido.Blocks.Components.General;
73 using Dynamicweb.Rapido.Blocks.Components;
74 using System.Reflection;
75 using Dynamicweb.Rapido.Blocks.Components.General;
76 using Dynamicweb.Rapido.Blocks.Components;
77 using Dynamicweb.Rapido.Blocks.Components.General;
78 using Dynamicweb.Rapido.Blocks.Components;
79 using System.Reflection;
80 using Dynamicweb.Rapido.Blocks.Components.General;
81 using Dynamicweb.Rapido.Blocks.Components;
82 using System.Reflection;
83 using Dynamicweb.Rapido.Blocks.Components.General;
84 using Dynamicweb.Rapido.Blocks.Components;
85 using System.Reflection;
86 using Dynamicweb.Rapido.Blocks.Components.General;
87 using Dynamicweb.Rapido.Blocks.Components;
88 using Dynamicweb.Rapido.Blocks.Components.General;
89 using Dynamicweb.Rapido.Blocks.Components.General;
90 using Dynamicweb.Rapido.Blocks.Components;
91 using Dynamicweb.Rapido.Blocks.Components.General;
92 using Dynamicweb.Rapido.Blocks.Components;
93 using Dynamicweb.Rapido.Blocks.Components.General;
94 using Dynamicweb.Rapido.Blocks.Components;
95 using Dynamicweb.Core;
96 using Dynamicweb.Extensibility;
97 using Dynamicweb.Core;
98 using Dynamicweb.Rapido.Blocks.Components;
99 using Dynamicweb.Rapido.Blocks.Components.Articles;
100 using Dynamicweb.Rapido.Blocks.Components.General;
101 using Dynamicweb.Rapido.Blocks;
102 using Dynamicweb.Content.Items;
103 using Dynamicweb.Security.UserManagement;
104 using Dynamicweb.Core;
105 using Dynamicweb.Core.Encoders;
106 internal class RazorEngine_3dee2ff54511421bb974c39604e0d9b7 : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
107 {
108 #pragma warning disable 1998
109 public async override global::System.Threading.Tasks.Task ExecuteAsync()
110 {
111 WriteLiteral("\r\n");
112 WriteLiteral("\r\n");
113 WriteLiteral("\r\n");
114 WriteLiteral("\r\n");
115 WriteLiteral("\r\n");
116 WriteLiteral("\r\n\r\n\r\n");
117 WriteLiteral("\r\n");
118 WriteLiteral("\r\n");
119 WriteLiteral("\r\n");
120 WriteLiteral("\r\n");
121 WriteLiteral("\r\n");
122 WriteLiteral("\r\n");
123 WriteLiteral("\r\n");
124 WriteLiteral("\r\n");
125 WriteLiteral("\r\n");
126 WriteLiteral("\r\n");
127 WriteLiteral("\r\n");
128 WriteLiteral("\r\n");
129 WriteLiteral("\r\n");
130 WriteLiteral("\r\n\r\n");
131 WriteLiteral("\r\n");
132 WriteLiteral("\r\n");
133 WriteLiteral("\r\n");
134 WriteLiteral("\r\n");
135 WriteLiteral("\r\n");
136 WriteLiteral("\r\n");
137 WriteLiteral("\r\n");
138 WriteLiteral("\r\n");
139 WriteLiteral("\r\n");
140 WriteLiteral("\r\n");
141 WriteLiteral("\r\n");
142 WriteLiteral("\r\n");
143 WriteLiteral("\r\n");
144 WriteLiteral("\r\n");
145 WriteLiteral("\r\n");
146 WriteLiteral("\r\n");
147 WriteLiteral("\r\n");
148 WriteLiteral("\r\n");
149 WriteLiteral("\r\n");
150 WriteLiteral("\r\n");
151 WriteLiteral("\r\n");
152 WriteLiteral("\r\n");
153 WriteLiteral("\r\n");
154 WriteLiteral("\r\n\r\n");
155 WriteLiteral("\r\n");
156 WriteLiteral("\r\n");
157 WriteLiteral("\r\n\r\n");
158 WriteLiteral("\r\n");
159 WriteLiteral("\r\n");
160 WriteLiteral("\r\n");
161 WriteLiteral("\r\n\r\n");
162 WriteLiteral("\r\n");
163 WriteLiteral("\r\n");
164 WriteLiteral("\r\n");
165 WriteLiteral("\r\n");
166
167 Context.Current.Response.AddHeader("access-control-allow-origin", "*");
168
169 string bodyClass = "";
170 string template = "real";
171 string TemplateUrl = "/Files/Templates/Designs/rm/";
172 string MetaTitle = Model.Title;
173 string MetaDescription = Model.Description;
174 string MetaKeywords = Model.Keywords;
175 string searchClass = "";
176
177 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css"));
178 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}";
179
180 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg";
181
182 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2");
183
184 // Indstillinger
185 var settings_Frontpage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : "";
186 var settings_Boligside = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : "";
187 var settings_Maeglersogning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : "";
188 var settings_MinSide = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : "";
189 var settings_Sibling_Site = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : "";
190 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : "";
191 var settings_Product_Group = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : "";
192 var settings_Boligagent = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : "";
193 var settings_Persondatapolitik = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : "";
194
195 // API
196 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : "";
197 var settings_BoligListFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : "";
198 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : "";
199 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : "";
200 var settings_BoligCountFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : "";
201 var settings_BoligMapFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : "";
202 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"];
203
204 // Forside
205 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : "";
206 var settings_FrontpageVideo = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : "";
207 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : "";
208
209 // Tracking
210 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : "";
211 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"])))
212 {
213 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]);
214 }
215 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : "";
216 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : "";
217 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : "";
218 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]);
219 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]);
220 var settings_Google_Optimize_Id = Converter.ToString(SettingsItem["Google_Optimize_Id"]);
221
222 // Indstillinger for brugerfunktioner
223 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : "";
224 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : "";
225 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : "";
226 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : "";
227
228 int createUserParagraphId = 0;
229 int loginParagraphId = 0;
230 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId);
231 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId);
232
233 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv.
234 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv)
235 int searchPageId = GetPageSettingsPageId("Boligside");
236 if (searchPageId == 0)
237 {
238 searchPageId = GetWebsiteSettingsPageId("Boligside");
239 }
240
241 int boligsideId = GetPageSettingsPageId("Boligside");
242 if (boligsideId == 0)
243 {
244 boligsideId = GetWebsiteSettingsPageId("Boligside");
245 }
246
247 string productGroupFilter = String.Empty;
248 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null)
249 {
250 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString();
251 }
252
253 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"]))
254 {
255 searchClass = "is-frontpage";
256 }
257
258 bool isErhverv = false;
259 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null)
260 {
261 var s = Pageview.Page.PropertyItem["Erhverv"].ToString();
262 Boolean.TryParse(s, out isErhverv);
263 }
264
265 bool isBrokerPage = false;
266 if (!string.IsNullOrEmpty(Model.Area.Item.GetString("M_glerGruppeId")))
267 {
268 isBrokerPage = true;
269 bodyClass = ""; // Get rid of transparent header on brokerPage
270 }
271
272 string callTrackingId = Model.Item.GetString("CallTrackingId");
273
274 RealEstate.User.Model.BrokerEmployee MyBroker = null;
275 try
276 {
277 var MyB = new RealEstate.User.MyBroker();
278 MyBroker = MyB.GetMyBroker();
279 }
280 catch
281 {
282 // Ignore
283 }
284
285 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : "");
286 string querySearchNameAttr = "search";
287
288 // Overwrite search with zipcodeinterval if set
289 if (Context.Current.Request.QueryString["zipcodeinterval"] != null)
290 {
291 querySearch = Context.Current.Request.QueryString["zipcodeinterval"];
292 querySearchNameAttr = "zipcodeinterval";
293 }
294
295 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : "");
296 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : "");
297
298 Dynamicweb.Security.UserManagement.User user = null;
299 int userID = 0;
300 string userName = "";
301 string userEmail = "";
302 string userPhone = "";
303 string userZip = "";
304 string userAddress = "";
305
306 if (Dynamicweb.Security.UserManagement.UserContext.Current.IsLoggedOn)
307 {
308 user = Dynamicweb.Security.UserManagement.UserContext.Current.User;
309 userName = user.Name;
310 userEmail = user.Email;
311 userPhone = user.Phone;
312 userZip = user.Zip;
313 userAddress = user.Address;
314 userID = user.ID;
315 }
316
317 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode");
318 string forgotPwTemplate = "";
319 string forgotPwSender = "";
320 string markerColor = "";
321 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png";
322
323 // Important - e-mail templates for forgotPw must be placed in "UserManagement/Login" folder
324 forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml";
325 forgotPwSender = "noreply@mailreal.dk";
326 markerColor = "#213960";
327
328 var butikId = string.Empty;
329 string bEmail = string.Empty;
330 if (MyBroker != null && MyBroker.Broker != null)
331 {
332 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
333 bEmail = MyBroker.Broker.Item().GetString("Email");
334 }
335
336 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment"));
337
338 var termsMail = "info@realmaeglerne.dk";
339 WriteLiteral("\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta charset=\"utf-8\">\r\n <title>");
340 Write(MetaTitle);
341 WriteLiteral("</title>\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n <meta name=\"description\"");
342 BeginWriteAttribute("content", " content=\"", 117041, "\"", 117067, 1);
343 WriteAttributeValue("", 117051, MetaDescription, 117051, 16, false);
344 EndWriteAttribute();
345 WriteLiteral(">\r\n <meta name=\"keywords\"");
346 BeginWriteAttribute("content", " content=\"", 117096, "\"", 117119, 1);
347 WriteAttributeValue("", 117106, MetaKeywords, 117106, 13, false);
348 EndWriteAttribute();
349 WriteLiteral(">\r\n <meta name=\"format-detection\" content=\"telephone=no\">\r\n <meta http-equiv=\"Expires\" content=\"60\">\r\n <meta name=\"robots\"");
350 BeginWriteAttribute("content", " content=\"", 117251, "\"", 117357, 3);
351 WriteAttributeValue("", 117261, Pageview.Area.Noindex ? "noindex" : "index", 117261, 46, false);
352 WriteAttributeValue("", 117307, ",", 117307, 1, true);
353 WriteAttributeValue("", 117308, Pageview.Area.Nofollow ? "nofollow" : "follow", 117308, 49, false);
354 EndWriteAttribute();
355 WriteLiteral(">\r\n\r\n");
356 WriteLiteral("\r\n ");
357 Write(RenderSnippet("OpenGraphTags"));
358 WriteLiteral("\r\n");
359 if (!string.IsNullOrEmpty(settings_Google_Optimize_Id))
360 {
361 WriteLiteral(" <!-- Google optimize script-->\r\n <script");
362 BeginWriteAttribute("src", " src=\"", 117549, "\"", 117629, 2);
363 WriteAttributeValue("", 117555, "https://www.googleoptimize.com/optimize.js?id=", 117555, 46, true);
364 WriteAttributeValue("", 117601, settings_Google_Optimize_Id, 117601, 28, false);
365 EndWriteAttribute();
366 WriteLiteral("></script>\r\n");
367 }
368 WriteLiteral(@" <!-- TrustBox script -->
369 <script type=""text/javascript"" src=""//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js"" async></script>
370 <!-- End TrustBox script -->
371
372 <script type=""application/ld+json"">
373 {
374 ""context"": ""https://schema.org/"",
375 """);
376 WriteLiteral(@"@type"": ""WebSite"",
377 ""name"": ""RealMæglerne"",
378 ""url"": ""https://www.realmaeglerne.dk/"",
379 ""potentialAction"": {
380 ""type"": ""SearchAction"",
381 ""target"": ""https://www.realmaeglerne.dk/find-maegler?q={search_term_string}"",
382 ""query-input"": ""required name=search_term_string""
383 }
384 }
385 </script>
386
387 <script type=""application/ld+json"">
388 {
389 ""context"": ""https://schema.org"",
390 """);
391 WriteLiteral(@"@type"": ""Corporation"",
392 ""name"": ""RealMæglerne"",
393 ""alternateName"": ""R&B Mægler A/S"",
394 ""url"": ""https://www.realmaeglerne.dk"",
395 ""logo"": ""https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png"",
396 ""contactPoint"": {
397 ""type"": ""ContactPoint"",
398 ""telephone"": ""+4570237153"",
399 ""contactType"": ""sales"",
400 ""areaServed"": ""DK"",
401 ""availableLanguage"": ""Danish""
402 },
403 ""sameAs"": [
404 ""https://www.facebook.com/realmaeglerne/"",
405 ""https://www.linkedin.com/company/realmæglerne/"",
406 ""https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g"",
407 ""https://www.realmaeglerne.dk/""
408 ]
409 }
410 </script>
411 ");
412 Write(RenderSnippet("StructuredData"));
413 WriteLiteral("\r\n");
414 WriteLiteral("\r\n");
415 WriteLiteral(" <link rel=\"stylesheet\"");
416 BeginWriteAttribute("href", " href=\"", 119251, "\"", 119302, 2);
417 WriteAttributeValue("", 119258, TemplateUrl, 119258, 14, false);
418 WriteAttributeValue("", 119272, "assets/fontawesome/css/all.css", 119272, 30, true);
419 EndWriteAttribute();
420 WriteLiteral(" async />\r\n <link rel=\"stylesheet\"");
421 BeginWriteAttribute("href", " href=\"", 119344, "\"", 119359, 1);
422 WriteAttributeValue("", 119351, mainCSS, 119351, 8, false);
423 EndWriteAttribute();
424 WriteLiteral(" async />\r\n");
425
426 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
427 {
428 var cssErhvervFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/erhverv.min.css"));
429 string erhvervCSS = TemplateUrl + $"assets/dist/css/erhverv.min.css?{cssErhvervFileInfo.LastWriteTime.Ticks}";
430 WriteLiteral(" <link rel=\"stylesheet\"");
431 BeginWriteAttribute("href", " href=\"", 119763, "\"", 119781, 1);
432 WriteAttributeValue("", 119770, erhvervCSS, 119770, 11, false);
433 EndWriteAttribute();
434 WriteLiteral(" async>\r\n");
435 }
436 WriteLiteral("\r\n\r\n <link rel=\"icon\" type=\"image/ico\"");
437 BeginWriteAttribute("href", " href=\"", 119850, "\"", 119914, 2);
438 WriteAttributeValue("", 119857, TemplateUrl, 119857, 14, false);
439 WriteAttributeValue("", 119871, "assets/images/favicons/favicon-real.ico?v=1", 119871, 43, true);
440 EndWriteAttribute();
441 WriteLiteral(">\r\n <link rel=\"icon\" type=\"image/png\"");
442 BeginWriteAttribute("href", " href=\"", 119955, "\"", 120021, 2);
443 WriteAttributeValue("", 119962, TemplateUrl, 119962, 14, false);
444 WriteAttributeValue("", 119976, "assets/images/favicons/favicon-real-16x16.png", 119976, 45, true);
445 EndWriteAttribute();
446 WriteLiteral(" sizes=\"16x16\">\r\n <link rel=\"icon\" type=\"image/png\"");
447 BeginWriteAttribute("href", " href=\"", 120076, "\"", 120142, 2);
448 WriteAttributeValue("", 120083, TemplateUrl, 120083, 14, false);
449 WriteAttributeValue("", 120097, "assets/images/favicons/favicon-real-32x32.png", 120097, 45, true);
450 EndWriteAttribute();
451 WriteLiteral(" sizes=\"32x32\">\r\n <link rel=\"icon\" type=\"image/png\"");
452 BeginWriteAttribute("href", " href=\"", 120197, "\"", 120263, 2);
453 WriteAttributeValue("", 120204, TemplateUrl, 120204, 14, false);
454 WriteAttributeValue("", 120218, "assets/images/favicons/favicon-real-96x96.png", 120218, 45, true);
455 EndWriteAttribute();
456 WriteLiteral(" sizes=\"96x96\">\r\n <meta name=\"google-site-verification\" content=\"hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg\" />\r\n\r\n");
457 if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString()))
458 {
459 WriteLiteral(@" <script>
460 window.dataLayer = window.dataLayer || []; // must be placed above GTM script
461 </script>
462 <!-- Google Tag Manager -->
463 <script>
464 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
465 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
466 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
467 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
468 })(window,document,'script','dataLayer','");
469 Write(settings_Google_Tag_Manager_ID);
470 WriteLiteral("\');</script>\r\n <!-- End Google Tag Manager -->\r\n");
471 }
472 WriteLiteral("\r\n");
473 if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId))
474 {
475 WriteLiteral(" <script type=\"text/javascript\"");
476 BeginWriteAttribute("src", " src=\"", 121245, "\"", 121317, 2);
477 WriteAttributeValue("", 121251, "https://call.call-tracking.dk/getJavascript?custid=", 121251, 51, true);
478 WriteAttributeValue("", 121302, callTrackingId, 121302, 15, false);
479 EndWriteAttribute();
480 WriteLiteral("></script>\r\n");
481 }
482 WriteLiteral("\r\n");
483 if (!String.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString()))
484 {
485 WriteLiteral(@" <!-- Begin Leadhub Pixel Code -->
486 <script>
487 (function(w,d,x,n,u,t,f,s,o){
488 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){
489 (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)
490 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '");
491 Write(settings_Leadhub_Pixel_ID);
492 WriteLiteral("\');\r\n lhi(\'pageview\');\r\n </script>\r\n <!-- End Leadhub Pixel Code -->\r\n");
493 }
494 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 + \"");
495 Write(settings_BoligCountFeed);
496 WriteLiteral("\";\r\n RMAPI.BoligListFeed = ApiPreFix + \"");
497 Write(settings_BoligListFeed);
498 WriteLiteral("\" + \"&refpageid=");
499 Write(Pageview.Page.ID);
500 WriteLiteral("\";\r\n RMAPI.BoligListFeedErhverv = \"");
501 Write(settings_BoligListFeedErhverv);
502 WriteLiteral("\";\r\n RMAPI.BoligListFeedMaegler = ApiPreFix + \"");
503 Write(settings_BoligListFeedMaegler);
504 WriteLiteral("\" + \"&refpageid=");
505 Write(Pageview.Page.ID);
506 WriteLiteral("\";\r\n RMAPI.BoligSearchFeed = ApiPreFix + \"");
507 Write(settings_BoligSearchFeed);
508 WriteLiteral("\";\r\n RMAPI.BoligMapFeed = ApiPreFix + \"");
509 Write(settings_BoligMapFeed);
510 WriteLiteral("\";\r\n RMAPI.Boligagent = \"");
511 Write(settings_Boligagent);
512 WriteLiteral("\";\r\n RMAPI.IsErhverv = ");
513 Write(isErhverv.ToString().ToLower());
514 WriteLiteral(";\r\n RMAPI.ProductGroupFilter = \"");
515 Write(productGroupFilter);
516 WriteLiteral("\";\r\n RMAPI.ButikId = \"");
517 Write(butikId);
518 WriteLiteral("\";\r\n RMAPI.Boligvisning = false;\r\n RMAPI.RefPageId = \"");
519 Write(Pageview.Page.ID);
520 WriteLiteral("\";\r\n RMAPI.Template = \"");
521 Write(template);
522 WriteLiteral("\";\r\n RMAPI.SliderSettings = ");
523 Write(JsonConvert.SerializeObject(Settings.Site));
524 WriteLiteral(";\r\n RMAPI.AdvisorSearchFeed = \"");
525 Write(settings_AdvisorSearchFeed);
526 WriteLiteral("\";\r\n RMAPI.LoadingIcon = \"");
527 Write(loadingIcon);
528 WriteLiteral("\";\r\n RMAPI.MarkerColor = \"");
529 Write(markerColor);
530 WriteLiteral("\";\r\n RMAPI.mapMarkerUrl = \"");
531 Write(mapMarkerUrl);
532 WriteLiteral("\";\r\n RMAPI.settings_ForgotPwPage = \"");
533 Write(settings_ForgotPwPage);
534 WriteLiteral("\";\r\n </script>\r\n\r\n");
535 if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString()))
536 {
537 WriteLiteral(@" <!-- Facebook Pixel Code -->
538 <script>
539 !function (f, b, e, v, n, t, s) {
540 if (f.fbq) return; n = f.fbq = function () {
541 n.callMethod ?
542 n.callMethod.apply(n, arguments) : n.queue.push(arguments)
543 };
544 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';
545 n.queue = []; t = b.createElement(e); t.async = !0;
546 t.src = v; s = b.getElementsByTagName(e)[0];
547 s.parentNode.insertBefore(t, s)
548 }(window, document, 'script',
549 'https://connect.facebook.net/en_US/fbevents.js');
550 fbq('init', '");
551 Write(settings_Facebook_App_ID);
552 WriteLiteral("\');\r\n fbq(\'track\', \'PageView\');\r\n </script>\r\n <noscript>\r\n <img height=\"1\" width=\"1\"");
553 BeginWriteAttribute("src", " src=\"", 124220, "\"", 124305, 3);
554 WriteAttributeValue("", 124226, "https://www.facebook.com/tr?id=", 124226, 31, true);
555 WriteAttributeValue("", 124257, settings_Facebook_App_ID, 124257, 25, false);
556 WriteAttributeValue("", 124282, "&ev=PageView&noscript=1", 124282, 23, true);
557 EndWriteAttribute();
558 WriteLiteral(" />\r\n </noscript>\r\n <!-- End Facebook Pixel Code -->\r\n");
559 }
560 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");
561 BeginWriteAttribute("class", " class=\"", 124581, "\"", 124608, 2);
562 WriteAttributeValue("", 124589, template, 124589, 9, false);
563 WriteAttributeValue("", 124598, bodyClass, 124598, 10, false);
564 EndWriteAttribute();
565 WriteLiteral(" data-spforgotpwtemplate=\"");
566 Write(forgotPwTemplate);
567 WriteLiteral("\" data-spforgotpwsender=\"");
568 Write(forgotPwSender);
569 WriteLiteral("\" data-spforgotpwsubject=\"");
570 Write(forgotPwSubject);
571 WriteLiteral("\" data-spsalesassesmentid=\"");
572 Write(salesAssessmentPageId);
573 WriteLiteral("\">\r\n");
574
575 string logoUrl = TemplateUrl + (!Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg");
576 WriteLiteral("\r\n");
577 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) && GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
578 {
579 WriteLiteral(" <div class=\"top-search\">\r\n <div class=\"header logo\">\r\n <div class=\"logo\">\r\n <a href=\"/erhverv\">\r\n <img");
580 BeginWriteAttribute("src", " src=\"", 125280, "\"", 125294, 1);
581 WriteAttributeValue("", 125286, logoUrl, 125286, 8, false);
582 EndWriteAttribute();
583 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");
584
585
586 var settings_BoligListErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : "";
587 WriteLiteral(" <input type=\"hidden\" name=\"ID\"");
588 BeginWriteAttribute("value", " value=\'", 125861, "\'", 125895, 1);
589 WriteAttributeValue("", 125869, settings_BoligListErhverv, 125869, 26, false);
590 EndWriteAttribute();
591 WriteLiteral(" id=\"searchPageId-top\" disabled=\"disabled\" />\r\n\r\n");
592 if (Context.Current.Request["type"] == "egetforbrug")
593 {
594 WriteLiteral(" <input name=\"type\" type=\"hidden\" value=\"egetforbrug\" />\r\n <input name=\"investeringsejendom\" type=\"hidden\" value=\"0\" />\r\n");
595 }
596 WriteLiteral(@" <div class=""row form-wrapper no-gutters"">
597 <div class=""col-xs-12 col-md-4 col-lg-5 col-searchbar"">
598 <div class=""searchbar float-label-container text-left"">
599 <label class=""float-label"">");
600 Write(Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer"));
601 WriteLiteral("</label>\r\n <input type=\"text\"");
602 BeginWriteAttribute("name", " name=\"", 126689, "\"", 126716, 1);
603 WriteAttributeValue("", 126696, querySearchNameAttr, 126696, 20, false);
604 EndWriteAttribute();
605 WriteLiteral(" id=\"searchfield-top\" class=\"search-input js-float-label js-getdata\" tabindex=\"1\"");
606 BeginWriteAttribute("value", " value=\"", 126798, "\"", 126876, 1);
607 WriteAttributeValue("", 126806, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 126806, 70, false);
608 EndWriteAttribute();
609 WriteLiteral(@" />
610 </div>
611 </div>
612 <div class=""col-xs-12 col-md-5"">
613 <div class=""row no-gutters"">
614 <div class=""col-xs-12 col-md-6 input-col"">
615 <div class=""dropdown w-overlay float-label-container"">
616 <label class=""float-label"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">");
617 Write(Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype"));
618 WriteLiteral(@"</label>
619 <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>
620 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
621 <ul class=""bolig-dropdown list-unstyled"">
622 ");
623
624 RenderBoligTypeErhverv();
625 WriteLiteral(@" </ul>
626 <span class=""border-fat""></span>
627 <div class=""d-none d-md-block"">
628 <button class=""btn btn-primary js-close-dropdown"">");
629 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
630 WriteLiteral(@"</button>
631 </div>
632 <div class=""d-flex row d-md-none"">
633 <div class=""col-6"">
634 <button class=""btn btn-danger js-remove-filter"">");
635 Write(Translate("Smartpage:Search.Annuller", "Annuller"));
636 WriteLiteral("</button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-primary js-close-dropdown\">");
637 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
638 WriteLiteral(@"</button>
639 </div>
640 </div>
641 </div>
642
643 </div>
644 </div>
645 <div class=""col-xs-12 col-md-6 input-col"">
646 <div class=""btn-dropdown p-3 border-top-bottom-right"">
647 <ul class=""two-column list-unstyled"">
648 <li>
649 <label class=""checkbox-container"">
650 ");
651 Write(Translate("Smartpage:Search.Erhverv.Leje", "Leje"));
652 WriteLiteral(@"
653 <input type=""checkbox"" name=""propertytype"" value=""leje"" class=""js-input-check"" />
654 <span class=""checkmark""></span>
655 </label>
656 </li>
657 <li>
658 <label class=""checkbox-container"">
659 ");
660 Write(Translate("Smartpage:Search.Erhverv.Køb", "Køb"));
661 WriteLiteral(@"
662 <input type=""checkbox"" name=""propertytype"" value=""kob"" class=""js-input-check"" />
663 <span class=""checkmark""></span>
664 </label>
665 </li>
666 </ul>
667 </div>
668
669 </div>
670 </div>
671 </div>
672 <div class=""col-xs-12 col-md-3 col-lg-2 d-none d-md-block"">
673 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
674 Write(Translate("Smartpage:Search.Søg", "Søg"));
675 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n");
676 }
677 WriteLiteral("\r\n");
678 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
679 {
680 WriteLiteral(" <div class=\"header shortcuts\">\r\n <div class=\"header-shortcuts float-right\">\r\n");
681 if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
682 {
683 WriteLiteral(" <a");
684 BeginWriteAttribute("href", " href=\'", 131579, "\'", 131586, 0);
685 EndWriteAttribute();
686 BeginWriteAttribute("class", " class=\"", 131587, "\"", 131703, 9);
687 WriteAttributeValue("", 131595, "search-menu", 131595, 11, true);
688 WriteAttributeValue(" ", 131606, "d-none", 131607, 7, true);
689 WriteAttributeValue(" ", 131613, "d-xl-flex", 131614, 10, true);
690 WriteAttributeValue(" ", 131623, "align-items-center", 131624, 19, true);
691 WriteAttributeValue(" ", 131642, "float-left", 131643, 11, true);
692 WriteAttributeValue(" ", 131653, "border-right", 131654, 13, true);
693 WriteAttributeValue(" ", 131666, "js-mainsearch", 131667, 14, true);
694 WriteAttributeValue(" ", 131680, "topsearch", 131681, 10, true);
695 WriteAttributeValue(" ", 131690, searchClass, 131691, 12, false);
696 EndWriteAttribute();
697 WriteLiteral(">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i><span class=\"search-menu-text hidden d-md-block\"> ");
698 Write(Translate("Smartpage:Search.Søg", "Søg"));
699 WriteLiteral("</span>\r\n </a>\r\n");
700 }
701 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");
702 }
703 else
704 {
705 WriteLiteral(" <div class=\"header__container container\">\r\n <div class=\"header__logo\">\r\n <a href=\"/\"");
706 BeginWriteAttribute("title", " title=\"", 132303, "\"", 132311, 0);
707 EndWriteAttribute();
708 WriteLiteral(">\r\n <img");
709 BeginWriteAttribute("src", " src=\"", 132339, "\"", 132355, 1);
710 WriteAttributeValue("", 132345, logoUrl, 132345, 10, false);
711 EndWriteAttribute();
712 BeginWriteAttribute("alt", " alt=\"", 132356, "\"", 132362, 0);
713 EndWriteAttribute();
714 WriteLiteral(" />\r\n </a>\r\n </div>\r\n <div class=\"header__title\">\r\n <span>");
715 Write(Translate("Custom:Header.Title", "RealMæglerne"));
716 WriteLiteral("</span> \r\n </div>\r\n");
717 if (userID > 0)
718 {
719 WriteLiteral(@" <div class=""header__navigation d-none d-md-flex"">
720 <div class=""header__navigation"">
721 <div class=""header__Link"">
722 <ul>
723 <li class=""d-flex align-items-center"">
724 <svg xmlns=""http://www.w3.org/2000/svg"" width=""20"" height=""20"" viewBox=""0 0 20 20"" fill=""none"">
725 <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"" />
726 ");
727 WriteLiteral(" </svg>\r\n <a class=\"ml-2\"");
728 BeginWriteAttribute("href", "\r\n href=\"", 133720, "\"", 133802, 2);
729 WriteAttributeValue("", 133768, "/Default.aspx?ID=", 133768, 17, true);
730 WriteAttributeValue("", 133785, settings_MinSide, 133785, 17, false);
731 EndWriteAttribute();
732 WriteLiteral("\r\n target=\"_blank\"");
733 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 133860, "\"", 134010, 1);
734 WriteAttributeValue("", 133914, Translate("Custom:Accessibility.MyAccountLink", "Gå til Mit RealMæglerne - åbner i nyt vindue"), 133914, 96, false);
735 EndWriteAttribute();
736 WriteLiteral(">\r\n ");
737 Write(Translate("Mit RealMæglerne"));
738 WriteLiteral("\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n");
739
740 }
741 else
742 {
743 WriteLiteral(@" <div class=""header__navigation d-none d-md-flex"">
744 <div class=""header__navigation"">
745 <div class=""header__Link"">
746 <ul>
747 <li class=""d-flex align-items-center"">
748 <svg xmlns=""http://www.w3.org/2000/svg"" width=""20"" height=""20"" viewBox=""0 0 20 20"" fill=""none"">
749 <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"" />
750 ");
751 WriteLiteral(" </svg>\r\n <a class=\"ml-2\"\r\n href=\"javascript:panelLogin()\"");
752 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 135521, "\"", 135644, 1);
753 WriteAttributeValue("", 135575, Translate("Custom:Accessibility.Login", "Login - åbner i sidepanel"), 135575, 69, false);
754 EndWriteAttribute();
755 WriteLiteral(">\r\n ");
756 Write(Translate("Login"));
757 WriteLiteral("\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n");
758 }
759 WriteLiteral(" <div class=\"header__search flex-column flex-md-row js-mainsearch\">\r\n ");
760 Write(Translate("Søg bolig"));
761 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 ");
762 Write(Translate("Menu"));
763 WriteLiteral("\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n");
764 }
765 WriteLiteral("\r\n <div class=\"search-modal\">\r\n\r\n");
766 if (Converter.ToString(Pageview.Area.Item["Type"]) == "real")
767 {
768 WriteLiteral(@" <div class=""main-search-form"">
769 <i class=""fal fa-times float-right fa-2x js-close-search close-search""></i>
770 <div class=""row mb-3 align-items-center"">
771 <div class=""col-xs-12 col-md-3 border-right"">
772 <h3>");
773 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
774 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\">");
775 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg"));
776 WriteLiteral(@"<span class=""loader js-loader""></span></span>
777
778 </div>
779 </div>
780
781 <form id=""main-search"" class=""searchbar-wrapper"" action=""/Default.aspx"" method=""GET"">
782 <input type=""hidden"" name=""ID""");
783 BeginWriteAttribute("value", " value=\'", 137386, "\'", 137407, 1);
784 WriteAttributeValue("", 137394, searchPageId, 137394, 13, false);
785 EndWriteAttribute();
786 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" />
787 <div class=""row form-wrapper no-gutters"">
788
789 <div class=""col-xs-12 col-md-5 col-searchbar"">
790 <div class=""searchbar"">
791 <input type=""text""");
792 BeginWriteAttribute("name", " name=\"", 137691, "\"", 137718, 1);
793 WriteAttributeValue("", 137698, querySearchNameAttr, 137698, 20, false);
794 EndWriteAttribute();
795 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\"");
796 BeginWriteAttribute("value", " value=\"", 137821, "\"", 137899, 1);
797 WriteAttributeValue("", 137829, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 137829, 70, false);
798 EndWriteAttribute();
799 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\"");
800 BeginWriteAttribute("value", " value=\"", 137993, "\"", 138076, 1);
801 WriteAttributeValue("", 138001, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 138001, 75, false);
802 EndWriteAttribute();
803 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\"");
804 BeginWriteAttribute("value", " value=\"", 138166, "\"", 138247, 1);
805 WriteAttributeValue("", 138174, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 138174, 73, false);
806 EndWriteAttribute();
807 WriteLiteral(@" />
808 </div>
809 </div>
810 <div class=""col-xs-12 col-md-5"">
811 <div class=""row no-gutters"">
812 <div class=""col-xs-12 col-md-6 input-col"">
813 <div class=""dropdown"">
814 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
815 ");
816 Write(Translate("Smartpage:Search.Boligtype", "Boligtype"));
817 WriteLiteral(@"
818 </button>
819 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
820 <ul class=""bolig-dropdown list-unstyled"">
821 ");
822
823 RenderBoligtypeCheckboxesDropdown();
824 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">");
825 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
826 WriteLiteral(@"</button>
827 </div>
828
829 </div>
830
831 </div>
832 <div class=""col-xs-12 col-md-6 input-col"">
833 <div class=""dropdown"">
834 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
835 ");
836 Write(Translate("Smartpage:Search.Pris", "Pris"));
837 WriteLiteral(@"
838 </button>
839 <div class=""dropdown-menu box-shadow dropdown-price js-dropdown-price"" aria-labelledby=""Pris"">
840 <input name=""pricemin"" type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input""");
841 BeginWriteAttribute("placeholder", " placeholder=\'", 140498, "\'", 140575, 1);
842 WriteAttributeValue("", 140512, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 140512, 63, false);
843 EndWriteAttribute();
844 BeginWriteAttribute("value", " value=\'", 140576, "\'", 140712, 1);
845 WriteAttributeValue("", 140584, !string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemin"]) ? Context.Current.Request.QueryString["pricemin"] : "", 140584, 128, false);
846 EndWriteAttribute();
847 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">");
848 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"));
849 WriteLiteral("</option>\r\n");
850 for (var i = 0; i <= 10000000; i += 100000)
851 {
852 if (i == 10000000)
853 {
854 WriteLiteral(" <option");
855 BeginWriteAttribute("value", " value=\"", 141349, "\"", 141359, 1);
856 WriteAttributeValue("", 141357, i, 141357, 2, false);
857 EndWriteAttribute();
858 WriteLiteral(" data-value=\'");
859 Write(Converter.ToInt32(i).ToString("N0"));
860 WriteLiteral("+\'>");
861 Write(Convert.ToInt32(i).ToString("N0"));
862 WriteLiteral("+</option>\r\n");
863 }
864 else
865 {
866 WriteLiteral(" <option");
867 BeginWriteAttribute("value", " value=\"", 141689, "\"", 141699, 1);
868 WriteAttributeValue("", 141697, i, 141697, 2, false);
869 EndWriteAttribute();
870 WriteLiteral(" data-value=\'");
871 Write(Converter.ToInt32(i).ToString("N0"));
872 WriteLiteral("\'>");
873 Write(Convert.ToInt32(i).ToString("N0"));
874 WriteLiteral("</option>\r\n");
875 }
876 }
877 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\"");
878 BeginWriteAttribute("placeholder", " placeholder=\'", 142103, "\'", 142180, 1);
879 WriteAttributeValue("", 142117, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 142117, 63, false);
880 EndWriteAttribute();
881 BeginWriteAttribute("value", " value=\'", 142181, "\'", 142317, 1);
882 WriteAttributeValue("", 142189, !string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemax"]) ? Context.Current.Request.QueryString["pricemax"] : "", 142189, 128, false);
883 EndWriteAttribute();
884 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
885 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"));
886 WriteLiteral("</option>\r\n");
887 for (var i = 0; i <= 10000000; i += 100000)
888 {
889 if (i == 10000000)
890 {
891 WriteLiteral(" <option");
892 BeginWriteAttribute("value", " value=\"", 142948, "\"", 142958, 1);
893 WriteAttributeValue("", 142956, i, 142956, 2, false);
894 EndWriteAttribute();
895 WriteLiteral(" data-value=\'");
896 Write(Converter.ToInt32(i).ToString("N0"));
897 WriteLiteral("+\'>");
898 Write(Convert.ToInt32(i).ToString("N0"));
899 WriteLiteral("+</option>\r\n");
900 }
901 else
902 {
903 WriteLiteral(" <option");
904 BeginWriteAttribute("value", " value=\"", 143288, "\"", 143298, 1);
905 WriteAttributeValue("", 143296, i, 143296, 2, false);
906 EndWriteAttribute();
907 WriteLiteral(" data-value=\'");
908 Write(Converter.ToInt32(i).ToString("N0"));
909 WriteLiteral("\'>");
910 Write(Convert.ToInt32(i).ToString("N0"));
911 WriteLiteral("</option>\r\n");
912 }
913 }
914 WriteLiteral(@" </select>
915 </div>
916 </div>
917 </div>
918 </div>
919 </div>
920 <div class=""col-xs-12 col-md-2 d-none d-md-block"">
921 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
922 Write(Translate("Smartpage:Search.Søg", "Søg"));
923 WriteLiteral(@"</button>
924 </div>
925 </div>
926
927 <div class=""row moresearch-btn no-gutters"">
928 <div class=""col-sm-12"">
929 <div class=""row align-items-center no-gutters"">
930 <div class=""col-12 col-md-4"">
931 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch"">
932 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open white"">");
933 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder"));
934 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> ");
935 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt"));
936 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\">");
937 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg"));
938 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>");
939 Write(Translate("Smartpage:Search.Bolig", "Bolig"));
940 WriteLiteral(@"</b></h4>
941 <div class=""row align-items-end mb-30"">
942 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
943 <div class=""filter-container row"">
944 <label class=""d-block col-12"">");
945 Write(Translate("Smartpage:Search.Boligareal", "Boligareal"));
946 WriteLiteral(@"</label>
947 <div class=""col-6 pr-sm-0 pr-2"">
948 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count""");
949 BeginWriteAttribute("placeholder", " placeholder=\'", 146060, "\'", 146133, 1);
950 WriteAttributeValue("", 146074, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 146074, 59, false);
951 EndWriteAttribute();
952 BeginWriteAttribute("value", " value=\'", 146134, "\'", 146280, 1);
953 WriteAttributeValue("", 146142, !string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmin"]) ? Context.Current.Request.QueryString["boligarealmin"] : "", 146142, 138, false);
954 EndWriteAttribute();
955 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
956 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
957 WriteLiteral("</option>\r\n");
958 for (var i = 0; i <= 300; i += 10)
959 {
960 if (i == 300)
961 {
962 WriteLiteral(" <option>");
963 Write(i);
964 WriteLiteral("+</option>\r\n");
965 }
966 else
967 {
968 WriteLiteral(" <option>");
969 Write(i);
970 WriteLiteral("</option>\r\n");
971 }
972 }
973 WriteLiteral(@" </select>
974
975 </div>
976 <div class=""col-6 pl-sm-0 pl-2"">
977 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count""");
978 BeginWriteAttribute("placeholder", " placeholder=\'", 147665, "\'", 147738, 1);
979 WriteAttributeValue("", 147679, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 147679, 59, false);
980 EndWriteAttribute();
981 BeginWriteAttribute("value", " value=\'", 147739, "\'", 147885, 1);
982 WriteAttributeValue("", 147747, !string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmax"]) ? Context.Current.Request.QueryString["boligarealmax"] : "", 147747, 138, false);
983 EndWriteAttribute();
984 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
985 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
986 WriteLiteral("</option>\r\n");
987 for (var i = 0; i <= 300; i += 10)
988 {
989 if (i == 300)
990 {
991 WriteLiteral(" <option>");
992 Write(i);
993 WriteLiteral("+</option>\r\n");
994 }
995 else
996 {
997 WriteLiteral(" <option>");
998 Write(i);
999 WriteLiteral("</option>\r\n");
1000 }
1001 }
1002 WriteLiteral(@" </select>
1003
1004 </div>
1005 </div>
1006 </div>
1007 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
1008 <div class=""filter-container row"">
1009 <label class=""d-block col-12"">");
1010 Write(Translate("Smartpage:Search.Grundareal", "Grundareal"));
1011 WriteLiteral(@"</label>
1012 <div class=""col-6 pr-sm-0 pr-2"">
1013 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count""");
1014 BeginWriteAttribute("placeholder", " placeholder=\'", 149666, "\'", 149739, 1);
1015 WriteAttributeValue("", 149680, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 149680, 59, false);
1016 EndWriteAttribute();
1017 BeginWriteAttribute("value", " value=\'", 149740, "\'", 149887, 1);
1018 WriteAttributeValue("", 149748, !string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmin"]) ? Context.Current.Request.QueryString["grundarealmin"] : "", 149748, 139, false);
1019 EndWriteAttribute();
1020 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1021 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
1022 WriteLiteral("</option>\r\n");
1023 for (var i = 0; i <= 10000; i += 100)
1024 {
1025 if (i == 10000)
1026 {
1027 WriteLiteral(" <option>");
1028 Write(i);
1029 WriteLiteral("+</option>\r\n");
1030 }
1031 else
1032 {
1033 WriteLiteral(" <option>");
1034 Write(i);
1035 WriteLiteral("</option>\r\n");
1036 }
1037 }
1038 WriteLiteral(@" </select>
1039 </div>
1040 <div class=""col-6 pl-sm-0 pl-2"">
1041 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count""");
1042 BeginWriteAttribute("placeholder", " placeholder=\'", 151275, "\'", 151348, 1);
1043 WriteAttributeValue("", 151289, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 151289, 59, false);
1044 EndWriteAttribute();
1045 BeginWriteAttribute("value", " value=\'", 151349, "\'", 151496, 1);
1046 WriteAttributeValue("", 151357, !string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmax"]) ? Context.Current.Request.QueryString["grundarealmax"] : "", 151357, 139, false);
1047 EndWriteAttribute();
1048 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">");
1049 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
1050 WriteLiteral("</option>\r\n");
1051 for (var i = 0; i <= 10000; i += 100)
1052 {
1053 if (i == 10000)
1054 {
1055 WriteLiteral(" <option>");
1056 Write(i);
1057 WriteLiteral("+</option>\r\n");
1058 }
1059 else
1060 {
1061 WriteLiteral(" <option>");
1062 Write(i);
1063 WriteLiteral("</option>\r\n");
1064 }
1065 }
1066 WriteLiteral(@" </select>
1067 </div>
1068 </div>
1069 </div>
1070 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
1071 <div class=""filter-container row"">
1072 <label class=""d-block col-12"">Antal rum</label>
1073 <div class=""col-6 pr-sm-0 pr-2"">
1074 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count"">
1075 <option selected=""selected"" disabled=""disabled"">");
1076 Write(Translate("Smartpage:Search.Placeholder.Min", "Min"));
1077 WriteLiteral("</option>\r\n");
1078
1079 RenderSelectValue("1", "1", "roomsmin");
1080 RenderSelectValue("2", "2", "roomsmin");
1081 RenderSelectValue("3", "3", "roomsmin");
1082 RenderSelectValue("4", "4", "roomsmin");
1083 RenderSelectValue("5+", "5", "roomsmin");
1084 WriteLiteral(@" </select>
1085 </div>
1086 <div class=""col-6 pl-sm-0 pl-2"">
1087 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count"">
1088 <option selected=""selected"" disabled=""disabled"">");
1089 Write(Translate("Smartpage:Search.Placeholder.Max", "Max"));
1090 WriteLiteral("</option>\r\n");
1091
1092 RenderSelectValue("1", "1", "roomsmax");
1093 RenderSelectValue("2", "2", "roomsmax");
1094 RenderSelectValue("3", "3", "roomsmax");
1095 RenderSelectValue("4", "4", "roomsmax");
1096 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax");
1097 WriteLiteral(@" </select>
1098 </div>
1099 </div>
1100 </div>
1101 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
1102 <div class=""row"">
1103 <div class=""col-12 pr-2"">
1104 <div class=""filter-container"">
1105 <label class=""d-block"">Energimærke</label>
1106 <select name=""energylabel"" id=""energylabel"" class=""form-control reverse js-energylabel-select js-count"">
1107 <option selected=""selected"" disabled=""disabled"">");
1108 Write(Translate("Smartpage:Search.Vælg", "Vælg"));
1109 WriteLiteral(@"</option>
1110 <option value=""01"">G</option>
1111 <option value=""02"">F</option>
1112 <option value=""03"">E</option>
1113 <option value=""04"">D</option>
1114 <option value=""05"">C</option>
1115 <option value=""06"">B</option>
1116 <option value=""07"">A</option>
1117 <option value=""08"">A2010</option>
1118 <option value=""09"">A2015</option>
1119 <option value=""10"">A2020+</option>
1120 </select>
1121 </div>
1122 ");
1123 WriteLiteral(@" </div>
1124 </div>
1125 </div>
1126 <div class=""col-12 col-sm-6 col-lg-3 mt-3"">
1127 <h4");
1128 BeginWriteAttribute("class", " class=\"", 157295, "\"", 157303, 0);
1129 EndWriteAttribute();
1130 WriteLiteral("><b>");
1131 Write(Translate("Smartpage:Search.Økonomi", "Økonomi"));
1132 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">");
1133 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned"));
1134 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\"");
1135 BeginWriteAttribute("placeholder", " placeholder=\'", 157865, "\'", 157940, 1);
1136 WriteAttributeValue("", 157879, Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"), 157879, 61, false);
1137 EndWriteAttribute();
1138 BeginWriteAttribute("value", " value=\'", 157941, "\'", 158082, 1);
1139 WriteAttributeValue("", 157949, !string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymin"]) ? Context.Current.Request.QueryString["subsidymin"] : "", 157949, 133, false);
1140 EndWriteAttribute();
1141 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">");
1142 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"));
1143 WriteLiteral("</option>\r\n");
1144 for (var i = 0; i <= 25000; i += 1250)
1145 {
1146 if (i == 25000)
1147 {
1148 WriteLiteral(" <option");
1149 BeginWriteAttribute("value", " value=\"", 158726, "\"", 158755, 1);
1150 WriteAttributeValue("", 158734, Converter.ToInt32(i), 158734, 21, false);
1151 EndWriteAttribute();
1152 WriteLiteral(">");
1153 Write(Converter.ToInt32(i).ToString("N0"));
1154 WriteLiteral("+</option>\r\n");
1155 }
1156 else
1157 {
1158 WriteLiteral(" <option");
1159 BeginWriteAttribute("value", " value=\"", 159052, "\"", 159081, 1);
1160 WriteAttributeValue("", 159060, Converter.ToInt32(i), 159060, 21, false);
1161 EndWriteAttribute();
1162 WriteLiteral(">");
1163 Write(Converter.ToInt32(i).ToString("N0"));
1164 WriteLiteral("</option>\r\n");
1165 }
1166 }
1167 WriteLiteral(@" </select>
1168 </div>
1169 <div class=""col-6 pl-sm-0 pl-2"">
1170 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count""");
1171 BeginWriteAttribute("placeholder", " placeholder=\'", 159593, "\'", 159668, 1);
1172 WriteAttributeValue("", 159607, Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"), 159607, 61, false);
1173 EndWriteAttribute();
1174 BeginWriteAttribute("value", " value=\'", 159669, "\'", 159810, 1);
1175 WriteAttributeValue("", 159677, !string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymax"]) ? Context.Current.Request.QueryString["subsidymax"] : "", 159677, 133, false);
1176 EndWriteAttribute();
1177 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1178 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"));
1179 WriteLiteral("</option>\r\n");
1180 for (var i = 0; i <= 25000; i += 1250)
1181 {
1182 if (i == 25000)
1183 {
1184 WriteLiteral(" <option");
1185 BeginWriteAttribute("value", " value=\"", 160450, "\"", 160479, 1);
1186 WriteAttributeValue("", 160458, Converter.ToInt32(i), 160458, 21, false);
1187 EndWriteAttribute();
1188 WriteLiteral(">");
1189 Write(Convert.ToInt32(i).ToString("N0"));
1190 WriteLiteral("+</option>\r\n");
1191 }
1192 else
1193 {
1194 WriteLiteral(" <option");
1195 BeginWriteAttribute("value", " value=\"", 160774, "\"", 160803, 1);
1196 WriteAttributeValue("", 160782, Converter.ToInt32(i), 160782, 21, false);
1197 EndWriteAttribute();
1198 WriteLiteral(">");
1199 Write(Convert.ToInt32(i).ToString("N0"));
1200 WriteLiteral("</option>\r\n");
1201 }
1202 }
1203 WriteLiteral(@" </select>
1204 </div>
1205 </div>
1206 </div>
1207 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0"">
1208 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1209 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre"));
1210 WriteLiteral(@"</button>
1211 </div>
1212 </div>
1213 </div>
1214 </div>
1215 </div>
1216 <div class=""row d-block d-md-none form-wrapper no-gutters"">
1217 <div class=""col-xs-12 col-md-2"">
1218 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1219 Write(Translate("Smartpage:Search.Søg", "Søg"));
1220 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n");
1221 }
1222 else
1223 {
1224 WriteLiteral(@" <div class=""main-search-form center"">
1225 <i class=""fal fa-times float-right fa-2x js-close-search""></i>
1226 <div class=""row mb-3 align-items-center"">
1227 <div class=""col-xs-12 col-md-5 border-right"">
1228 <h3>");
1229 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
1230 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>");
1231 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg"));
1232 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\"");
1233 BeginWriteAttribute("value", " value=\'", 162917, "\'", 162938, 1);
1234 WriteAttributeValue("", 162925, searchPageId, 162925, 13, false);
1235 EndWriteAttribute();
1236 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" />
1237 <div class=""row form-wrapper no-gutters"">
1238
1239 <div class=""col-12 mb-10"">
1240 <div class=""searchbar"">
1241 <input type=""text""");
1242 BeginWriteAttribute("name", " name=\"", 163202, "\"", 163229, 1);
1243 WriteAttributeValue("", 163209, querySearchNameAttr, 163209, 20, false);
1244 EndWriteAttribute();
1245 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\"");
1246 BeginWriteAttribute("value", " value=\'", 163332, "\'", 163352, 1);
1247 WriteAttributeValue("", 163340, querySearch, 163340, 12, false);
1248 EndWriteAttribute();
1249 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\"");
1250 BeginWriteAttribute("value", " value=\'", 163446, "\'", 163471, 1);
1251 WriteAttributeValue("", 163454, queryZipCodeFrom, 163454, 17, false);
1252 EndWriteAttribute();
1253 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\"");
1254 BeginWriteAttribute("value", " value=\'", 163561, "\'", 163584, 1);
1255 WriteAttributeValue("", 163569, queryZipCodeTo, 163569, 15, false);
1256 EndWriteAttribute();
1257 WriteLiteral(@" />
1258 </div>
1259 </div>
1260 <div class=""col-xs-12 col-md-8"">
1261 <div class=""row no-gutters"">
1262 <div class=""col-xs-12 col-md-6 input-col"">
1263 <div class=""dropdown"">
1264 <button class=""btn btn-dropdown dropdown-toggle reverse js-count"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
1265 ");
1266 Write(Translate("Smartpage:Search.Boligtype", "Boligtype"));
1267 WriteLiteral(@"
1268 </button>
1269 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
1270 <ul class=""bolig-dropdown list-unstyled"">
1271 ");
1272
1273 RenderBoligtypeCheckboxesDropdown();
1274 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">");
1275 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
1276 WriteLiteral(@"</button>
1277 </div>
1278
1279 </div>
1280
1281 </div>
1282 <div class=""col-xs-12 col-md-6 input-col"">
1283 <div class=""dropdown"">
1284 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
1285 ");
1286 Write(Translate("Smartpage:Search.Pris", "Pris"));
1287 WriteLiteral(@"
1288 </button>
1289 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris"">
1290 <input type=""text"" name=""pricemin"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input""");
1291 BeginWriteAttribute("placeholder", " placeholder=\'", 165826, "\'", 165903, 1);
1292 WriteAttributeValue("", 165840, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 165840, 63, false);
1293 EndWriteAttribute();
1294 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1295 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"));
1296 WriteLiteral("</option>\r\n");
1297 for (var i = 0; i <= 10000000; i += 100000)
1298 {
1299 if (i == 10000000)
1300 {
1301 WriteLiteral(" <option");
1302 BeginWriteAttribute("value", " value=\"", 166540, "\"", 166550, 1);
1303 WriteAttributeValue("", 166548, i, 166548, 2, false);
1304 EndWriteAttribute();
1305 WriteLiteral(" data-value=\'");
1306 Write(Converter.ToInt32(i).ToString("N0"));
1307 WriteLiteral("+\'>");
1308 Write(Converter.ToInt32(i).ToString("N0"));
1309 WriteLiteral("+</option>\r\n");
1310 }
1311 else
1312 {
1313 WriteLiteral(" <option");
1314 BeginWriteAttribute("value", " value=\"", 166882, "\"", 166892, 1);
1315 WriteAttributeValue("", 166890, i, 166890, 2, false);
1316 EndWriteAttribute();
1317 WriteLiteral(" data-value=\'");
1318 Write(Converter.ToInt32(i).ToString("N0"));
1319 WriteLiteral("\'>");
1320 Write(Converter.ToInt32(i).ToString("N0"));
1321 WriteLiteral("</option>\r\n");
1322 }
1323 }
1324 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\"");
1325 BeginWriteAttribute("placeholder", " placeholder=\'", 167298, "\'", 167375, 1);
1326 WriteAttributeValue("", 167312, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 167312, 63, false);
1327 EndWriteAttribute();
1328 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1329 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"));
1330 WriteLiteral("</option>\r\n");
1331 for (var i = 0; i <= 10000000; i += 100000)
1332 {
1333 if (i == 10000000)
1334 {
1335 WriteLiteral(" <option");
1336 BeginWriteAttribute("value", " value=\"", 168006, "\"", 168016, 1);
1337 WriteAttributeValue("", 168014, i, 168014, 2, false);
1338 EndWriteAttribute();
1339 WriteLiteral(" data-value=\'");
1340 Write(Converter.ToInt32(i).ToString("N0"));
1341 WriteLiteral("+\'>");
1342 Write(Converter.ToInt32(i).ToString("N0"));
1343 WriteLiteral("+</option>\r\n");
1344 }
1345 else
1346 {
1347 WriteLiteral(" <option");
1348 BeginWriteAttribute("value", " value=\"", 168348, "\"", 168358, 1);
1349 WriteAttributeValue("", 168356, i, 168356, 2, false);
1350 EndWriteAttribute();
1351 WriteLiteral(" data-value=\'");
1352 Write(Converter.ToInt32(i).ToString("N0"));
1353 WriteLiteral("\'>");
1354 Write(Converter.ToInt32(i).ToString("N0"));
1355 WriteLiteral("</option>\r\n");
1356 }
1357 }
1358 WriteLiteral(@" </select>
1359 </div>
1360 </div>
1361 </div>
1362 </div>
1363 </div>
1364 <div class=""col-xs-12 col-md-4 d-none d-md-block"">
1365 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1366 Write(Translate("Smartpage:Search.Søg", "Søg"));
1367 WriteLiteral(@"</button>
1368 </div>
1369 </div>
1370
1371 <div class=""row moresearch-btn no-gutters"">
1372 <div class=""col-sm-12"">
1373 <div class=""row align-items-center no-gutters"">
1374 <div class=""col-12 col-md-5"">
1375 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch-master"">
1376 <span class=""moreSearch-text""><i class=""fas fa-plus open-close white""></i> <span class=""not-open white"">");
1377 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder"));
1378 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> ");
1379 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt"));
1380 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\">");
1381 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg"));
1382 WriteLiteral(@"</a>
1383 </div>
1384 <div class=""col-6 col-md-4 mb-xs-4"">
1385 <div class=""parent-purchases"">
1386 <label class=""checkbox-container white"">
1387 ");
1388 Write(Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet"));
1389 WriteLiteral(@"
1390 <input type=""checkbox"" name=""foraeldrekoebegnet"" value=""true"" class=""js-input-check"">
1391 <span class=""checkmark grey""></span>
1392 </label>
1393 </div>
1394 </div>
1395 </div>
1396
1397 <div class=""collapse"" id=""moreSearch-master"">
1398
1399 <h4 class=""mt-20""><b>");
1400 Write(Translate("Smartpage:Search.Bolig", "Bolig"));
1401 WriteLiteral(@"</b></h4>
1402 <div class=""row align-items-end mb-30"">
1403 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1404 <div class=""filter-container row"">
1405 <label class=""d-block col-12"">");
1406 Write(Translate("Smartpage:Search.Boligareal", "Boligareal"));
1407 WriteLiteral(@"</label>
1408 <div class=""col-6 pr-sm-0 pr-2"">
1409 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count""");
1410 BeginWriteAttribute("placeholder", " placeholder=\'", 171815, "\'", 171888, 1);
1411 WriteAttributeValue("", 171829, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 171829, 59, false);
1412 EndWriteAttribute();
1413 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1414 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
1415 WriteLiteral("</option>\r\n");
1416 for (var i = 0; i <= 300; i += 10)
1417 {
1418 if (i == 300)
1419 {
1420 WriteLiteral(" <option>");
1421 Write(i);
1422 WriteLiteral("+</option>\r\n");
1423 }
1424 else
1425 {
1426 WriteLiteral(" <option>");
1427 Write(i);
1428 WriteLiteral("</option>\r\n");
1429 }
1430 }
1431 WriteLiteral(@" </select>
1432 </div>
1433 <div class=""col-6 pl-sm-0 pl-2"">
1434 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count""");
1435 BeginWriteAttribute("placeholder", " placeholder=\'", 173271, "\'", 173344, 1);
1436 WriteAttributeValue("", 173285, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 173285, 59, false);
1437 EndWriteAttribute();
1438 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1439 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
1440 WriteLiteral("</option>\r\n");
1441 for (var i = 0; i <= 300; i += 10)
1442 {
1443 if (i == 300)
1444 {
1445 WriteLiteral(" <option>");
1446 Write(i);
1447 WriteLiteral("+</option>\r\n");
1448 }
1449 else
1450 {
1451 WriteLiteral(" <option>");
1452 Write(i);
1453 WriteLiteral("</option>\r\n");
1454 }
1455 }
1456 WriteLiteral(@" </select>
1457 </div>
1458 </div>
1459 </div>
1460 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1461 <div class=""filter-container row"">
1462 <label class=""d-block col-12"">");
1463 Write(Translate("Smartpage:Search.Grundareal", "Grundareal"));
1464 WriteLiteral(@"</label>
1465 <div class=""col-6 pr-sm-0 pr-2"">
1466 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count""");
1467 BeginWriteAttribute("placeholder", " placeholder=\'", 175123, "\'", 175196, 1);
1468 WriteAttributeValue("", 175137, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 175137, 59, false);
1469 EndWriteAttribute();
1470 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1471 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
1472 WriteLiteral("</option>\r\n");
1473 for (var i = 0; i <= 10000; i += 100)
1474 {
1475 if (i == 10000)
1476 {
1477 WriteLiteral(" <option");
1478 BeginWriteAttribute("value", " value=\"", 175836, "\"", 175865, 1);
1479 WriteAttributeValue("", 175844, Converter.ToInt32(i), 175844, 21, false);
1480 EndWriteAttribute();
1481 WriteLiteral(">");
1482 Write(Converter.ToInt32(i).ToString("N0"));
1483 WriteLiteral("+</option>\r\n");
1484 }
1485 else
1486 {
1487 WriteLiteral(" <option");
1488 BeginWriteAttribute("value", " value=\"", 176162, "\"", 176191, 1);
1489 WriteAttributeValue("", 176170, Converter.ToInt32(i), 176170, 21, false);
1490 EndWriteAttribute();
1491 WriteLiteral(">");
1492 Write(Converter.ToInt32(i).ToString("N0"));
1493 WriteLiteral("</option>\r\n");
1494 }
1495 }
1496 WriteLiteral(@" </select>
1497 </div>
1498 <div class=""col-6 pl-sm-0 pl-2"">
1499 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count""");
1500 BeginWriteAttribute("placeholder", " placeholder=\'", 176712, "\'", 176785, 1);
1501 WriteAttributeValue("", 176726, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 176726, 59, false);
1502 EndWriteAttribute();
1503 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1504 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
1505 WriteLiteral("</option>\r\n");
1506 for (var i = 0; i <= 10000; i += 100)
1507 {
1508 if (i == 10000)
1509 {
1510 WriteLiteral(" <option");
1511 BeginWriteAttribute("value", " value=\"", 177416, "\"", 177445, 1);
1512 WriteAttributeValue("", 177424, Converter.ToInt32(i), 177424, 21, false);
1513 EndWriteAttribute();
1514 WriteLiteral(">");
1515 Write(Converter.ToInt32(i).ToString("N0"));
1516 WriteLiteral("+</option>\r\n");
1517 }
1518 else
1519 {
1520 WriteLiteral(" <option");
1521 BeginWriteAttribute("value", " value=\"", 177742, "\"", 177771, 1);
1522 WriteAttributeValue("", 177750, Converter.ToInt32(i), 177750, 21, false);
1523 EndWriteAttribute();
1524 WriteLiteral(">");
1525 Write(Converter.ToInt32(i).ToString("N0"));
1526 WriteLiteral("</option>\r\n");
1527 }
1528 }
1529 WriteLiteral(@" </select>
1530 </div>
1531 </div>
1532 </div>
1533 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1534 <div class=""filter-container row"">
1535 <label class=""d-block col-12"">Antal rum</label>
1536
1537 <div class=""col-6 pr-sm-0 pr-2"">
1538 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count"">
1539 <option selected=""selected"" disabled=""disabled"">");
1540 Write(Translate("Smartpage:Search.Placeholder.Min", "Min"));
1541 WriteLiteral(@"</option>
1542 <option value=""1"">1</option>
1543 <option value=""2"">2</option>
1544 <option value=""3"">3</option>
1545 <option value=""4"">4</option>
1546 <option value=""5"">5+</option>
1547 </select>
1548 </div>
1549 <div class=""col-6 pl-sm-0 pl-2"">
1550 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count"">
1551 <option selected=""selected"" disabled=""disabled"">");
1552 Write(Translate("Smartpage:Search.Placeholder.Max", "Max"));
1553 WriteLiteral(@"</option>
1554 <option value=""1"">1</option>
1555 <option value=""2"">2</option>
1556 <option value=""3"">3</option>
1557 <option value=""4"">4</option>
1558 <option value=""5"">5+</option>
1559 </select>
1560 </div>
1561 </div>
1562 </div>
1563 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1564 <div class=""row"">
1565 <div class=""col-12 pr-2"">
1566 <div class=""filter-container"">
1567 <label class=""d-block"">Energimærke</label>
1568 ");
1569 WriteLiteral(" <select name=\"energylabel\" id=\"energylabel\" class=\"form-control reverse js-energylabel-select js-count\">\r\n <option disabled selected=\"selected\">");
1570 Write(Translate("Smartpage:Search.Vælg", "Vælg"));
1571 WriteLiteral(@"</option>
1572 <option value=""01"">G</option>
1573 <option value=""02"">F</option>
1574 <option value=""03"">E</option>
1575 <option value=""04"">D</option>
1576 <option value=""05"">C</option>
1577 <option value=""06"">B</option>
1578 <option value=""07"">A</option>
1579 <option value=""08"">A2010</option>
1580 <option value=""09"">A2015</option>
1581 <option value=""10"">A2020+</option>
1582 </select>
1583 </div>
1584 ");
1585 WriteLiteral(@" </div>
1586 </div>
1587 </div>
1588 <div class=""col-12 col-sm-6 col-lg-6 mt-3"">
1589 <h4");
1590 BeginWriteAttribute("class", " class=\"", 182277, "\"", 182285, 0);
1591 EndWriteAttribute();
1592 WriteLiteral("><b>");
1593 Write(Translate("Smartpage:Search.Økonomi", "Økonomi"));
1594 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">");
1595 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned"));
1596 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\"");
1597 BeginWriteAttribute("placeholder", " placeholder=\'", 182847, "\'", 182914, 1);
1598 WriteAttributeValue("", 182861, Translate("Smartpage:Search.Placeholder.Min", "Min"), 182861, 53, false);
1599 EndWriteAttribute();
1600 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">");
1601 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"));
1602 WriteLiteral("</option>\r\n");
1603 for (var i = 0; i <= 25000; i += 1250)
1604 {
1605 if (i == 25000)
1606 {
1607 WriteLiteral(" <option");
1608 BeginWriteAttribute("value", " value=\"", 183558, "\"", 183587, 1);
1609 WriteAttributeValue("", 183566, Converter.ToInt32(i), 183566, 21, false);
1610 EndWriteAttribute();
1611 WriteLiteral(">");
1612 Write(Converter.ToInt32(i).ToString("N0"));
1613 WriteLiteral("+</option>\r\n");
1614 }
1615 else
1616 {
1617 WriteLiteral(" <option");
1618 BeginWriteAttribute("value", " value=\"", 183884, "\"", 183913, 1);
1619 WriteAttributeValue("", 183892, Converter.ToInt32(i), 183892, 21, false);
1620 EndWriteAttribute();
1621 WriteLiteral(">");
1622 Write(Converter.ToInt32(i).ToString("N0"));
1623 WriteLiteral("</option>\r\n");
1624 }
1625 }
1626 WriteLiteral(@" </select>
1627 </div>
1628 <div class=""col-6 pl-sm-0 pl-2"">
1629 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count""");
1630 BeginWriteAttribute("placeholder", " placeholder=\'", 184425, "\'", 184492, 1);
1631 WriteAttributeValue("", 184439, Translate("Smartpage:Search.Placeholder.Max", "Max"), 184439, 53, false);
1632 EndWriteAttribute();
1633 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1634 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"));
1635 WriteLiteral("</option>\r\n");
1636 for (var i = 0; i <= 25000; i += 1250)
1637 {
1638 if (i == 25000)
1639 {
1640 WriteLiteral(" <option");
1641 BeginWriteAttribute("value", " value=\"", 185132, "\"", 185161, 1);
1642 WriteAttributeValue("", 185140, Converter.ToInt32(i), 185140, 21, false);
1643 EndWriteAttribute();
1644 WriteLiteral(">");
1645 Write(Converter.ToInt32(i).ToString("N0"));
1646 WriteLiteral("+</option>\r\n");
1647 }
1648 else
1649 {
1650 WriteLiteral(" <option");
1651 BeginWriteAttribute("value", " value=\"", 185458, "\"", 185487, 1);
1652 WriteAttributeValue("", 185466, Converter.ToInt32(i), 185466, 21, false);
1653 EndWriteAttribute();
1654 WriteLiteral(">");
1655 Write(Converter.ToInt32(i).ToString("N0"));
1656 WriteLiteral("</option>\r\n");
1657 }
1658 }
1659 WriteLiteral(@" </select>
1660 </div>
1661 </div>
1662 </div>
1663 <div class=""col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0"">
1664 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1665 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre"));
1666 WriteLiteral(@"</button>
1667 </div>
1668 </div>
1669 </div>
1670 </div>
1671 </div>
1672 <div class=""row d-block d-md-none form-wrapper no-gutters"">
1673 <div class=""col-xs-12 col-md-2"">
1674 <button type=""submit"" class=""btn btn-block btn-search dark-red""><i class=""fa fa-search""></i> ");
1675 Write(Translate("Smartpage:Search.Søg", "Søg"));
1676 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n");
1677 }
1678 WriteLiteral(" </div>\r\n\r\n");
1679
1680 RenderSlideMenu(false, Convert.ToString(settings_Maeglersogning));
1681 WriteLiteral("\r\n");
1682 if (isBrokerPage)
1683 {
1684 WriteLiteral(" <section class=\"maegler-navbar\">\r\n ");
1685 Write(RenderNavigation(new
1686 {
1687 id = "navbar-main",
1688 cssclass = "dwnavigation",
1689 template = "ul_li.xslt",
1690 StartLevel = 1,
1691 EndLevel = 1
1692 }));
1693 WriteLiteral("\r\n </section>\r\n");
1694 }
1695 WriteLiteral("\r\n <div class=\"visual-editor\">\r\n");
1696 WriteLiteral("\r\n\r\n");
1697 WriteLiteral("\r\n");
1698 WriteLiteral("\r\n");
1699
1700 string listPageId = Converter.ToString(GetPageIdByNavigationTag("DynamicListFeed"));
1701 string parentPageId = Dynamicweb.Services.Pages.GetPage(Model.ID).Parent.ID.ToString();
1702 string topLayout = Model.Item.GetList("TopLayout") != null ? Model.Item.GetList("TopLayout").SelectedValue : "default";
1703 topLayout = topLayout == "default" && GetParentSettingsItem("ArticleTopLayout") != null ? GetParentSettingsItem("ArticleTopLayout").ToString().ToLower() : topLayout;
1704 string textLayout = Model.Item.GetList("TextLayout") != null ? Model.Item.GetList("TextLayout").SelectedValue : "default";
1705 textLayout = textLayout == "default" && GetParentSettingsItem("ArticleTextLayout") != null ? GetParentSettingsItem("ArticleTextLayout").ToString().ToLower() : textLayout;
1706 string imageLayout = Model.Item.GetList("ImageLayout") != null ? Model.Item.GetList("ImageLayout").SelectedValue : "default";
1707 imageLayout = imageLayout == "default" && GetParentSettingsItem("ArticleImageLayout") != null ? GetParentSettingsItem("ArticleImageLayout").ToString().ToLower() : imageLayout;
1708
1709 //string imageColumns = imageLayout == "straight" && textLayout != "full" ? "8" : "12";
1710 //string contentColumns = textLayout != "full" ? "8" : "12";
1711 string imageColumns = "12";
1712 string contentColumns = "12";
1713
1714 int externalParagraphId = Model.Item.GetItem("CTAParagraphLink") != null ? Model.Item.GetItem("CTAParagraphLink").ParagraphID : 0;
1715
1716 ArticleHeaderLayout headerLayout;
1717
1718 switch (topLayout)
1719 {
1720 case "default":
1721 headerLayout = ArticleHeaderLayout.Clean;
1722 break;
1723 case "split":
1724 headerLayout = ArticleHeaderLayout.Split;
1725 break;
1726 case "banner":
1727 headerLayout = ArticleHeaderLayout.Banner;
1728 break;
1729 case "overlay":
1730 headerLayout = ArticleHeaderLayout.Overlay;
1731 break;
1732 default:
1733 headerLayout = ArticleHeaderLayout.Clean;
1734 break;
1735 }
1736
1737
1738 Block articleContainer = new Block
1739 {
1740 Id = "ArticleContainer",
1741 SortId = 10,
1742 Design = new Design
1743 {
1744 RenderType = RenderType.Row
1745 },
1746 BlocksList = new List<Block> {
1747 new Block {
1748 Id = "ArticleBody",
1749 SortId = 30,
1750 Design = new Design {
1751 RenderType = RenderType.Column,
1752 Size = "12",
1753 HidePadding = true,
1754 CssClass = "margin-top-large"
1755 }
1756 }
1757 }
1758 };
1759 articlePage.Add(articleContainer);
1760
1761 ButtonLayout topBannerButtonLayout = ButtonLayout.Primary;
1762
1763 switch (Model.Item.GetString("ButtonDesign"))
1764 {
1765 case "primary":
1766 topBannerButtonLayout = ButtonLayout.Primary;
1767 break;
1768 case "secondary":
1769 topBannerButtonLayout = ButtonLayout.Secondary;
1770 break;
1771 case "teritary":
1772 topBannerButtonLayout = ButtonLayout.Tertiary;
1773 break;
1774 case "link":
1775 topBannerButtonLayout = ButtonLayout.Link;
1776 break;
1777 }
1778
1779 ArticleHeader topBanner = new ArticleHeader
1780 {
1781 Layout = headerLayout,
1782 Image = new Image { Path = Model.Item.GetFile("Image"), ImageDefault = new ImageSettings { Width = 1920, Height = 640 } },
1783 Heading = Model.Item.GetString("Title"),
1784 Subheading = Model.Item.GetString("Summary"),
1785 TextColor = "#fff",
1786 Author = Model.Item.GetString("Author"),
1787 Date = Model.Item.GetString("Date"),
1788 Category = GetArticleCategory(Model.ID),
1789 CategoryColor = GetArticleCategoryColor(Model.ID),
1790 Link = Model.Item.GetString("Link"),
1791 LinkText = Model.Item.GetString("LinkText"),
1792 ButtonLayout = topBannerButtonLayout,
1793 RatingScore = Model.Item.GetString("Rating") != null ? Converter.ToInt32(Model.Item.GetList("Rating").SelectedValue) : 0,
1794 RatingOutOf = Model.Item.GetString("Rating") != null ? Model.Item.GetList("Rating").Options.Count : 0,
1795 ExternalParagraphId = externalParagraphId
1796 };
1797
1798 Block articleTop = new Block
1799 {
1800 Id = "ArticleHead",
1801 SortId = 20,
1802 Component = topBanner,
1803 Design = new Design
1804 {
1805 RenderType = RenderType.Column,
1806 Size = "12",
1807 HidePadding = true,
1808 CssClass = "article-head"
1809 }
1810 };
1811 //articlePage.Add("ArticleContainer", articleTop);
1812
1813
1814 Block articleBodyRow = new Block
1815 {
1816 Id = "ArticleBodyRow",
1817 SortId = 10,
1818 SkipRenderBlocksList = true
1819 };
1820 articlePage.Add("ArticleBody", articleBodyRow);
1821
1822
1823 if (Model.Item.GetString("Paragraphs") != null)
1824 {
1825 int count = 0;
1826 foreach (var paragraph in Model.Item.GetItems("Paragraphs"))
1827 {
1828 if (!paragraph.GetBoolean("RenderAsQuote"))
1829 {
1830 string enableDropCap = Model.Item.GetString("EnableDropCap") != null ? Model.Item.GetList("EnableDropCap").SelectedValue.ToLower() : "default";
1831 enableDropCap = enableDropCap == "default" && GetParentSettingsItem("EnableDropCap") != null ? GetParentSettingsItem("EnableDropCap").ToString().ToLower() : enableDropCap;
1832 string text = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : "";
1833
1834 if (!String.IsNullOrEmpty(text) && enableDropCap == "true" && count == 0 && paragraph.GetString("Text").Substring(0, 3) == "<p>")
1835 {
1836 string firstLetter = paragraph.GetString("Text").Substring(3, 1);
1837 text = paragraph.GetString("Text").Remove(3, 1);
1838 text = text.Insert(3, "<span class=\"article__drop-cap\">" + firstLetter + "</span>");
1839 }
1840
1841 if (!String.IsNullOrEmpty(paragraph.GetString("Heading")))
1842 {
1843 Block articleParagraphHeader = new Block
1844 {
1845 Id = "ArticleParagraph" + count + "Heading",
1846 SortId = (count * 10) ,
1847 Component = new ArticleSubHeader { Title = paragraph.GetString("Heading") },
1848 Design = new Design
1849 {
1850 RenderType = RenderType.Column,
1851 Size = contentColumns,
1852 CssClass = "u-color-light--bg u-padding--lg"
1853 }
1854 };
1855 articlePage.Add("ArticleBodyRow", articleParagraphHeader);
1856 }
1857
1858 if (paragraph.GetFile("Image") != null)
1859 {
1860 string imageTitle = !string.IsNullOrEmpty(paragraph.GetString("Heading")) ? paragraph.GetString("Heading") : "";
1861
1862 Block articleParagraphImage = new Block
1863 {
1864 Id = "ArticleParagraph" + count + "Image",
1865 SortId = (count * 10) + 2,
1866 Design = new Design
1867 {
1868 RenderType = RenderType.Column,
1869 Size = imageColumns,
1870 CssClass = "u-color-light--bg u-padding--lg"
1871 }
1872 };
1873
1874 if (imageLayout == "banner")
1875 {
1876 ArticleBanner banner = new ArticleBanner
1877 {
1878 Image = new Image { Path = paragraph.GetFile("Image"), ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, Caption = paragraph.GetString("ImageCaption") },
1879 Heading = imageTitle,
1880 UseFilters = false
1881 };
1882 articleParagraphImage.Component = banner;
1883 }
1884 else
1885 {
1886 ArticleImage image = new ArticleImage
1887 {
1888 Image = new Image
1889 {
1890 Path = paragraph.GetFile("Image"),
1891 Title = imageTitle,
1892 ImageDefault = new ImageSettings { Height = 650, Width = 1300 },
1893 Caption = paragraph.GetString("ImageCaption"),
1894 CssClass = "u-full-width"
1895 }
1896 };
1897 articleParagraphImage.Component = image;
1898 }
1899
1900 articlePage.Add("ArticleBodyRow", articleParagraphImage);
1901 }
1902
1903 if (!String.IsNullOrEmpty(paragraph.GetString("VideoURL")))
1904 {
1905 Block articleParagraphVideo = new Block
1906 {
1907 Id = "ArticleParagraph" + count + "Video",
1908 SortId = (count * 10) + 3,
1909 Component = new ArticleVideo { Url = paragraph.GetString("VideoURL"), AutoPlay = "false" },
1910 Design = new Design
1911 {
1912 RenderType = RenderType.Column,
1913 Size = imageColumns,
1914 CssClass = "u-color-light--bg u-padding--lg"
1915 }
1916 };
1917 articlePage.Add("ArticleBodyRow", articleParagraphVideo);
1918 }
1919
1920 if (!String.IsNullOrEmpty(text))
1921 {
1922 Block articleParagraphText = new Block
1923 {
1924 Id = "ArticleParagraph" + count + "Text",
1925 SortId = (count * 10) + 3,
1926 Component = new ArticleText { Text = text },
1927 Design = new Design
1928 {
1929 RenderType = RenderType.Column,
1930 Size = contentColumns,
1931 CssClass = "u-color-light--bg u-padding--lg"
1932 }
1933 };
1934
1935 articlePage.Add("ArticleBodyRow", articleParagraphText);
1936 }
1937 }
1938 else
1939 {
1940 if (!String.IsNullOrEmpty(paragraph.GetString("Text")))
1941 {
1942 string quoteText = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : "";
1943 string quoteAuthor = paragraph.GetString("Heading") != null ? paragraph.GetString("Heading") : "";
1944
1945 Block articleParagraphQuote = new Block
1946 {
1947 Id = "ArticleParagraph" + count + "Quote",
1948 SortId = (count * 10) + 3,
1949 Component = new ArticleQuote { Image = new Image { Path = paragraph.GetFile("Image") }, Text = quoteText, Author = quoteAuthor },
1950 Design = new Design
1951 {
1952 RenderType = RenderType.Column,
1953 Size = contentColumns,
1954 CssClass = "u-color-light--bg u-padding--lg"
1955 }
1956 };
1957 articlePage.Add("ArticleBodyRow", articleParagraphQuote);
1958 }
1959 }
1960
1961 count++;
1962 }
1963 }
1964
1965 articleBodyRow.Component = new ArticleBodyRow { SubBlocks = articleBodyRow.BlocksList, TopLayout = topLayout, TextLayout = textLayout };
1966
1967
1968 //Related
1969 string showRelatedArtices = Model.Item.GetString("ShowRelatedArticles") != null ? Model.Item.GetList("ShowRelatedArticles").SelectedValue.ToLower() : "default";
1970 showRelatedArtices = showRelatedArtices == "default" && GetParentSettingsItem("ShowRelatedArticles") != null ? GetParentSettingsItem("ShowRelatedArticles").ToString().ToLower() : showRelatedArtices;
1971
1972 if (showRelatedArtices == "true")
1973 {
1974 Block articleRelated = new Block
1975 {
1976 Id = "ArticleRelated",
1977 SortId = 30,
1978 Component = new ArticleRelated { Title = Translate("Related articles"), FeedPageId = listPageId, Query = "sourceType=Page&sourcePage=" + parentPageId, PageSize = 4, CurrentPageId = Model.ID.ToString() },
1979 Design = new Design
1980 {
1981 RenderType = RenderType.Column,
1982 Size = "12"
1983 }
1984 };
1985 articlePage.Add("ArticleContainer", articleRelated);
1986 }
1987 WriteLiteral("\r\n\r\n");
1988 WriteLiteral("<section class=\"center-container content-container dw-mod\">\r\n ");
1989 Write(RenderBlockList(articlePage.BlocksRoot.BlocksList));
1990 WriteLiteral("\r\n</section>\r\n </div>\r\n\r\n");
1991 if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true)
1992 {
1993 string bName = MyBroker.Broker.Name;
1994 string bClass = "na";
1995 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png";
1996
1997 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName))
1998 {
1999 bName = MyBroker.Broker.CompanyName;
2000 }
2001 try
2002 {
2003 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl");
2004 if (!string.IsNullOrEmpty(imgUrl))
2005 {
2006 bImage = imgUrl;
2007 bClass = "";
2008 }
2009 }
2010 catch
2011 {
2012 // Ignore
2013 }
2014
2015 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId");
2016 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
2017
2018 WriteLiteral(" <section class=\"din-maegler\">\r\n <div");
2019 BeginWriteAttribute("class", " class=\"", 204281, "\"", 204308, 2);
2020 WriteAttributeValue("", 204289, "img-wrapper", 204289, 11, true);
2021 WriteAttributeValue(" ", 204300, bClass, 204301, 7, false);
2022 EndWriteAttribute();
2023 BeginWriteAttribute("style", " style=\"", 204309, "\"", 204348, 3);
2024 WriteAttributeValue("", 204317, "background-image:url(\'", 204317, 22, true);
2025 WriteAttributeValue("", 204339, bImage, 204339, 7, false);
2026 WriteAttributeValue("", 204346, "\')", 204346, 2, true);
2027 EndWriteAttribute();
2028 WriteLiteral(@"></div>
2029 <div class=""container"">
2030 <div class=""col-12 col-sm-12 col-md-6 offset-md-6"">
2031 <h2>Din personlige mægler</h2>
2032 <div class=""row"">
2033 <div class=""col-12 col-sm-6"">
2034 <p>
2035 <b class=""my-broker-name"">");
2036 Write(MyBroker.Employee.Name);
2037 WriteLiteral("</b><br>\r\n");
2038 if (!string.IsNullOrEmpty(MyBroker.Employee.Email))
2039 {
2040 WriteLiteral("Mail: <a");
2041 BeginWriteAttribute("href", " href=\"", 204905, "\"", 204965, 2);
2042 WriteAttributeValue("", 204912, "mailto:", 204912, 7, true);
2043 WriteAttributeValue("", 204919, ExtractMaskedEmail(MyBroker.Employee.Email), 204919, 46, false);
2044 EndWriteAttribute();
2045 WriteLiteral(" class=\"my-broker-email\">");
2046 Write(ExtractMaskedEmail(MyBroker.Employee.Email));
2047 WriteLiteral("</a><br>");
2048
2049 }
2050 if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile))
2051 {
2052 WriteLiteral("Tlf.: <a");
2053 BeginWriteAttribute("href", " href=\"", 205264, "\"", 205307, 2);
2054 WriteAttributeValue("", 205271, "tel:", 205271, 4, true);
2055 WriteAttributeValue("", 205275, MyBroker.Employee.PhoneMobile, 205275, 32, false);
2056 EndWriteAttribute();
2057 WriteLiteral(" class=\"my-broker-phone\">");
2058 Write(FormatPhoneNumber(MyBroker.Employee.PhoneMobile));
2059 WriteLiteral("</a>");
2060
2061 }
2062 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
2063 {
2064 WriteLiteral("Tlf.: <a");
2065 BeginWriteAttribute("href", " href=\"", 205607, "\"", 205646, 2);
2066 WriteAttributeValue("", 205614, "tel:", 205614, 4, true);
2067 WriteAttributeValue("", 205618, MyBroker.Broker.Telephone, 205618, 28, false);
2068 EndWriteAttribute();
2069 WriteLiteral(" class=\"my-broker-phone\">");
2070 Write(FormatPhoneNumber(MyBroker.Broker.Telephone));
2071 WriteLiteral("</a>");
2072
2073 }
2074 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\">");
2075 Write(bName);
2076 WriteLiteral("</b><br>\r\n <span class=\"my-broker-company-address\">");
2077 Write(MyBroker.Broker.Address);
2078 WriteLiteral("</span><br>\r\n <span class=\"my-broker-company-zip\">");
2079 Write(MyBroker.Broker.ZipCode);
2080 WriteLiteral("</span> <span class=\"my-broker-company-city\">");
2081 Write(MyBroker.Broker.City);
2082 WriteLiteral("</span><br>\r\n");
2083 if (!string.IsNullOrEmpty(bEmail))
2084 {
2085 WriteLiteral("Mail: <a");
2086 BeginWriteAttribute("href", " href=\"", 206435, "\"", 206458, 2);
2087 WriteAttributeValue("", 206442, "mailto:", 206442, 7, true);
2088 WriteAttributeValue("", 206449, bEmail, 206449, 9, false);
2089 EndWriteAttribute();
2090 WriteLiteral(" class=\"my-broker-broker-email\">");
2091 Write(bEmail);
2092 WriteLiteral("</a><br>");
2093
2094 }
2095 if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
2096 {
2097 WriteLiteral("Tlf.: <a");
2098 BeginWriteAttribute("href", " href=\"", 206723, "\"", 206762, 2);
2099 WriteAttributeValue("", 206730, "tel:", 206730, 4, true);
2100 WriteAttributeValue("", 206734, MyBroker.Broker.Telephone, 206734, 28, false);
2101 EndWriteAttribute();
2102 WriteLiteral(" class=\"my-broker-broker-phone\">");
2103 Write(FormatPhoneNumber(MyBroker.Broker.Telephone));
2104 WriteLiteral("</a>");
2105
2106 }
2107 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");
2108 BeginWriteAttribute("href", " href=\"", 207138, "\"", 207173, 2);
2109 WriteAttributeValue("", 207145, "/", 207145, 1, true);
2110 WriteAttributeValue("", 207146, medlemsnummer.Substring(1), 207146, 27, false);
2111 EndWriteAttribute();
2112 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");
2113 }
2114 WriteLiteral(" <footer>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n");
2115
2116 var navigationSettings = new NavigationSettings();
2117 navigationSettings.StartLevel = 1;
2118 navigationSettings.StopLevel = 3;
2119 navigationSettings.ExpandMode = ExpandMode.All;
2120 navigationSettings.RootAreaId = 1;
2121 navigationSettings.RootNavigationTag = "footer-nav";
2122
2123 WriteLiteral(" ");
2124 Write(Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings));
2125 WriteLiteral("\r\n </div>\r\n </div>\r\n </footer>\r\n\r\n");
2126 if (Model.CurrentUser == null || Model.CurrentUser.ID <= 0)
2127 {
2128 WriteLiteral(@" <div id=""panel-login"" class=""panel panel-form js-loginforms"">
2129 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2130 <b></b>
2131 </button>
2132 <div class=""loginform login"">
2133 ");
2134 if (loginParagraphId > 0)
2135 {
2136 WriteLiteral("\r\n ");
2137 Write(RenderParagraphContent(loginParagraphId));
2138 WriteLiteral("\r\n ");
2139
2140 }
2141 WriteLiteral(" </div>\r\n <div class=\"loginform register js-register-form-wrapper\" style=\"display: none;\">\r\n");
2142 if (createUserParagraphId > 0)
2143 {
2144 WriteLiteral("\r\n ");
2145 Write(RenderParagraphContent(createUserParagraphId));
2146 WriteLiteral("\r\n ");
2147
2148 }
2149 WriteLiteral(" </div>\r\n");
2150 WriteLiteral("<div class=\"loginform forgotpw\" style=\"display: none;\">\r\n <h2 class=\"forgotpw-reg\">");
2151 Write(Translate("forgot-pw-reg-title", "Glemt adgangskode"));
2152 WriteLiteral("</h2>\r\n <h2 class=\"forgotpw-broker\">");
2153 Write(Translate("forgot-pw-broker-title", "Tilmeldt via. mægler"));
2154 WriteLiteral("</h2>\r\n <form class=\"form-body js-forgotpw-form\" method=\"post\"");
2155 BeginWriteAttribute("action", " action=\"", 209608, "\"", 209617, 0);
2156 EndWriteAttribute();
2157 WriteLiteral(">\r\n <input type=\"hidden\" name=\"AccessUserShopID\" class=\"js-forgotpw-shopid\" value=\"SHOP6\" />\r\n <p class=\"forgotpw-reg\">");
2158 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."));
2159 WriteLiteral("</p>\r\n <p class=\"forgotpw-broker\">");
2160 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."));
2161 WriteLiteral(@"</p>
2162 <div class=""form-group"">
2163 <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 />
2164 </div>
2165 <button class=""btn btn-primary btn-block"" type=""submit"">");
2166 Write(Translate("forgot-pw-cta", "Nulstil adgangskode"));
2167 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\">");
2168 Write(Translate("forgot-pw-back-to-login", "Tilbage til login"));
2169 WriteLiteral("</button>\r\n</div>\r\n\r\n </div>\r\n");
2170 }
2171 WriteLiteral("\r\n");
2172 WriteLiteral("\r\n");
2173
2174 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");
2175 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>");
2176 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler"));
2177 WriteLiteral("</h2>\r\n <form id=\"form-koeberraadgivning\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>");
2178 Write(Translate("form-navn", "Navn"));
2179 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\" tabindex=\"1\"");
2180 BeginWriteAttribute("placeholder", " placeholder=\'", 211892, "\'", 211974, 1);
2181 WriteAttributeValue("", 211906, Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn"), 211906, 68, false);
2182 EndWriteAttribute();
2183 BeginWriteAttribute("value", " value=\'", 211975, "\'", 212014, 1);
2184 WriteAttributeValue("", 211983, UserContext.Current.User?.Name, 211983, 31, false);
2185 EndWriteAttribute();
2186 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2187 Write(Translate("form-email", "E-mail"));
2188 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\"");
2189 BeginWriteAttribute("placeholder", " placeholder=\'", 212291, "\'", 212376, 1);
2190 WriteAttributeValue("", 212305, Translate("Smartpage:Kontakt.Placeholder.Email", "Indtast din e-mail"), 212305, 71, false);
2191 EndWriteAttribute();
2192 BeginWriteAttribute("value", " value=\'", 212377, "\'", 212417, 1);
2193 WriteAttributeValue("", 212385, UserContext.Current.User?.Email, 212385, 32, false);
2194 EndWriteAttribute();
2195 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2196 Write(Translate("form-mobile", "Mobil nr."));
2197 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"3\" maxlength=\"20\" name=\"mobile\"");
2198 BeginWriteAttribute("placeholder", " placeholder=\'", 212728, "\'", 212813, 1);
2199 WriteAttributeValue("", 212742, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 212742, 71, false);
2200 EndWriteAttribute();
2201 BeginWriteAttribute("value", " value=\'", 212814, "\'", 212854, 1);
2202 WriteAttributeValue("", 212822, UserContext.Current.User?.Phone, 212822, 32, false);
2203 EndWriteAttribute();
2204 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2205 Write(Translate("form-telephone", "Telefon nr."));
2206 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"4\" maxlength=\"20\" name=\"telefonnummer\"");
2207 BeginWriteAttribute("placeholder", " placeholder=\'", 213137, "\'", 213221, 1);
2208 WriteAttributeValue("", 213151, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 213151, 70, false);
2209 EndWriteAttribute();
2210 BeginWriteAttribute("value", " value=\'", 213222, "\'", 213263, 1);
2211 WriteAttributeValue("", 213230, UserContext.Current?.User?.Phone, 213230, 33, false);
2212 EndWriteAttribute();
2213 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <h3>");
2214 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"));
2215 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2216 Write(Translate("form-zip", "Post nr"));
2217 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\" tabindex=\"5\"");
2218 BeginWriteAttribute("placeholder", " placeholder=\'", 213671, "\'", 213749, 1);
2219 WriteAttributeValue("", 213685, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 213685, 64, false);
2220 EndWriteAttribute();
2221 BeginWriteAttribute("value", " value=\"", 213750, "\"", 213766, 1);
2222 WriteAttributeValue("", 213758, userZip, 213758, 8, false);
2223 EndWriteAttribute();
2224 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2225 Write(Translate("form-city", "By"));
2226 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>");
2227 Write(Translate("form-adresse", "Adresse"));
2228 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\" tabindex=\"6\"");
2229 BeginWriteAttribute("placeholder", " placeholder=\'", 214333, "\'", 214423, 1);
2230 WriteAttributeValue("", 214347, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 214347, 76, false);
2231 EndWriteAttribute();
2232 WriteLiteral(" required />\r\n\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2233 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2234 WriteLiteral(@"</label>
2235 </div>
2236 <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"">
2237 <strong class=""f-12""><i class=""fas fa-plus""></i> ");
2238 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar"));
2239 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\"");
2240 BeginWriteAttribute("placeholder", " placeholder=\'", 215217, "\'", 215295, 1);
2241 WriteAttributeValue("", 215231, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 215231, 64, false);
2242 EndWriteAttribute();
2243 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\">");
2244 Write(Translate("KontaktMægler", "Kontakt Mægler"));
2245 WriteLiteral(@"</button>
2246 </div>
2247 </div>
2248 </div>
2249 <div class=""form-group mt-3"">
2250 <div class=""checkbox"">
2251 <label>
2252 <input type=""checkbox"" name=""kontaktmigok"" required />
2253
2254 <span>");
2255 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2256 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2257 Write(privacyPolicyText);
2258 WriteLiteral(" <a");
2259 BeginWriteAttribute("href", " href=\"", 216108, "\"", 216132, 2);
2260 WriteAttributeValue("", 216115, "mailto:", 216115, 7, true);
2261 WriteAttributeValue("", 216122, termsMail, 216122, 10, false);
2262 EndWriteAttribute();
2263 WriteLiteral(">");
2264 Write(termsMail);
2265 WriteLiteral("</a>.\r\n Læs mere på <a");
2266 BeginWriteAttribute("href", " href=\"", 216177, "\"", 216211, 1);
2267 WriteAttributeValue("", 216184, settings_Persondatapolitik, 216184, 27, false);
2268 EndWriteAttribute();
2269 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n\r\n <input type=\"hidden\" name=\"fn\" value=\"krk\" />\r\n <input type=\"hidden\" name=\"origin\"");
2270 BeginWriteAttribute("value", " value=\"", 216357, "\"", 216365, 0);
2271 EndWriteAttribute();
2272 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2273 BeginWriteAttribute("value", " value=\"", 216415, "\"", 216423, 0);
2274 EndWriteAttribute();
2275 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2276 BeginWriteAttribute("value", " value=\"", 216471, "\"", 216495, 1);
2277 WriteAttributeValue("", 216479, Pageview.AreaID, 216479, 16, false);
2278 EndWriteAttribute();
2279 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\"");
2280 BeginWriteAttribute("value", " value=\"", 216544, "\"", 216560, 1);
2281 WriteAttributeValue("", 216552, butikId, 216552, 8, false);
2282 EndWriteAttribute();
2283 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2284 BeginWriteAttribute("value", " value=\"", 216614, "\"", 216622, 0);
2285 EndWriteAttribute();
2286 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2287 BeginWriteAttribute("value", " value=\"", 216673, "\"", 216681, 0);
2288 EndWriteAttribute();
2289 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2290 BeginWriteAttribute("value", " value=\"", 216731, "\"", 216739, 0);
2291 EndWriteAttribute();
2292 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-advisor\" style=\"display:none;\">\r\n <h2>");
2293 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2294 WriteLiteral("</h2>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2295 BeginWriteAttribute("src", " src=\"", 216972, "\"", 216978, 0);
2296 EndWriteAttribute();
2297 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2298 </div>
2299 <div class=""col-6"">
2300 <p class=""js-maegler-name""></p>
2301 <p class=""js-maegler-address""></p>
2302 <p class=""js-maegler-phone""></p>
2303 <p class=""js-maegler-mail""></p>
2304 </div>
2305 </div>
2306 <p>");
2307 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2308 WriteLiteral(@"</p>
2309 </div>
2310 </div>
2311
2312 <!--ÅBENT HUS-->
2313 <div id=""panel-aabenthus"" class=""panel panel-form"">
2314 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2315 <b></b>
2316 </button>
2317
2318
2319 <form id=""form-aabenthus"" method=""POST"" action=""/InboxHandler"">
2320 <h2>");
2321 Write(Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus"));
2322 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>");
2323 Write(Translate("Smarptage:Adresse", "Adresse:"));
2324 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>");
2325 Write(Translate("Smarptage:Date", "Dato:"));
2326 WriteLiteral("</strong> <label class=\"js-aabenthus-date mb-0\"></label>\r\n </div>\r\n <div class=\"d-block mb-4\">\r\n <strong>");
2327 Write(Translate("Smarptage:Time", "Tidspunkt:"));
2328 WriteLiteral("</strong> <label class=\"js-aabenthus-time mb-0\"></label>\r\n </div>\r\n <h3>");
2329 Write(Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger"));
2330 WriteLiteral("</h3>\r\n <div class=\"form-group\">\r\n <label for=\"aabenthus-name\"><strong>");
2331 Write(Translate("form-navn", "Navn"));
2332 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2333 BeginWriteAttribute("placeholder", " placeholder=\'", 218596, "\'", 218680, 1);
2334 WriteAttributeValue("", 218610, Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn"), 218610, 70, false);
2335 EndWriteAttribute();
2336 BeginWriteAttribute("value", " value=\'", 218681, "\'", 218721, 1);
2337 WriteAttributeValue("", 218689, UserContext.Current?.User?.Name, 218689, 32, false);
2338 EndWriteAttribute();
2339 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2340 Write(Translate("form-email", "E-mail"));
2341 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2342 BeginWriteAttribute("placeholder", " placeholder=\'", 218985, "\'", 219072, 1);
2343 WriteAttributeValue("", 218999, Translate("Smartpage:Aabenthus.Placeholder.Email", "Indtast din e-mail"), 218999, 73, false);
2344 EndWriteAttribute();
2345 BeginWriteAttribute("value", " value=\'", 219073, "\'", 219113, 1);
2346 WriteAttributeValue("", 219081, UserContext.Current.User?.Email, 219081, 32, false);
2347 EndWriteAttribute();
2348 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2349 Write(Translate("form-mobile", "Mobil nr."));
2350 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2351 BeginWriteAttribute("placeholder", " placeholder=\'", 219406, "\'", 219493, 1);
2352 WriteAttributeValue("", 219420, Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr."), 219420, 73, false);
2353 EndWriteAttribute();
2354 BeginWriteAttribute("value", " value=\'", 219494, "\'", 219534, 1);
2355 WriteAttributeValue("", 219502, UserContext.Current.User?.Phone, 219502, 32, false);
2356 EndWriteAttribute();
2357 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2358 Write(Translate("form-telephone", "Telefon nr."));
2359 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2360 BeginWriteAttribute("placeholder", " placeholder=\'", 219804, "\'", 219890, 1);
2361 WriteAttributeValue("", 219818, Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr."), 219818, 72, false);
2362 EndWriteAttribute();
2363 BeginWriteAttribute("value", " value=\'", 219891, "\'", 219931, 1);
2364 WriteAttributeValue("", 219899, UserContext.Current.User?.Phone, 219899, 32, false);
2365 EndWriteAttribute();
2366 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\">");
2367 Write(Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus"));
2368 WriteLiteral(@"</button>
2369 </div>
2370 </div>
2371 </div>
2372 <div class=""form-group"">
2373 <div class=""checkbox"">
2374 <label>
2375 <input type=""checkbox"" name=""kontaktmigok"" required />
2376
2377 <span class=""base-color"">");
2378 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2379 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n ");
2380 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>"));
2381 WriteLiteral("\r\n\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"ah\" />\r\n <input type=\"hidden\" name=\"origin\"");
2382 BeginWriteAttribute("value", " value=\"", 221094, "\"", 221102, 0);
2383 EndWriteAttribute();
2384 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2385 BeginWriteAttribute("value", " value=\"", 221152, "\"", 221167, 1);
2386 WriteAttributeValue("", 221160, userID, 221160, 7, false);
2387 EndWriteAttribute();
2388 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2389 BeginWriteAttribute("value", " value=\"", 221215, "\"", 221239, 1);
2390 WriteAttributeValue("", 221223, Pageview.AreaID, 221223, 16, false);
2391 EndWriteAttribute();
2392 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\"");
2393 BeginWriteAttribute("value", " value=\"", 221288, "\"", 221304, 1);
2394 WriteAttributeValue("", 221296, butikId, 221296, 8, false);
2395 EndWriteAttribute();
2396 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsaddresse\"");
2397 BeginWriteAttribute("value", " value=\"", 221358, "\"", 221366, 0);
2398 EndWriteAttribute();
2399 WriteLiteral(" class=\"js-aabenthus-address-input\" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2400 BeginWriteAttribute("value", " value=\"", 221455, "\"", 221463, 0);
2401 EndWriteAttribute();
2402 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2403 BeginWriteAttribute("value", " value=\"", 221514, "\"", 221522, 0);
2404 EndWriteAttribute();
2405 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2406 BeginWriteAttribute("value", " value=\"", 221572, "\"", 221580, 0);
2407 EndWriteAttribute();
2408 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2409 BeginWriteAttribute("value", " value=\"", 221630, "\"", 221638, 0);
2410 EndWriteAttribute();
2411 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsnr\"");
2412 BeginWriteAttribute("value", " value=\"", 221686, "\"", 221694, 0);
2413 EndWriteAttribute();
2414 WriteLiteral(" class=\"js-sagsnr\" />\r\n <input type=\"hidden\" name=\"productId\"");
2415 BeginWriteAttribute("value", " value=\"", 221763, "\"", 221819, 1);
2416 WriteAttributeValue("", 221771, Dynamicweb.Context.Current.Request["ProductId"], 221771, 48, false);
2417 EndWriteAttribute();
2418 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"aftaleid\"");
2419 BeginWriteAttribute("value", " value=\"", 221869, "\"", 221877, 0);
2420 EndWriteAttribute();
2421 WriteLiteral(@" class=""js-aftaleid"" />
2422
2423 <input type=""hidden"" name=""dateMail"" class=""js-aabenthus-date-input"" />
2424 <input type=""hidden"" name=""timeMail"" class=""js-aabenthus-time-input"" />
2425 <input type=""hidden"" name=""brokerImageMail"" class=""property-broker-image-input"" />
2426 <input type=""hidden"" name=""employeeNameMail"" class=""js-maegler-employee-name-input"" />
2427 <input type=""hidden"" name=""employeeTitleMail"" class=""js-maegler-employee-title-input"" />
2428 <input type=""hidden"" name=""employeeMailMail"" class=""js-maegler-mail-input"" />
2429 <input type=""hidden"" name=""employeeMobileMail"" class=""js-maegler-mobile-input"" />
2430 <input type=""hidden"" name=""employeePhoneMail"" class=""js-maegler-phone-input"" />
2431
2432 <input type=""hidden"" name=""brokerNameMail"" class=""js-broker-name-input"" />
2433 <input type=""hidden"" name=""brokerAddressMail"" class=""js-broker-address-input"" />
2434 <input type=""hidden"" name=""brokerPhoneMail"" class=""js-broker-phone-input"" />
2435 </form>
2436 <di");
2437 WriteLiteral("v id=\"tak-aabenthus\" style=\"display:none;\">\r\n <h2>");
2438 Write(Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!"));
2439 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>");
2440 Write(Translate("Smarptage:Adresse", "Adresse:"));
2441 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>");
2442 Write(Translate("Smarptage:Date", "Dato:"));
2443 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>");
2444 Write(Translate("Smarptage:Time", "Tidspunkt:"));
2445 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>");
2446 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>"));
2447 WriteLiteral("</p>\r\n </div>\r\n <div class=\"js-not-employee\">\r\n <p>");
2448 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"));
2449 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\"");
2450 BeginWriteAttribute("style", " style=\"", 224269, "\"", 224277, 0);
2451 EndWriteAttribute();
2452 WriteLiteral(@"></div>
2453
2454 </div>
2455 </div>
2456 <div class=""col-12"">
2457 <div class=""bg-base"">
2458
2459 <div class=""js-employee"">
2460 <h4 class=""js-maegler-employee-name""></h4>
2461 <div class=""icon-container"">
2462 <i class=""fas fa-envelope""></i> <span class=""js-maegler-mail""></span>
2463 </div>
2464 <div class=""icon-container"">
2465 <i class=""fas fa-phone""></i> <span class=""js-maegler-mobile""></span>
2466 </div>
2467 </div>
2468
2469
2470 <h4 class=""js-maegler-name""></h4>
2471 <div class=""icon-container"">
2472 <i class=""fas fa-map-marker-alt""></i> <span class=""js-maegler-address""></span>
2473 </div>
2474 <div class=""icon-container"">
2475 <i class=""fas fa-phone""></i> <span class=""js-maegler-phone""></span>");
2476 WriteLiteral(@"
2477
2478 </div>
2479 <a class=""btn btn-border"" onclick=""panelKontaktmaeglerGuldkoeber()"">KONTAKT MÆGLER</a>
2480 </div>
2481 </div>
2482 </div>
2483 </div>
2484 </div>
2485
2486 <!-- KONTAKT GULDKØBER -->
2487 <div id=""panel-kontakt-guldkoeber"" class=""panel panel-form"">
2488 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2489 <b></b>
2490 </button>
2491 <h2>");
2492 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler"));
2493 WriteLiteral("</h2>\r\n <form id=\"form-kontaktmaegler\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>");
2494 Write(Translate("form-navn", "Navn"));
2495 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2496 BeginWriteAttribute("placeholder", " placeholder=\'", 226062, "\'", 226107, 1);
2497 WriteAttributeValue("", 226076, Translate("form-navn", "Navn"), 226076, 31, false);
2498 EndWriteAttribute();
2499 BeginWriteAttribute("value", " value=\'", 226108, "\'", 226147, 1);
2500 WriteAttributeValue("", 226116, UserContext.Current.User?.Name, 226116, 31, false);
2501 EndWriteAttribute();
2502 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2503 Write(Translate("form-email", "E-mail"));
2504 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2505 BeginWriteAttribute("placeholder", " placeholder=\'", 226411, "\'", 226459, 1);
2506 WriteAttributeValue("", 226425, Translate("form-email", "E-mail"), 226425, 34, false);
2507 EndWriteAttribute();
2508 BeginWriteAttribute("value", " value=\'", 226460, "\'", 226500, 1);
2509 WriteAttributeValue("", 226468, UserContext.Current.User?.Email, 226468, 32, false);
2510 EndWriteAttribute();
2511 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2512 Write(Translate("form-mobile", "Mobil nr."));
2513 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2514 BeginWriteAttribute("placeholder", " placeholder=\'", 226798, "\'", 226883, 1);
2515 WriteAttributeValue("", 226812, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 226812, 71, false);
2516 EndWriteAttribute();
2517 BeginWriteAttribute("value", " value=\'", 226884, "\'", 226924, 1);
2518 WriteAttributeValue("", 226892, UserContext.Current.User?.Phone, 226892, 32, false);
2519 EndWriteAttribute();
2520 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2521 Write(Translate("form-telephone", "Telefon nr."));
2522 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2523 BeginWriteAttribute("placeholder", " placeholder=\'", 227194, "\'", 227278, 1);
2524 WriteAttributeValue("", 227208, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 227208, 70, false);
2525 EndWriteAttribute();
2526 BeginWriteAttribute("value", " value=\'", 227279, "\'", 227319, 1);
2527 WriteAttributeValue("", 227287, UserContext.Current.User?.Phone, 227287, 32, false);
2528 EndWriteAttribute();
2529 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2530 Write(Translate("form-zip", "Post nr"));
2531 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\"");
2532 BeginWriteAttribute("placeholder", " placeholder=\'", 227635, "\'", 227713, 1);
2533 WriteAttributeValue("", 227649, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 227649, 64, false);
2534 EndWriteAttribute();
2535 BeginWriteAttribute("value", " value=\"", 227714, "\"", 227730, 1);
2536 WriteAttributeValue("", 227722, userZip, 227722, 8, false);
2537 EndWriteAttribute();
2538 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2539 Write(Translate("form-city", "By"));
2540 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>");
2541 Write(Translate("form-adresse", "Adresse"));
2542 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\"");
2543 BeginWriteAttribute("placeholder", " placeholder=\'", 228286, "\'", 228376, 1);
2544 WriteAttributeValue("", 228300, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 228300, 76, false);
2545 EndWriteAttribute();
2546 BeginWriteAttribute("value", " value=\"", 228377, "\"", 228397, 1);
2547 WriteAttributeValue("", 228385, userAddress, 228385, 12, false);
2548 EndWriteAttribute();
2549 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2550 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2551 WriteLiteral("</label>\r\n </div>\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\"");
2552 BeginWriteAttribute("placeholder", " placeholder=\'", 228723, "\'", 228801, 1);
2553 WriteAttributeValue("", 228737, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 228737, 64, false);
2554 EndWriteAttribute();
2555 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>");
2556 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2557 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\">");
2558 Write(Translate("KontaktMægler", "Kontakt Mægler"));
2559 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2560 Write(privacyPolicyText);
2561 WriteLiteral(" <a");
2562 BeginWriteAttribute("href", " href=\"", 229587, "\"", 229611, 2);
2563 WriteAttributeValue("", 229594, "mailto:", 229594, 7, true);
2564 WriteAttributeValue("", 229601, termsMail, 229601, 10, false);
2565 EndWriteAttribute();
2566 WriteLiteral(">");
2567 Write(termsMail);
2568 WriteLiteral("</a>.\r\n Læs mere på <a");
2569 BeginWriteAttribute("href", " href=\"", 229656, "\"", 229690, 1);
2570 WriteAttributeValue("", 229663, settings_Persondatapolitik, 229663, 27, false);
2571 EndWriteAttribute();
2572 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"gk\" />\r\n <input type=\"hidden\" name=\"origin\"");
2573 BeginWriteAttribute("value", " value=\"", 229833, "\"", 229841, 0);
2574 EndWriteAttribute();
2575 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2576 BeginWriteAttribute("value", " value=\"", 229891, "\"", 229906, 1);
2577 WriteAttributeValue("", 229899, userID, 229899, 7, false);
2578 EndWriteAttribute();
2579 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2580 BeginWriteAttribute("value", " value=\"", 229954, "\"", 229978, 1);
2581 WriteAttributeValue("", 229962, Pageview.AreaID, 229962, 16, false);
2582 EndWriteAttribute();
2583 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\"");
2584 BeginWriteAttribute("value", " value=\"", 230027, "\"", 230043, 1);
2585 WriteAttributeValue("", 230035, butikId, 230035, 8, false);
2586 EndWriteAttribute();
2587 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2588 BeginWriteAttribute("value", " value=\"", 230097, "\"", 230105, 0);
2589 EndWriteAttribute();
2590 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2591 BeginWriteAttribute("value", " value=\"", 230156, "\"", 230164, 0);
2592 EndWriteAttribute();
2593 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2594 BeginWriteAttribute("value", " value=\"", 230214, "\"", 230222, 0);
2595 EndWriteAttribute();
2596 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2597 BeginWriteAttribute("value", " value=\"", 230272, "\"", 230280, 0);
2598 EndWriteAttribute();
2599 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-maegler-guldkoeber\" style=\"display:none;\">\r\n <h2>");
2600 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2601 WriteLiteral("</h2>\r\n <p>");
2602 Write(Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:"));
2603 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2604 BeginWriteAttribute("src", " src=\"", 230642, "\"", 230648, 0);
2605 EndWriteAttribute();
2606 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2607 </div>
2608 <div class=""col-6"">
2609 <p class=""js-maegler-name""></p>
2610 <p class=""js-maegler-address""></p>
2611 <p class=""js-maegler-phone""></p>
2612 <p class=""js-maegler-mail""></p>
2613 </div>
2614 </div>
2615 <p>");
2616 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2617 WriteLiteral(@"</p>
2618 </div>
2619 </div>
2620
2621 <!-- BESTIL SALGSVURDERING -->
2622 <div id=""panel-salgsvurdering"" class=""panel panel-form"">
2623 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2624 <b></b>
2625 </button>
2626
2627 <form id=""bestil-salgsvurdering"" class=""buyer-advisor-form js-buyer-advisor-form"" method=""POST"" action=""/InboxHandler"">
2628 <h2 class=""js-buyer-advisor-header"">");
2629 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering"));
2630 WriteLiteral("</h2>\r\n <p>");
2631 Write(Translate("form-salgsvurdering-beskrivelse", ""));
2632 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>");
2633 Write(Translate("form-navn", "Navn"));
2634 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2635 BeginWriteAttribute("placeholder", " placeholder=\'", 231805, "\'", 231894, 1);
2636 WriteAttributeValue("", 231819, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 231819, 75, false);
2637 EndWriteAttribute();
2638 BeginWriteAttribute("value", " value=\'", 231895, "\'", 231934, 1);
2639 WriteAttributeValue("", 231903, UserContext.Current.User?.Name, 231903, 31, false);
2640 EndWriteAttribute();
2641 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2642 Write(Translate("form-email", "E-mail"));
2643 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2644 BeginWriteAttribute("placeholder", " placeholder=\'", 232198, "\'", 232290, 1);
2645 WriteAttributeValue("", 232212, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 232212, 78, false);
2646 EndWriteAttribute();
2647 BeginWriteAttribute("value", " value=\'", 232291, "\'", 232331, 1);
2648 WriteAttributeValue("", 232299, UserContext.Current.User?.Email, 232299, 32, false);
2649 EndWriteAttribute();
2650 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2651 Write(Translate("form-mobile", "Mobil nr."));
2652 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2653 BeginWriteAttribute("placeholder", " placeholder=\'", 232629, "\'", 232721, 1);
2654 WriteAttributeValue("", 232643, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 232643, 78, false);
2655 EndWriteAttribute();
2656 BeginWriteAttribute("value", " value=\'", 232722, "\'", 232762, 1);
2657 WriteAttributeValue("", 232730, UserContext.Current.User?.Phone, 232730, 32, false);
2658 EndWriteAttribute();
2659 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2660 Write(Translate("form-telephone", "Telefon nr."));
2661 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2662 BeginWriteAttribute("placeholder", " placeholder=\'", 233032, "\'", 233123, 1);
2663 WriteAttributeValue("", 233046, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 233046, 77, false);
2664 EndWriteAttribute();
2665 BeginWriteAttribute("value", " value=\'", 233124, "\'", 233164, 1);
2666 WriteAttributeValue("", 233132, UserContext.Current.User?.Phone, 233132, 32, false);
2667 EndWriteAttribute();
2668 WriteLiteral(" />\r\n </div>\r\n\r\n </div>\r\n\r\n <h3>");
2669 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"));
2670 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2671 Write(Translate("form-zip", "Post nr"));
2672 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\"");
2673 BeginWriteAttribute("placeholder", " placeholder=\'", 233584, "\'", 233662, 1);
2674 WriteAttributeValue("", 233598, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 233598, 64, false);
2675 EndWriteAttribute();
2676 BeginWriteAttribute("value", " value=\"", 233663, "\"", 233679, 1);
2677 WriteAttributeValue("", 233671, userZip, 233671, 8, false);
2678 EndWriteAttribute();
2679 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2680 Write(Translate("form-city", "By"));
2681 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>");
2682 Write(Translate("form-adresse", "Adresse"));
2683 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\"");
2684 BeginWriteAttribute("placeholder", " placeholder=\'", 234233, "\'", 234323, 1);
2685 WriteAttributeValue("", 234247, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 234247, 76, false);
2686 EndWriteAttribute();
2687 BeginWriteAttribute("value", " value=\"", 234324, "\"", 234344, 1);
2688 WriteAttributeValue("", 234332, userAddress, 234332, 12, false);
2689 EndWriteAttribute();
2690 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2691 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2692 WriteLiteral(@"</label>
2693 </div>
2694
2695 <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"">
2696 <strong class=""f-12""><i class=""fas fa-plus""></i> ");
2697 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar"));
2698 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\"");
2699 BeginWriteAttribute("placeholder", " placeholder=\'", 235114, "\'", 235192, 1);
2700 WriteAttributeValue("", 235128, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 235128, 64, false);
2701 EndWriteAttribute();
2702 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>");
2703 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:"));
2704 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\"");
2705 BeginWriteAttribute("id", " id=\"", 235638, "\"", 235643, 0);
2706 EndWriteAttribute();
2707 WriteLiteral(" name=\"choose-broker\"");
2708 BeginWriteAttribute("value", " value=\"", 235665, "\"", 235673, 0);
2709 EndWriteAttribute();
2710 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\"");
2711 BeginWriteAttribute("for", " for=\"", 235739, "\"", 235745, 0);
2712 EndWriteAttribute();
2713 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");
2714 BeginWriteAttribute("src", " src=\"", 235991, "\"", 235997, 0);
2715 EndWriteAttribute();
2716 WriteLiteral(@" class=""img-fluid js-broker-image"">
2717 </div>
2718 <div class=""col-6"">
2719 <span class=""d-block"">
2720 <strong class=""js-choose-broker-name""></strong>
2721 </span>
2722 <span class=""js-choose-broker-address""></span>
2723 <input type=""hidden"" class=""js-choose-broker-phone""");
2724 BeginWriteAttribute("value", " value=\"", 236409, "\"", 236417, 0);
2725 EndWriteAttribute();
2726 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\"");
2727 BeginWriteAttribute("value", " value=\"", 236498, "\"", 236506, 0);
2728 EndWriteAttribute();
2729 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\">");
2730 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler"));
2731 WriteLiteral(@"</h3>
2732 <div class=""js-choose-broker col-12"">
2733 </div>
2734
2735 </div>
2736
2737 <div class=""form-group mt-4"">
2738 <div class=""checkbox"">
2739 <label>
2740 <input type=""checkbox"" name=""kontaktmigok"" required />
2741
2742 <span class=""consent-checkbox"">");
2743 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2744 WriteLiteral(@"</span>
2745
2746 </label>
2747 </div>
2748 </div>
2749 <div class=""form-group"">
2750 <div class=""row"">
2751 <div class=""col-12"">
2752 <button type=""submit"" class=""btn btn-green btn-block js-buyer-advisor-button"">");
2753 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering"));
2754 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2755 Write(privacyPolicyText);
2756 WriteLiteral(" <a");
2757 BeginWriteAttribute("href", " href=\"", 237666, "\"", 237690, 2);
2758 WriteAttributeValue("", 237673, "mailto:", 237673, 7, true);
2759 WriteAttributeValue("", 237680, termsMail, 237680, 10, false);
2760 EndWriteAttribute();
2761 WriteLiteral(">");
2762 Write(termsMail);
2763 WriteLiteral("</a>.\r\n Læs mere på <a");
2764 BeginWriteAttribute("href", " href=\"", 237735, "\"", 237769, 1);
2765 WriteAttributeValue("", 237742, settings_Persondatapolitik, 237742, 27, false);
2766 EndWriteAttribute();
2767 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\"");
2768 BeginWriteAttribute("value", " value=\"", 237946, "\"", 237954, 0);
2769 EndWriteAttribute();
2770 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2771 BeginWriteAttribute("value", " value=\"", 238004, "\"", 238019, 1);
2772 WriteAttributeValue("", 238012, userID, 238012, 7, false);
2773 EndWriteAttribute();
2774 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2775 BeginWriteAttribute("value", " value=\"", 238067, "\"", 238091, 1);
2776 WriteAttributeValue("", 238075, Pageview.AreaID, 238075, 16, false);
2777 EndWriteAttribute();
2778 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning\" name=\"boligvisning\"");
2779 BeginWriteAttribute("value", " value=\"", 238163, "\"", 238171, 0);
2780 EndWriteAttribute();
2781 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-butikid\" name=\"butikId\"");
2782 BeginWriteAttribute("value", " value=\"", 238254, "\"", 238262, 0);
2783 EndWriteAttribute();
2784 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-sagsnr\" name=\"sagsnr\"");
2785 BeginWriteAttribute("value", " value=\"", 238343, "\"", 238351, 0);
2786 EndWriteAttribute();
2787 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\"");
2788 BeginWriteAttribute("value", " value=\"", 238402, "\"", 238458, 1);
2789 WriteAttributeValue("", 238410, Dynamicweb.Context.Current.Request["ProductId"], 238410, 48, false);
2790 EndWriteAttribute();
2791 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2792 BeginWriteAttribute("value", " value=\"", 238512, "\"", 238520, 0);
2793 EndWriteAttribute();
2794 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2795 BeginWriteAttribute("value", " value=\"", 238571, "\"", 238579, 0);
2796 EndWriteAttribute();
2797 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2798 BeginWriteAttribute("value", " value=\"", 238629, "\"", 238637, 0);
2799 EndWriteAttribute();
2800 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2801 BeginWriteAttribute("value", " value=\"", 238687, "\"", 238695, 0);
2802 EndWriteAttribute();
2803 WriteLiteral(" />\r\n <input class=\"js-value-check\" type=\"hidden\" name=\"valueCheck\"");
2804 BeginWriteAttribute("value", " value=\"", 238770, "\"", 238778, 0);
2805 EndWriteAttribute();
2806 WriteLiteral(" />\r\n <input class=\"js-green-appraisal\" type=\"hidden\" name=\"greenAppraisal\"");
2807 BeginWriteAttribute("value", " value=\"", 238861, "\"", 238869, 0);
2808 EndWriteAttribute();
2809 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>");
2810 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2811 WriteLiteral("</h2>\r\n <p>");
2812 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:"));
2813 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2814 BeginWriteAttribute("src", " src=\"", 239231, "\"", 239237, 0);
2815 EndWriteAttribute();
2816 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2817 </div>
2818 <div class=""col-6"">
2819 <p class=""js-maegler-name""></p>
2820 <p class=""js-maegler-address""></p>
2821 <p class=""js-maegler-phone""></p>
2822 <p class=""js-maegler-mail""></p>
2823 </div>
2824 </div>
2825 <p>");
2826 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2827 WriteLiteral(@"</p>
2828 </div>
2829 </div>
2830
2831 <!-- BESTIL SALGSVURDERING GULDKØBER -->
2832 <div id=""panel-salgsvurdering-guldkoeber"" class=""panel panel-form"">
2833 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2834 <b></b>
2835 </button>
2836
2837 <form id=""bestil-salgsvurdering-guldkoeber"" method=""POST"" action=""/InboxHandler"">
2838 <h2>");
2839 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering"));
2840 WriteLiteral("</h2>\r\n <p>");
2841 Write(Translate("form-salgsvurdering-beskrivelse", ""));
2842 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>");
2843 Write(Translate("form-navn", "Navn"));
2844 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2845 BeginWriteAttribute("placeholder", " placeholder=\'", 240345, "\'", 240434, 1);
2846 WriteAttributeValue("", 240359, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 240359, 75, false);
2847 EndWriteAttribute();
2848 BeginWriteAttribute("value", " value=\'", 240435, "\'", 240474, 1);
2849 WriteAttributeValue("", 240443, UserContext.Current.User?.Name, 240443, 31, false);
2850 EndWriteAttribute();
2851 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2852 Write(Translate("form-email", "E-mail"));
2853 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2854 BeginWriteAttribute("placeholder", " placeholder=\'", 240738, "\'", 240830, 1);
2855 WriteAttributeValue("", 240752, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 240752, 78, false);
2856 EndWriteAttribute();
2857 BeginWriteAttribute("value", " value=\'", 240831, "\'", 240871, 1);
2858 WriteAttributeValue("", 240839, UserContext.Current.User?.Email, 240839, 32, false);
2859 EndWriteAttribute();
2860 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2861 Write(Translate("form-telephone", "Telefon nr."));
2862 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2863 BeginWriteAttribute("placeholder", " placeholder=\'", 241180, "\'", 241271, 1);
2864 WriteAttributeValue("", 241194, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 241194, 77, false);
2865 EndWriteAttribute();
2866 BeginWriteAttribute("value", " value=\'", 241272, "\'", 241312, 1);
2867 WriteAttributeValue("", 241280, UserContext.Current.User?.Phone, 241280, 32, false);
2868 EndWriteAttribute();
2869 WriteLiteral(" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2870 Write(Translate("form-mobile", "Mobil nr."));
2871 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2872 BeginWriteAttribute("placeholder", " placeholder=\'", 241562, "\'", 241654, 1);
2873 WriteAttributeValue("", 241576, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 241576, 78, false);
2874 EndWriteAttribute();
2875 BeginWriteAttribute("value", " value=\'", 241655, "\'", 241695, 1);
2876 WriteAttributeValue("", 241663, UserContext.Current.User?.Phone, 241663, 32, false);
2877 EndWriteAttribute();
2878 WriteLiteral(" required />\r\n </div>\r\n </div>\r\n\r\n <h3>");
2879 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"));
2880 WriteLiteral("</h3>\r\n\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2881 Write(Translate("form-zip", "Post nr"));
2882 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\"");
2883 BeginWriteAttribute("placeholder", " placeholder=\'", 242124, "\'", 242202, 1);
2884 WriteAttributeValue("", 242138, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 242138, 64, false);
2885 EndWriteAttribute();
2886 BeginWriteAttribute("value", " value=\"", 242203, "\"", 242219, 1);
2887 WriteAttributeValue("", 242211, userZip, 242211, 8, false);
2888 EndWriteAttribute();
2889 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2890 Write(Translate("form-city", "By"));
2891 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>");
2892 Write(Translate("form-adresse", "Adresse"));
2893 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\"");
2894 BeginWriteAttribute("placeholder", " placeholder=\'", 242773, "\'", 242863, 1);
2895 WriteAttributeValue("", 242787, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 242787, 76, false);
2896 EndWriteAttribute();
2897 BeginWriteAttribute("value", " value=\"", 242864, "\"", 242884, 1);
2898 WriteAttributeValue("", 242872, userAddress, 242872, 12, false);
2899 EndWriteAttribute();
2900 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2901 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2902 WriteLiteral(@"</label>
2903 </div>
2904
2905 <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"">
2906 <strong class=""f-12""><i class=""fas fa-plus""></i> ");
2907 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar"));
2908 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\"");
2909 BeginWriteAttribute("placeholder", " placeholder=\'", 243654, "\'", 243732, 1);
2910 WriteAttributeValue("", 243668, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 243668, 64, false);
2911 EndWriteAttribute();
2912 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>");
2913 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:"));
2914 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\"");
2915 BeginWriteAttribute("id", " id=\"", 244176, "\"", 244181, 0);
2916 EndWriteAttribute();
2917 WriteLiteral(" name=\"choose-broker-gk\"");
2918 BeginWriteAttribute("value", " value=\"", 244206, "\"", 244214, 0);
2919 EndWriteAttribute();
2920 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\"");
2921 BeginWriteAttribute("for", " for=\"", 244280, "\"", 244286, 0);
2922 EndWriteAttribute();
2923 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");
2924 BeginWriteAttribute("src", " src=\"", 244532, "\"", 244538, 0);
2925 EndWriteAttribute();
2926 WriteLiteral(@" class=""img-fluid js-broker-image"">
2927 </div>
2928 <div class=""col-6"">
2929 <span class=""d-block"">
2930 <strong class=""js-choose-broker-name""></strong>
2931 </span>
2932 <span class=""js-choose-broker-address""></span>
2933 <input type=""hidden"" class=""js-choose-broker-phone""");
2934 BeginWriteAttribute("value", " value=\"", 244950, "\"", 244958, 0);
2935 EndWriteAttribute();
2936 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\"");
2937 BeginWriteAttribute("value", " value=\"", 245039, "\"", 245047, 0);
2938 EndWriteAttribute();
2939 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\">");
2940 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler"));
2941 WriteLiteral(@"</h3>
2942 <div class=""js-choose-broker col-12"">
2943 </div>
2944
2945 </div>
2946
2947
2948 <div class=""form-group"">
2949 <div class=""row"">
2950 <div class=""col-12"">
2951 <button type=""submit"" class=""btn btn-green btn-block"">");
2952 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering"));
2953 WriteLiteral(@"</button>
2954 </div>
2955 </div>
2956 </div>
2957 <div class=""form-group"">
2958 <div class=""checkbox"">
2959 <label>
2960 <input type=""checkbox"" name=""kontaktmigok"" required />
2961
2962 <span>");
2963 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2964 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2965 Write(privacyPolicyText);
2966 WriteLiteral(" <a");
2967 BeginWriteAttribute("href", " href=\"", 246155, "\"", 246179, 2);
2968 WriteAttributeValue("", 246162, "mailto:", 246162, 7, true);
2969 WriteAttributeValue("", 246169, termsMail, 246169, 10, false);
2970 EndWriteAttribute();
2971 WriteLiteral(">");
2972 Write(termsMail);
2973 WriteLiteral("</a>.\r\n Læs mere på <a");
2974 BeginWriteAttribute("href", " href=\"", 246224, "\"", 246258, 1);
2975 WriteAttributeValue("", 246231, settings_Persondatapolitik, 246231, 27, false);
2976 EndWriteAttribute();
2977 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\"");
2978 BeginWriteAttribute("value", " value=\"", 246435, "\"", 246443, 0);
2979 EndWriteAttribute();
2980 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2981 BeginWriteAttribute("value", " value=\"", 246493, "\"", 246508, 1);
2982 WriteAttributeValue("", 246501, userID, 246501, 7, false);
2983 EndWriteAttribute();
2984 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2985 BeginWriteAttribute("value", " value=\"", 246556, "\"", 246580, 1);
2986 WriteAttributeValue("", 246564, Pageview.AreaID, 246564, 16, false);
2987 EndWriteAttribute();
2988 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning-gk\" name=\"boligvisning\"");
2989 BeginWriteAttribute("value", " value=\"", 246655, "\"", 246663, 0);
2990 EndWriteAttribute();
2991 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-butikid\" name=\"butikId\"");
2992 BeginWriteAttribute("value", " value=\"", 246749, "\"", 246757, 0);
2993 EndWriteAttribute();
2994 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-sagsnr\" name=\"sagsnr\"");
2995 BeginWriteAttribute("value", " value=\"", 246841, "\"", 246849, 0);
2996 EndWriteAttribute();
2997 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\"");
2998 BeginWriteAttribute("value", " value=\"", 246900, "\"", 246956, 1);
2999 WriteAttributeValue("", 246908, Dynamicweb.Context.Current.Request["ProductId"], 246908, 48, false);
3000 EndWriteAttribute();
3001 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
3002 BeginWriteAttribute("value", " value=\"", 247010, "\"", 247018, 0);
3003 EndWriteAttribute();
3004 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
3005 BeginWriteAttribute("value", " value=\"", 247069, "\"", 247077, 0);
3006 EndWriteAttribute();
3007 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
3008 BeginWriteAttribute("value", " value=\"", 247127, "\"", 247135, 0);
3009 EndWriteAttribute();
3010 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
3011 BeginWriteAttribute("value", " value=\"", 247185, "\"", 247193, 0);
3012 EndWriteAttribute();
3013 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>");
3014 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
3015 WriteLiteral("</h2>\r\n <p>");
3016 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:"));
3017 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
3018 BeginWriteAttribute("src", " src=\"", 247555, "\"", 247561, 0);
3019 EndWriteAttribute();
3020 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
3021 </div>
3022 <div class=""col-6"">
3023 <p class=""js-maegler-name""></p>
3024 <p class=""js-maegler-address""></p>
3025 <p class=""js-maegler-phone""></p>
3026 <p class=""js-maegler-mail""></p>
3027 </div>
3028 </div>
3029 <p>");
3030 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
3031 WriteLiteral("</p>\r\n </div>\r\n</div>\r\n\r\n");
3032 WriteLiteral("\r\n");
3033
3034 var areaItem = Pageview.Area.Item;
3035 bool turnstileDisabled = areaItem != null
3036 && areaItem.ContainsKey("DisableTurnstile")
3037 && Converter.ToBoolean(areaItem["DisableTurnstile"]);
3038 bool turnstileEnabled = !turnstileDisabled && RealMaeglerne.Dynamicweb.Config.IsTurnstileConfigured();
3039 WriteLiteral("\r\n");
3040 if (turnstileEnabled)
3041 {
3042 string turnstileSiteKey = RealMaeglerne.Dynamicweb.Config.GetTurnstileSiteKey();
3043 string turnstileAreaId = Converter.ToString(Pageview.Area.ID);
3044 string turnstileLanguage = Pageview.Area.CultureInfo.Name;
3045
3046 WriteLiteral(" <div class=\"js-turnstile-configuration d-none\"\r\n data-site-key=\"");
3047 Write(HtmlEncoder.HtmlAttributeEncode(turnstileSiteKey));
3048 WriteLiteral("\"\r\n data-area-id=\"");
3049 Write(HtmlEncoder.HtmlAttributeEncode(turnstileAreaId));
3050 WriteLiteral("\">\r\n <input type=\"hidden\"\r\n class=\"js-turnstile-language\"");
3051 BeginWriteAttribute("value", "\r\n value=\"", 248930, "\"", 249005, 1);
3052 WriteAttributeValue("", 248954, HtmlEncoder.HtmlAttributeEncode(turnstileLanguage), 248954, 51, false);
3053 EndWriteAttribute();
3054 WriteLiteral(" />\r\n <input type=\"hidden\"\r\n class=\"js-turnstile-validation-message-text\"");
3055 BeginWriteAttribute("value", "\r\n value=\"", 249100, "\"", 249250, 1);
3056 WriteAttributeValue("", 249124, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Turnstile.ValidationMessage", "Bekræft venligst, at du ikke er en robot.")), 249124, 126, false);
3057 EndWriteAttribute();
3058 WriteLiteral(" />\r\n </div>\r\n");
3059 }
3060 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");
3061
3062 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js"));
3063 WriteLiteral(" <script type=\"text/javascript\"");
3064 BeginWriteAttribute("src", " src=\'", 249616, "\'", 249720, 3);
3065 WriteAttributeValue("", 249622, TemplateUrl, 249622, 14, false);
3066 WriteAttributeValue("", 249636, "assets/webpack/js/3rdparty/viamapstrap.js?", 249636, 42, true);
3067 WriteAttributeValue("", 249678, viamapstrapFileInfo.LastWriteTime.Ticks, 249678, 42, false);
3068 EndWriteAttribute();
3069 WriteLiteral(" async></script>\r\n");
3070
3071 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js"));
3072 WriteLiteral(" <script type=\"text/javascript\"");
3073 BeginWriteAttribute("src", " src=\'", 249923, "\'", 250010, 3);
3074 WriteAttributeValue("", 249929, TemplateUrl, 249929, 14, false);
3075 WriteAttributeValue("", 249943, "assets/dist/bundle.app.min.js?", 249943, 30, true);
3076 WriteAttributeValue("", 249973, bundleFileInfo.LastWriteTime.Ticks, 249973, 37, false);
3077 EndWriteAttribute();
3078 WriteLiteral(" async></script>\r\n");
3079 WriteLiteral("\r\n ");
3080 Write(RenderSnippet("JavaScriptBottom"));
3081 WriteLiteral("\r\n\r\n");
3082 if (Context.Current.Request.QueryString["ShowLogin"] == "true")
3083 {
3084 WriteLiteral(" <input class=\"js-showLogin\" value=\"true\" />\r\n");
3085 }
3086 WriteLiteral("\r\n");
3087 if (!string.IsNullOrEmpty(settings_ConduzeId))
3088 {
3089 WriteLiteral(" <script type=\"text/javascript\" id=\"conduze-sdk\"");
3090 BeginWriteAttribute("src", " src=\"", 250334, "\"", 250395, 3);
3091 WriteAttributeValue("", 250340, "https://cdn.conduze.com/", 250340, 24, true);
3092 WriteAttributeValue("", 250364, settings_ConduzeId, 250364, 19, false);
3093 WriteAttributeValue("", 250383, "/tracking.js", 250383, 12, true);
3094 EndWriteAttribute();
3095 WriteLiteral(" async></script>\r\n");
3096 }
3097 WriteLiteral("\r\n");
3098 if (!string.IsNullOrEmpty(settings_Weply))
3099 {
3100 WriteLiteral(" <script");
3101 BeginWriteAttribute("src", " src=\"", 250494, "\"", 250545, 2);
3102 WriteAttributeValue("", 250500, "https://app.weply.chat/widget/", 250500, 30, true);
3103 WriteAttributeValue("", 250530, settings_Weply, 250530, 15, false);
3104 EndWriteAttribute();
3105 WriteLiteral(" async></script>\r\n");
3106 }
3107 WriteLiteral("\r\n</body>\r\n</html>\r\n\r\n");
3108 }
3109 #pragma warning restore 1998
3110
3111 void RenderErhvervsTypeCheckboxes(string productGroupFilter)
3112 {
3113 WriteLiteral(@" <div class=""col-xs-6 col-md-4"">
3114 <div class=""checkbox"">
3115 <label>
3116 <input type=""checkbox"" name=""propertytype"" value=""bolig/erhverv, kombineret erhverv og bolig, byejendom (kontor, butik, beboelse)"" />
3117 <span>Bolig/erhverv</span>
3118 </label>
3119 </div>
3120 <div class=""checkbox"">
3121 <label>
3122 <input type=""checkbox"" name=""propertytype"" value=""erhvervsgrund"" />
3123 <span>Erhvervsgrund</span>
3124 </label>
3125 </div>
3126 <div class=""checkbox"">
3127 <label>
3128 <input type=""checkbox"" name=""propertytype"" value=""boligudlejning"" />
3129 <span>Boligudlejningsejendom</span>
3130 </label>
3131 </div>
3132 <div class=""checkbox"">
3133 <label>
3134 <input type=""checkbox"" name=""propertytype"" value=""kontor, klinik, kontorhotel, showroom, under");
3135 WriteLiteral(@"visningslokaler"" />
3136 <span>Kontor</span>
3137 </label>
3138 </div>
3139 </div>
3140 <div class=""col-xs-6 col-md-4"">
3141 <div class=""checkbox"">
3142 <label>
3143 <input type=""checkbox"" name=""propertytype"" value=""butik / detail, butik / detailhandel"" />
3144 <span>Butik/detailhandel</span>
3145 </label>
3146 </div>
3147 <div class=""checkbox"">
3148 <label>
3149 <input type=""checkbox"" name=""propertytype"" value=""industri / logistik, håndværk, industri, kontor / lager, logistik"" />
3150 <span>Produktion/lager</span>
3151 </label>
3152 </div>
3153 <div class=""checkbox"">
3154 <label>
3155 <input type=""checkbox"" name=""propertytype"" value=""hotel - kursusejendom, restaurant"" />
3156 <span>Hotel og restaurant</span>
3157 </label>
3158 </div>
3159 <div c");
3160 WriteLiteral(@"lass=""checkbox"">
3161 <label>
3162 <input type=""checkbox"" name=""propertytype"" value=""projekt ejendom"" />
3163 <span>Projektejendom</span>
3164 </label>
3165 </div>
3166 </div>
3167 <div class=""col-xs-6 col-md-4"">
3168 <div class=""checkbox"">
3169 <label>
3170 <input type=""checkbox"" name=""propertytype"" value=""andet"" />
3171 <span>Andet</span>
3172 </label>
3173 </div>
3174 </div>
3175 ");
3176 WriteLiteral(" <input type=\"hidden\" name=\"propertycategory\" value=\"erhverv, udlejning\" />\r\n <input type=\"hidden\" name=\"filtrering\"");
3177 BeginWriteAttribute("value", " value=\"", 3445, "\"", 3472, 1);
3178 WriteAttributeValue("", 3453, productGroupFilter, 3453, 19, false);
3179 EndWriteAttribute();
3180 WriteLiteral(" />\r\n");
3181 }
3182 void RenderBoligtypeCheckboxes()
3183 {
3184 WriteLiteral(@" <div class=""col-6 col-md-4"">
3185 <div class=""checkbox"">
3186 <label>
3187 <input type=""checkbox"" name=""propertytype"" value=""villa"" />
3188 <span>Villa</span>
3189 </label>
3190 </div>
3191 <div class=""checkbox"">
3192 <label>
3193 <input type=""checkbox"" name=""propertytype"" value=""rækkehus"" />
3194 <span>Rækkehus</span>
3195 </label>
3196 </div>
3197 <div class=""checkbox"">
3198 <label>
3199 <input type=""checkbox"" name=""propertytype"" value=""villalejlighed"" />
3200 <span>Villalejlighed</span>
3201 </label>
3202 </div>
3203 <div class=""checkbox"">
3204 <label>
3205 <input type=""checkbox"" name=""propertytype"" value=""andelsbolig"" />
3206 <span>Andelsbolig</span>
3207 </label>
3208 </div>
3209 </div>
3210 <div class=""co");
3211 WriteLiteral(@"l-6 col-md-4"">
3212 <div class=""checkbox"">
3213 <label>
3214 <input type=""checkbox"" name=""propertytype"" value=""fritidshus, fritidsbolig"" />
3215 <span>Fritidsbolig</span>
3216 </label>
3217 </div>
3218 <div class=""checkbox"">
3219 <label>
3220 <input type=""checkbox"" name=""propertytype"" value=""ejerlejlighed"" class=""specialOption"" data-disable-slider=""#grundareal"" data-disable-slider-ranges=""#grundarealmin,#grundarealmax"" />
3221 <span>Ejerlejlighed</span>
3222 </label>
3223 </div>
3224 <div class=""checkbox"">
3225 <label>
3226 <input type=""checkbox"" name=""propertytype"" value=""helårsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" />
3227 <span>Helårsgrund</span>
3228 </label>
3229 </div>
3230 <div ");
3231 WriteLiteral(@"class=""checkbox"">
3232 <label>
3233 <input type=""checkbox"" name=""propertytype"" value=""fritidsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" />
3234 <span>Fritidsgrund</span>
3235 </label>
3236 </div>
3237 </div>
3238 <div class=""col-6 col-md-4"">
3239 <div class=""checkbox"">
3240 <label>
3241 <input type=""checkbox"" name=""propertytype"" value=""landejendom, lystejendom"" class=""specialOption"" data-disable-checkbox=""true"" />
3242 <span>Landejendom</span>
3243 </label>
3244 </div>
3245 <div class=""checkbox"">
3246 <label>
3247 <input type=""checkbox"" name=""propertytype"" value=""erhverv"" class=""specialOption"" data-disable-checkbox=""true"" data-disable-slider=""#roomsslider"" data-disable-slider-ranges=""#roomsmin"" />
3248 <span>Erhverv<");
3249 WriteLiteral("/span>\r\n </label>\r\n </div>\r\n </div>\r\n");
3250 }
3251
3252 void RenderChecked(string queryString)
3253 {
3254 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString)
3255 {
3256 Write("checked");
3257
3258 }
3259 }
3260
3261 void RenderBoligtypeCheckboxesDropdown()
3262 {
3263 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){
3264 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" },
3265 { "Andelsbolig", "andelsbolig" }
3266 };
3267 foreach (KeyValuePair<string, string> type in propertyTypes)
3268 {
3269 bool ischecked = false;
3270 string[] propertytypeSplit = new string[0];
3271 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
3272 {
3273 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
3274 }
3275 foreach (var propertytypeParams in propertytypeSplit)
3276 {
3277 if (propertytypeParams == type.Value)
3278 {
3279 ischecked = true;
3280 }
3281 }
3282 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3283 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3284 WriteLiteral("\r\n <input type=\"checkbox\" name=\"propertytype\"");
3285 BeginWriteAttribute("value", " value=\"", 8068, "\"", 8087, 1);
3286 WriteAttributeValue("", 8076, type.Value, 8076, 11, false);
3287 EndWriteAttribute();
3288 WriteLiteral(" class=\"js-input-check datavalue js-datavalue js-count\" data-val=\"");
3289 Write(type.Key);
3290 WriteLiteral("\" onchange=\"submitFilter()\"");
3291 BeginWriteAttribute("checked", " checked=\"", 8190, "\"", 8210, 1);
3292 WriteAttributeValue("", 8200, ischecked, 8200, 10, false);
3293 EndWriteAttribute();
3294 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3295 }
3296
3297 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){
3298 { "Fritidsbolig", "fritidshus, fritidsbolig" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" },
3299 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" }
3300 };
3301 foreach (KeyValuePair<string, string> type in propertyTypes2)
3302 {
3303 bool ischecked = false;
3304 string[] propertytypeSplit2 = new string[0];
3305 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
3306 {
3307 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
3308 }
3309 foreach (var propertytypeParams in propertytypeSplit2)
3310 {
3311 if (propertytypeParams == type.Value)
3312 {
3313 ischecked = true;
3314 }
3315 }
3316 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3317 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3318 WriteLiteral("\r\n");
3319 if (type.Value == "ejerlejlighed")
3320 {
3321 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3322 BeginWriteAttribute("value", " value=\"", 9634, "\"", 9653, 1);
3323 WriteAttributeValue("", 9642, type.Value, 9642, 11, false);
3324 EndWriteAttribute();
3325 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#grundareal\" data-disable-slider-ranges=\"#grundarealmin,#grundarealmax\" data-val=\"");
3326 Write(type.Key);
3327 WriteLiteral("\" onchange=\"submitFilter()\"");
3328 BeginWriteAttribute("checked", " checked=\"", 9827, "\"", 9847, 1);
3329 WriteAttributeValue("", 9837, ischecked, 9837, 10, false);
3330 EndWriteAttribute();
3331 WriteLiteral(" />\r\n");
3332 }
3333 else if (type.Value == "helårsgrund")
3334 {
3335 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3336 BeginWriteAttribute("value", " value=\"", 10024, "\"", 10043, 1);
3337 WriteAttributeValue("", 10032, type.Value, 10032, 11, false);
3338 EndWriteAttribute();
3339 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\"");
3340 Write(type.Key);
3341 WriteLiteral("\" onchange=\"submitFilter()\"");
3342 BeginWriteAttribute("checked", " checked=\"", 10240, "\"", 10260, 1);
3343 WriteAttributeValue("", 10250, ischecked, 10250, 10, false);
3344 EndWriteAttribute();
3345 WriteLiteral(" />\r\n");
3346 }
3347 else if (type.Value == "fritidsgrund")
3348 {
3349 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3350 BeginWriteAttribute("value", " value=\"", 10438, "\"", 10457, 1);
3351 WriteAttributeValue("", 10446, type.Value, 10446, 11, false);
3352 EndWriteAttribute();
3353 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\"");
3354 Write(type.Key);
3355 WriteLiteral("\" onchange=\"submitFilter()\"");
3356 BeginWriteAttribute("checked", " checked=\"", 10654, "\"", 10674, 1);
3357 WriteAttributeValue("", 10664, ischecked, 10664, 10, false);
3358 EndWriteAttribute();
3359 WriteLiteral(" />\r\n");
3360 }
3361 else
3362 {
3363 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3364 BeginWriteAttribute("value", " value=\"", 10818, "\"", 10837, 1);
3365 WriteAttributeValue("", 10826, type.Value, 10826, 11, false);
3366 EndWriteAttribute();
3367 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\"");
3368 Write(type.Key);
3369 WriteLiteral("\" onchange=\"submitFilter()\"");
3370 BeginWriteAttribute("checked", " checked=\"", 10918, "\"", 10938, 1);
3371 WriteAttributeValue("", 10928, ischecked, 10928, 10, false);
3372 EndWriteAttribute();
3373 WriteLiteral(" />\r\n");
3374 }
3375 WriteLiteral(" <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3376 }
3377 }
3378
3379 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false)
3380 {
3381 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3382 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" },
3383 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" }
3384 };
3385 var submitonchange = "";
3386 if (submitOnChange)
3387 {
3388 submitonchange = "onchange='submitFilter()'";
3389 }
3390
3391 foreach (KeyValuePair<string, string> type in erhverType)
3392 {
3393 string ischecked = "";
3394 string[] olineParamsSplit = new string[0];
3395 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
3396 {
3397 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
3398 }
3399 foreach (var olineParams in olineParamsSplit)
3400 {
3401 if (olineParams == type.Value)
3402 {
3403 ischecked = "checked";
3404 }
3405 }
3406
3407 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3408 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3409 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\"");
3410 BeginWriteAttribute("value", " value=\"", 12582, "\"", 12601, 1);
3411 WriteAttributeValue("", 12590, type.Value, 12590, 11, false);
3412 EndWriteAttribute();
3413 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\"");
3414 Write(type.Key);
3415 WriteLiteral("\" ");
3416 Write(submitonchange);
3417 WriteLiteral(" ");
3418 Write(ischecked);
3419 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3420 }
3421 }
3422
3423 void RenderBoligTypeErhvervInvest(bool submitOnChange = false)
3424 {
3425 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3426 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" },
3427 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" }
3428 };
3429
3430 foreach (KeyValuePair<string, string> type in erhverType)
3431 {
3432 bool ischecked = false;
3433 string[] olineParamsSplit = new string[0];
3434 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
3435 {
3436 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
3437 }
3438 foreach (var olineParams in olineParamsSplit)
3439 {
3440 if (olineParams == type.Value)
3441 {
3442 ischecked = true;
3443 }
3444 }
3445
3446 WriteLiteral(" <li>\r\n <label class=\"checkbox-container\">\r\n ");
3447 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3448 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\"");
3449 BeginWriteAttribute("value", " value=\"", 14192, "\"", 14211, 1);
3450 WriteAttributeValue("", 14200, type.Value, 14200, 11, false);
3451 EndWriteAttribute();
3452 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\"");
3453 Write(type.Key);
3454 WriteLiteral("\" onchange=\"submitFilter()\"");
3455 BeginWriteAttribute("checked", " checked=\"", 14292, "\"", 14312, 1);
3456 WriteAttributeValue("", 14302, ischecked, 14302, 10, false);
3457 EndWriteAttribute();
3458 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3459 }
3460 }
3461 int GetWebsiteSettingsPageId(string pageSysName)
3462 {
3463 int sideId = 0;
3464
3465 var pw = Dynamicweb.Frontend.PageView.Current();
3466
3467 string settingsItemId = "1";
3468
3469 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true")
3470 {
3471 settingsItemId = "2";
3472 }
3473
3474 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId);
3475
3476 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName))
3477 {
3478 return sideId;
3479 }
3480
3481 string boligsideLink = settingsItem[pageSysName] as String;
3482 string linkPrefix = "Default.aspx?ID=";
3483
3484 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
3485 {
3486 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
3487 }
3488
3489 return sideId;
3490 }
3491
3492 int GetPageSettingsPageId(string pageSysName)
3493 {
3494 int sideId = 0;
3495
3496 var pw = Dynamicweb.Frontend.PageView.Current();
3497
3498 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName))
3499 {
3500 return sideId;
3501 }
3502
3503 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String;
3504 string linkPrefix = "Default.aspx?ID=";
3505
3506 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
3507 {
3508 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
3509 }
3510
3511 return sideId;
3512 }
3513 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname)
3514 {
3515 WriteLiteral(" <select");
3516 BeginWriteAttribute("class", " class=\"", 16255, "\"", 16310, 5);
3517 WriteAttributeValue("", 16263, "form-control", 16263, 12, true);
3518 WriteAttributeValue(" ", 16275, "d-block", 16276, 8, true);
3519 WriteAttributeValue(" ", 16283, "d-lg-none", 16284, 10, true);
3520 WriteAttributeValue(" ", 16293, "mb-10", 16294, 6, true);
3521 WriteAttributeValue(" ", 16299, className, 16300, 10, false);
3522 EndWriteAttribute();
3523 WriteLiteral(" onchange=\"submitFilter()\"");
3524 BeginWriteAttribute("name", " name=\"", 16337, "\"", 16354, 1);
3525 WriteAttributeValue("", 16344, inputname, 16344, 10, false);
3526 EndWriteAttribute();
3527 WriteLiteral(">\r\n <option selected=\"true\" disabled=\"disabled\">");
3528 Write(Translate("Smartpage:Search.Placeholder." + name + "", "" + name + ""));
3529 WriteLiteral("</option>\r\n\r\n");
3530 for (var i = 0; i <= max; i += step)
3531 {
3532 var selected = string.Empty;
3533 var current = string.Empty;
3534 if (i == max)
3535 {
3536 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
3537 {
3538 WriteLiteral(" <option");
3539 BeginWriteAttribute("value", " value=\"", 16950, "\"", 16960, 1);
3540 WriteAttributeValue("", 16958, i, 16958, 2, false);
3541 EndWriteAttribute();
3542 WriteLiteral(" data-value=\'");
3543 Write(Convert.ToInt32(i).ToString("N0"));
3544 WriteLiteral("\' selected=\"selected\">");
3545 Write(Convert.ToInt32(i).ToString("N0"));
3546 WriteLiteral("+</option>\r\n");
3547 }
3548 else
3549 {
3550 WriteLiteral(" <option");
3551 BeginWriteAttribute("value", " value=\"", 17179, "\"", 17189, 1);
3552 WriteAttributeValue("", 17187, i, 17187, 2, false);
3553 EndWriteAttribute();
3554 WriteLiteral(" data-value=\'");
3555 Write(Convert.ToInt32(i).ToString("N0"));
3556 WriteLiteral("\'>");
3557 Write(Convert.ToInt32(i).ToString("N0"));
3558 WriteLiteral("+</option>\r\n");
3559 }
3560 }
3561 else
3562 {
3563 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
3564 {
3565 WriteLiteral(" <option");
3566 BeginWriteAttribute("value", " value=\"", 17613, "\"", 17623, 1);
3567 WriteAttributeValue("", 17621, i, 17621, 2, false);
3568 EndWriteAttribute();
3569 WriteLiteral(" data-value=\'");
3570 Write(Convert.ToInt32(i).ToString("N0"));
3571 WriteLiteral("\' selected=\"selected\">");
3572 Write(Convert.ToInt32(i).ToString("N0"));
3573 WriteLiteral("</option>\r\n");
3574 }
3575 else
3576 {
3577 WriteLiteral(" <option");
3578 BeginWriteAttribute("value", " value=\"", 17841, "\"", 17851, 1);
3579 WriteAttributeValue("", 17849, i, 17849, 2, false);
3580 EndWriteAttribute();
3581 WriteLiteral(" data-value=\'");
3582 Write(Convert.ToInt32(i).ToString("N0"));
3583 WriteLiteral("\'>");
3584 Write(Convert.ToInt32(i).ToString("N0"));
3585 WriteLiteral("</option>\r\n");
3586 }
3587 }
3588 }
3589 WriteLiteral(" </select>\r\n");
3590 }
3591
3592 void RenderTopFilter(string parameter)
3593 {
3594 if (parameter == "pricemin" || parameter == "pricemax")
3595 {
3596 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"]))
3597 {
3598 if (parameter == "pricemin")
3599 {
3600 Write("<div class='search-terms' id='priceFilter'>");
3601 Write("Pris ");
3602 Write(Dynamicweb.Context.Current.Request[parameter]);
3603
3604 }
3605
3606 else
3607 {
3608 Write(" - ");
3609 Write(Dynamicweb.Context.Current.Request[parameter]);
3610 Write(" kr.");
3611 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"pricemin,pricemax\"></i>\r\n");
3612 Write("</div>");
3613
3614 }
3615 }
3616 }
3617
3618 else if (parameter == "subsidymin" || parameter == "subsidymax")
3619 {
3620 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"]))
3621 {
3622 if (parameter == "subsidymin")
3623 {
3624 Write("<div class='search-terms' id='subsidyFilter'>");
3625 Write("Årlig leje ");
3626 Write(Dynamicweb.Context.Current.Request[parameter]);
3627
3628 }
3629
3630 else
3631 {
3632 Write(" - ");
3633 Write(Dynamicweb.Context.Current.Request[parameter]);
3634 Write(" kr.");
3635 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidymin,subsidymax\"></i>\r\n");
3636 Write("</div>");
3637
3638 }
3639 }
3640 }
3641 else if (parameter == "etagearealmin" || parameter == "etagearealmax")
3642 {
3643 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"]))
3644 {
3645 if (parameter == "etagearealmin")
3646 {
3647 Write("<div class='search-terms' id='etagearealFilter'>");
3648 Write("Etageareal ");
3649 Write(Dynamicweb.Context.Current.Request[parameter]);
3650
3651 }
3652
3653 else
3654 {
3655 Write(" - ");
3656 Write(Dynamicweb.Context.Current.Request[parameter]);
3657 Write(" kvm.");
3658 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"etagearealmin,etagearealmax\"></i>\r\n");
3659 Write("</div>");
3660
3661 }
3662 }
3663 }
3664
3665 else if (parameter == "grundarealmin" || parameter == "grundarealmax")
3666 {
3667 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"]))
3668 {
3669 if (parameter == "grundarealmin")
3670 {
3671 Write("<div class='search-terms' id='grundarealFilter'>");
3672 Write("Grundareal ");
3673 Write(Dynamicweb.Context.Current.Request[parameter]);
3674
3675 }
3676
3677 else
3678 {
3679 Write(" - ");
3680 Write(Dynamicweb.Context.Current.Request[parameter]);
3681 Write(" kvm.");
3682 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"grundarealmin,grundarealmax\"></i>\r\n");
3683 Write("</div>");
3684
3685 }
3686 }
3687 }
3688
3689 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax")
3690 {
3691 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"]))
3692 {
3693 if (parameter == "subsidykvmmin")
3694 {
3695 Write("<div class='search-terms' id='subsidykvmFilter'>");
3696 Write("Årlig leje kvm ");
3697 Write(Dynamicweb.Context.Current.Request[parameter]);
3698
3699 }
3700
3701 else
3702 {
3703 Write(" - ");
3704 Write(Dynamicweb.Context.Current.Request[parameter]);
3705 Write(" kr.");
3706 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidykvmmin,subsidykvmmax\"></i>\r\n");
3707 Write("</div>");
3708
3709 }
3710 }
3711 }
3712
3713 else if (parameter == "olinecategory")
3714 {
3715
3716 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"]))
3717 {
3718 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3719 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" },
3720 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"},
3721 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" },
3722 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" }
3723 };
3724
3725
3726 foreach (var er in erhverType)
3727 {
3728 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
3729 {
3730 WriteLiteral(" <div class=\"search-terms\"");
3731 BeginWriteAttribute("id", " id=\"", 23021, "\"", 23036, 1);
3732 WriteAttributeValue("", 23026, parameter, 23026, 10, false);
3733 EndWriteAttribute();
3734 WriteLiteral(">\r\n ");
3735 Write(er.Value);
3736 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3737 Write(parameter);
3738 WriteLiteral("\" data-val=\"");
3739 Write(er.Key);
3740 WriteLiteral("\"></i>\r\n </div>\r\n");
3741 }
3742 }
3743 }
3744 }
3745 else if (parameter == "search")
3746 {
3747 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"]))
3748 {
3749 WriteLiteral(" <div class=\"search-terms\"");
3750 BeginWriteAttribute("id", " id=\"", 23484, "\"", 23499, 1);
3751 WriteAttributeValue("", 23489, parameter, 23489, 10, false);
3752 EndWriteAttribute();
3753 WriteLiteral(">\r\n ");
3754 Write(Dynamicweb.Context.Current.Request[parameter]);
3755 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3756 Write(parameter);
3757 WriteLiteral("\"></i>\r\n </div>\r\n");
3758 }
3759 }
3760 else
3761 {
3762 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]))
3763 {
3764 Dictionary<string, string>
3765 ubudsform = new Dictionary<string, string>
3766 (){
3767 {"salg", "Salg" }, { "leje","Leje" }
3768 };
3769
3770 foreach (var er in ubudsform)
3771 {
3772 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
3773 {
3774 WriteLiteral(" <div class=\"search-terms\"");
3775 BeginWriteAttribute("id", " id=\"", 24648, "\"", 24663, 1);
3776 WriteAttributeValue("", 24653, parameter, 24653, 10, false);
3777 EndWriteAttribute();
3778 WriteLiteral(">\r\n ");
3779 Write(er.Value);
3780 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3781 Write(parameter);
3782 WriteLiteral("\" data-val=\"");
3783 Write(er.Key);
3784 WriteLiteral("\"></i>\r\n </div>\r\n");
3785 }
3786 }
3787
3788
3789 }
3790 }
3791 }
3792
3793 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString)
3794 {
3795 var selected = "";
3796 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue)
3797 {
3798 selected = "selected";
3799 }
3800
3801 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected);
3802
3803 Write(current);
3804
3805 }
3806
3807 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "")
3808 {
3809 WriteLiteral(" <div");
3810 BeginWriteAttribute("class", " class=\"", 25667, "\"", 25713, 3);
3811 WriteAttributeValue("", 25675, "main-search-form", 25675, 16, true);
3812 WriteAttributeValue(" ", 25691, "frontpage", 25692, 10, true);
3813 WriteAttributeValue(" ", 25701, cssClasses, 25702, 11, false);
3814 EndWriteAttribute();
3815 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>");
3816 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
3817 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>");
3818 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg"));
3819 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\"");
3820 BeginWriteAttribute("value", " value=\'", 26428, "\'", 26449, 1);
3821 WriteAttributeValue("", 26436, searchPageId, 26436, 13, false);
3822 EndWriteAttribute();
3823 WriteLiteral(@" id=""searchPageId-frontpage"" disabled=""disabled"" />
3824 <div class=""row form-wrapper no-gutters"">
3825
3826 <div class=""col-xs-12 col-md-5 col-searchbar"">
3827 <div class=""searchbar"">
3828 <input type=""text""");
3829 BeginWriteAttribute("name", " name=\"", 26727, "\"", 26754, 1);
3830 WriteAttributeValue("", 26734, querySearchNameAttr, 26734, 20, false);
3831 EndWriteAttribute();
3832 WriteLiteral(" id=\"searchfield-frontpage\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\"");
3833 BeginWriteAttribute("value", " value=\"", 26867, "\"", 26945, 1);
3834 WriteAttributeValue("", 26875, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 26875, 70, false);
3835 EndWriteAttribute();
3836 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom-frontpage\" name=\"zipcodefrom\"");
3837 BeginWriteAttribute("value", " value=\"", 27045, "\"", 27128, 1);
3838 WriteAttributeValue("", 27053, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 27053, 75, false);
3839 EndWriteAttribute();
3840 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto-frontpage\" name=\"zipcodeto\"");
3841 BeginWriteAttribute("value", " value=\"", 27224, "\"", 27305, 1);
3842 WriteAttributeValue("", 27232, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 27232, 73, false);
3843 EndWriteAttribute();
3844 WriteLiteral(@" />
3845 </div>
3846 </div>
3847 <div class=""col-xs-12 col-md-5"">
3848 <div class=""row no-gutters"">
3849 <div class=""col-xs-12 col-md-6 input-col"">
3850 <div class=""dropdown w-overlay"">
3851 <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"">
3852 ");
3853 Write(Translate("Smartpage:Search.Boligtype", "Boligtype"));
3854 WriteLiteral(@"
3855 </button>
3856 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
3857 <ul class=""bolig-dropdown list-unstyled"">
3858 ");
3859
3860 RenderBoligtypeCheckboxesDropdown();
3861 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">");
3862 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
3863 WriteLiteral(@"</button>
3864 </div>
3865
3866 </div>
3867
3868 </div>
3869 <div class=""col-xs-12 col-md-6 input-col"">
3870 <div class=""dropdown w-overlay"">
3871 <button class=""btn btn-dropdown dropdown-toggle reverse position-absolute-md"" type=""button"" id=""Pris-frontpage"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
3872 ");
3873 Write(Translate("Smartpage:Search.Pris", "Pris"));
3874 WriteLiteral(@"
3875 </button>
3876 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris"">
3877 <input type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input""");
3878 BeginWriteAttribute("placeholder", " placeholder=\'", 29484, "\'", 29560, 1);
3879 WriteAttributeValue("", 29498, Translate("Smartpage:Search.Placeholder.MinPris","Min. pris"), 29498, 62, false);
3880 EndWriteAttribute();
3881 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3882 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"));
3883 WriteLiteral("</option>\r\n");
3884 for (var i = 0; i <= 10000000; i += 100000)
3885 {
3886 if (i == 10000000)
3887 {
3888 WriteLiteral(" <option");
3889 BeginWriteAttribute("value", " value=\"", 30169, "\"", 30179, 1);
3890 WriteAttributeValue("", 30177, i, 30177, 2, false);
3891 EndWriteAttribute();
3892 WriteLiteral(" data-value=\'");
3893 Write(Convert.ToInt32(i).ToString("N0"));
3894 WriteLiteral("+\'>");
3895 Write(Convert.ToInt32(i).ToString("N0"));
3896 WriteLiteral("+</option>\r\n");
3897 }
3898 else
3899 {
3900 WriteLiteral(" <option");
3901 BeginWriteAttribute("value", " value=\"", 30491, "\"", 30501, 1);
3902 WriteAttributeValue("", 30499, i, 30499, 2, false);
3903 EndWriteAttribute();
3904 WriteLiteral(" data-value=\'");
3905 Write(Convert.ToInt32(i).ToString("N0"));
3906 WriteLiteral("\'>");
3907 Write(Convert.ToInt32(i).ToString("N0"));
3908 WriteLiteral("</option>\r\n");
3909 }
3910 }
3911 WriteLiteral(@" </select>
3912 <input type=""hidden"" id=""pricemin-frontpage"" name=""pricemin"" />
3913
3914 <input type=""text"" class=""form-control js-auto-thousand js-pricemax-frontpage-input""");
3915 BeginWriteAttribute("placeholder", " placeholder=\'", 30976, "\'", 31052, 1);
3916 WriteAttributeValue("", 30990, Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris"), 30990, 62, false);
3917 EndWriteAttribute();
3918 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3919 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"));
3920 WriteLiteral("</option>\r\n");
3921 for (var i = 0; i <= 10000000; i += 100000)
3922 {
3923 if (i == 10000000)
3924 {
3925 WriteLiteral(" <option");
3926 BeginWriteAttribute("value", " value=\"", 31655, "\"", 31665, 1);
3927 WriteAttributeValue("", 31663, i, 31663, 2, false);
3928 EndWriteAttribute();
3929 WriteLiteral(" data-value=\'");
3930 Write(Convert.ToInt32(i).ToString("N0"));
3931 WriteLiteral("+\'>");
3932 Write(Convert.ToInt32(i).ToString("N0"));
3933 WriteLiteral("+</option>\r\n");
3934 }
3935 else
3936 {
3937 WriteLiteral(" <option");
3938 BeginWriteAttribute("value", " value=\"", 31977, "\"", 31987, 1);
3939 WriteAttributeValue("", 31985, i, 31985, 2, false);
3940 EndWriteAttribute();
3941 WriteLiteral(" data-value=\'");
3942 Write(Convert.ToInt32(i).ToString("N0"));
3943 WriteLiteral("\'>");
3944 Write(Convert.ToInt32(i).ToString("N0"));
3945 WriteLiteral("</option>\r\n");
3946 }
3947 }
3948 WriteLiteral(" </select>\r\n <input type=\"hidden\" id=\"pricemax-frontpage\" name=\"pricemax\" />\r\n <button class=\"btn btn-primary js-close-dropdown mt-3\">");
3949 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
3950 WriteLiteral(@"</button>
3951 </div>
3952 </div>
3953 </div>
3954 </div>
3955 </div>
3956 <div class=""col-xs-12 col-md-2 d-none d-md-block"">
3957 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
3958 Write(Translate("Smartpage:Search.Søg", "Søg"));
3959 WriteLiteral(@"</button>
3960 </div>
3961 </div>
3962
3963 <div class=""row moresearch-btn no-gutters"">
3964 <div class=""col-sm-12"">
3965 <div class=""row align-items-center no-gutters"">
3966 <div class=""col-12 col-md-4"">
3967 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch"" aria-expanded=""false"" aria-controls=""moreSearch"">
3968 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open"">");
3969 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder"));
3970 WriteLiteral("</span> <span class=\"open\"><span class=\"js-filter-count\">0</span> ");
3971 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt"));
3972 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\">");
3973 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg"));
3974 WriteLiteral("</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"collapse\" id=\"moreSearch\">\r\n <h4 class=\"mt-20\"><b>");
3975 Write(Translate("Smartpage:Search.Bolig", "Bolig"));
3976 WriteLiteral(@"</b></h4>
3977 <div class=""row align-items-end mb-30"">
3978 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
3979 <div class=""filter-container row"">
3980 <label class=""d-block col-12"">");
3981 Write(Translate("Smartpage:Search.Boligareal", "Boligareal"));
3982 WriteLiteral(@"</label>
3983 <div class=""col-6 pr-sm-0 pr-2"">
3984 <input type=""text"" name=""boligarealmin"" id=""boligarealmin-frontpage"" class=""form-control js-boligarealmin-frontpage-input js-count""");
3985 BeginWriteAttribute("placeholder", " placeholder=\'", 34853, "\'", 34925, 1);
3986 WriteAttributeValue("", 34867, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 34867, 58, false);
3987 EndWriteAttribute();
3988 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3989 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
3990 WriteLiteral("</option>\r\n");
3991 for (var i = 0; i <= 300; i += 10)
3992 {
3993 if (i == 300)
3994 {
3995 WriteLiteral(" <option");
3996 BeginWriteAttribute("value", " value=\"", 35532, "\"", 35542, 1);
3997 WriteAttributeValue("", 35540, i, 35540, 2, false);
3998 EndWriteAttribute();
3999 WriteLiteral(">");
4000 Write(i);
4001 WriteLiteral("+</option>\r\n");
4002 }
4003 else
4004 {
4005 WriteLiteral(" <option");
4006 BeginWriteAttribute("value", " value=\"", 35789, "\"", 35799, 1);
4007 WriteAttributeValue("", 35797, i, 35797, 2, false);
4008 EndWriteAttribute();
4009 WriteLiteral(">");
4010 Write(i);
4011 WriteLiteral("</option>\r\n");
4012 }
4013 }
4014 WriteLiteral(@" </select>
4015 </div>
4016 <div class=""col-6 pl-sm-0 pl-2"">
4017 <input type=""text"" name=""boligarealmax"" id=""boligarealmax-frontpage"" class=""form-control js-boligarealmax-frontpage-input js-count""");
4018 BeginWriteAttribute("placeholder", " placeholder=\'", 36272, "\'", 36344, 1);
4019 WriteAttributeValue("", 36286, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 36286, 58, false);
4020 EndWriteAttribute();
4021 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4022 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
4023 WriteLiteral("</option>\r\n");
4024 for (var i = 0; i <= 300; i += 10)
4025 {
4026 if (i == 300)
4027 {
4028 WriteLiteral(" <option");
4029 BeginWriteAttribute("value", " value=\"", 36951, "\"", 36961, 1);
4030 WriteAttributeValue("", 36959, i, 36959, 2, false);
4031 EndWriteAttribute();
4032 WriteLiteral(">");
4033 Write(i);
4034 WriteLiteral("+</option>\r\n");
4035 }
4036 else
4037 {
4038 WriteLiteral(" <option");
4039 BeginWriteAttribute("value", " value=\"", 37208, "\"", 37218, 1);
4040 WriteAttributeValue("", 37216, i, 37216, 2, false);
4041 EndWriteAttribute();
4042 WriteLiteral(">");
4043 Write(i);
4044 WriteLiteral("</option>\r\n");
4045 }
4046 }
4047 WriteLiteral(@" </select>
4048 </div>
4049 </div>
4050 </div>
4051 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
4052 <div class=""filter-container row"">
4053 <label class=""d-block col-12"">");
4054 Write(Translate("Smartpage:Search.Grundareal", "Grundareal"));
4055 WriteLiteral(@"</label>
4056 <div class=""col-6 pr-sm-0 pr-2"">
4057 <input type=""text"" name=""grundarealmin"" id=""grundarealmin-frontpage"" class=""form-control js-grundarealmin-frontpage-input js-count""");
4058 BeginWriteAttribute("placeholder", " placeholder=\'", 38067, "\'", 38139, 1);
4059 WriteAttributeValue("", 38081, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 38081, 58, false);
4060 EndWriteAttribute();
4061 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4062 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
4063 WriteLiteral("</option>\r\n");
4064 for (var i = 0; i <= 10000; i += 100)
4065 {
4066 if (i == 10000)
4067 {
4068 WriteLiteral(" <option");
4069 BeginWriteAttribute("value", " value=\"", 38751, "\"", 38761, 1);
4070 WriteAttributeValue("", 38759, i, 38759, 2, false);
4071 EndWriteAttribute();
4072 WriteLiteral(">");
4073 Write(i);
4074 WriteLiteral("+</option>\r\n");
4075 }
4076 else
4077 {
4078 WriteLiteral(" <option");
4079 BeginWriteAttribute("value", " value=\"", 39008, "\"", 39018, 1);
4080 WriteAttributeValue("", 39016, i, 39016, 2, false);
4081 EndWriteAttribute();
4082 WriteLiteral(">");
4083 Write(i);
4084 WriteLiteral("</option>\r\n");
4085 }
4086 }
4087 WriteLiteral(@" </select>
4088 </div>
4089 <div class=""col-6 pl-sm-0 pl-2"">
4090 <input type=""text"" name=""grundarealmax"" id=""grundarealmax-frontpage"" class=""form-control js-grundarealmax-frontpage-input js-count""");
4091 BeginWriteAttribute("placeholder", " placeholder=\'", 39491, "\'", 39563, 1);
4092 WriteAttributeValue("", 39505, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 39505, 58, false);
4093 EndWriteAttribute();
4094 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4095 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
4096 WriteLiteral("</option>\r\n");
4097 for (var i = 0; i <= 10000; i += 100)
4098 {
4099 if (i == 10000)
4100 {
4101 WriteLiteral(" <option");
4102 BeginWriteAttribute("value", " value=\"", 40175, "\"", 40185, 1);
4103 WriteAttributeValue("", 40183, i, 40183, 2, false);
4104 EndWriteAttribute();
4105 WriteLiteral(">");
4106 Write(i);
4107 WriteLiteral("+</option>\r\n");
4108 }
4109 else
4110 {
4111 WriteLiteral(" <option");
4112 BeginWriteAttribute("value", " value=\"", 40432, "\"", 40442, 1);
4113 WriteAttributeValue("", 40440, i, 40440, 2, false);
4114 EndWriteAttribute();
4115 WriteLiteral(">");
4116 Write(i);
4117 WriteLiteral("</option>\r\n");
4118 }
4119 }
4120 WriteLiteral(@" </select>
4121 </div>
4122 </div>
4123 </div>
4124 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
4125 <div class=""filter-container row"">
4126 <label class=""d-block col-12"">Antal rum</label>
4127
4128 <div class=""col-6 pr-sm-0 pr-2"">
4129 <select name=""roomsmin"" id=""roomsmin-frontpage"" class=""form-control reverse js-count"">
4130 <option selected=""true"" disabled=""disabled"">");
4131 Write(Translate("Smartpage:Search.Placeholder.Min", "Min"));
4132 WriteLiteral(@"</option>
4133 <option value=""1"">1</option>
4134 <option value=""2"">2</option>
4135 <option value=""3"">3</option>
4136 <option value=""4"">4</option>
4137 <option value=""5+"">5+</option>
4138 </select>
4139 </div>
4140 <div class=""col-6 pl-sm-0 pl-2"">
4141 <select name=""roomsmax"" id=""roomsmax-frontpage"" class=""form-control reverse js-count"">
4142 <option selected=""true"" disabled=""disabled"">");
4143 Write(Translate("Smartpage:Search.Placeholder.Max", "Max"));
4144 WriteLiteral(@"</option>
4145 <option value=""1"">1</option>
4146 <option value=""2"">2</option>
4147 <option value=""3"">3</option>
4148 <option value=""4"">4</option>
4149 <option value=""5+"">");
4150 Write(Translate("Smartpage:Rooms.5", "5"));
4151 WriteLiteral(@"</option>
4152 </select>
4153 </div>
4154 </div>
4155 </div>
4156 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
4157 <div class=""row"">
4158 <div class=""col-12"">
4159 <div class=""filter-container"">
4160 <label class=""d-block"">Energimærke</label>
4161 <select name=""energylabel"" id=""energylabel-frontpage"" class=""form-control reverse js-count"">
4162 <option disabled selected=""selected"">");
4163 Write(Translate("Smartpage:Search.Vælg", "Vælg"));
4164 WriteLiteral(@"</option>
4165 <option value=""01"">G</option>
4166 <option value=""02"">F</option>
4167 <option value=""03"">E</option>
4168 <option value=""04"">D</option>
4169 <option value=""05"">C</option>
4170 <option value=""06"">B</option>
4171 <option value=""07"">A</option>
4172 <option value=""08"">A2010</option>
4173 <option value=""09"">A2015</option>
4174 <option value=""10"">A2020+</option>
4175 </select>
4176 </div>
4177 </div>
4178 ");
4179 WriteLiteral(" </div>\r\n </div>\r\n <div class=\"col-12 col-sm-6 col-lg-3 mt-3\">\r\n <h4");
4180 BeginWriteAttribute("class", " class=\"", 44687, "\"", 44695, 0);
4181 EndWriteAttribute();
4182 WriteLiteral("><b>");
4183 Write(Translate("Smartpage:Search.Økonomi", "Økonomi"));
4184 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">");
4185 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned"));
4186 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\"");
4187 BeginWriteAttribute("placeholder", " placeholder=\'", 45251, "\'", 45325, 1);
4188 WriteAttributeValue("", 45265, Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK"), 45265, 60, false);
4189 EndWriteAttribute();
4190 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4191 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"));
4192 WriteLiteral("</option>\r\n");
4193 for (var i = 0; i <= 25000; i += 1250)
4194 {
4195 if (i == 25000)
4196 {
4197 WriteLiteral(" <option>");
4198 Write(Convert.ToInt32(i).ToString("N0"));
4199 WriteLiteral("+</option>\r\n");
4200 }
4201 else
4202 {
4203 WriteLiteral(" <option>");
4204 Write(Convert.ToInt32(i).ToString("N0"));
4205 WriteLiteral("</option>\r\n");
4206 }
4207 }
4208 WriteLiteral(@" </select>
4209 </div>
4210 <div class=""col-6 pl-sm-0 pl-2"">
4211 <input type=""text"" name=""subsidymax"" id=""subsidymax-frontpage"" class=""form-control js-subsidymax-frontpage-input js-count""");
4212 BeginWriteAttribute("placeholder", " placeholder=\'", 46710, "\'", 46784, 1);
4213 WriteAttributeValue("", 46724, Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK"), 46724, 60, false);
4214 EndWriteAttribute();
4215 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4216 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"));
4217 WriteLiteral("</option>\r\n");
4218 for (var i = 0; i <= 25000; i += 1250)
4219 {
4220 if (i == 25000)
4221 {
4222 WriteLiteral(" <option");
4223 BeginWriteAttribute("value", " value=\"", 47396, "\"", 47423, 1);
4224 WriteAttributeValue("", 47404, Convert.ToInt32(i), 47404, 19, false);
4225 EndWriteAttribute();
4226 WriteLiteral(">");
4227 Write(Convert.ToInt32(i).ToString("N0"));
4228 WriteLiteral("+</option>\r\n");
4229 }
4230 else
4231 {
4232 WriteLiteral(" <option");
4233 BeginWriteAttribute("value", " value=\"", 47702, "\"", 47729, 1);
4234 WriteAttributeValue("", 47710, Convert.ToInt32(i), 47710, 19, false);
4235 EndWriteAttribute();
4236 WriteLiteral(">");
4237 Write(Convert.ToInt32(i).ToString("N0"));
4238 WriteLiteral("</option>\r\n");
4239 }
4240 }
4241 WriteLiteral(@" </select>
4242 </div>
4243 </div>
4244 </div>
4245 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0"">
4246 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
4247 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre"));
4248 WriteLiteral(@"</button>
4249 </div>
4250 </div>
4251 </div>
4252 </div>
4253 </div>
4254
4255 <div class=""row d-block d-md-none form-wrapper no-gutters"">
4256 <div class=""col-xs-12 col-md-2"">
4257 <button type=""submit"" class=""btn btn-block btn-search btn-mobile-search"">");
4258 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig"));
4259 WriteLiteral(@"<i class=""fa fa-search cta-icon""></i></button>
4260 </div>
4261 </div>
4262 </form>
4263 <div class=""front-page-actions d-md-none"">
4264 <div>
4265 <button class=""btn btn-block btn-search btn-mobile-search js-search-mobile"">");
4266 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig"));
4267 WriteLiteral("<i class=\"fa fa-search cta-icon\"></i></button>\r\n </div>\r\n <div>\r\n");
4268
4269 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : "";
4270 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER");
4271 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\">\r\n <input name=\"id\"");
4272 BeginWriteAttribute("value", " value=\"", 49672, "\"", 49695, 1);
4273 WriteAttributeValue("", 49680, brokerSearchId, 49680, 15, false);
4274 EndWriteAttribute();
4275 WriteLiteral(@" type=""hidden"" />
4276 <div class=""icon-wrapper-wclick"">
4277 <i class=""fas fa-search ta-submit-on-icon-click""></i>
4278 <input class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" name=""q"" type=""text""");
4279 BeginWriteAttribute("placeholder", " placeholder=\"", 49999, "\"", 50021, 1);
4280 WriteAttributeValue("", 50013, ctaText, 50013, 8, false);
4281 EndWriteAttribute();
4282 WriteLiteral(" onfocus=\"this.placeholder = \'\'\"");
4283 BeginWriteAttribute("onblur", " onblur=\"", 50054, "\"", 50090, 3);
4284 WriteAttributeValue("", 50063, "this.placeholder=\'", 50063, 18, true);
4285 WriteAttributeValue("", 50081, ctaText, 50081, 8, false);
4286 WriteAttributeValue("", 50089, "\'", 50089, 1, true);
4287 EndWriteAttribute();
4288 WriteLiteral(" />\r\n </div>\r\n </form>\r\n");
4289 WriteLiteral(" </div>\r\n <div>\r\n <a href=\"javascript:panelSalgsvurdering(\'Hovedmenu\')\" class=\"btn btn-orange btn-block\">");
4290 Write(Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING"));
4291 WriteLiteral("<i class=\"cta-icon fa fa-angle-right\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n");
4292
4293 }
4294 Custom.Integration.Brokers.Models.BrokerEmployee GetBrokerFromCurrentProduct()
4295 {
4296 string productId = Dynamicweb.Context.Current.Request["ProductId"];
4297
4298 if (string.IsNullOrWhiteSpace(productId))
4299 {
4300 return null;
4301 }
4302
4303 var propertyProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(productId, string.Empty, true);
4304 if (propertyProduct == null)
4305 {
4306 return null;
4307 }
4308
4309 string employee = Dynamicweb.Core.Converter.ToString(
4310 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xAktoererMaeglerKontaktEmail")
4311 );
4312 string storeId = Dynamicweb.Core.Converter.ToString(
4313 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xButikID")
4314 );
4315
4316 if (string.IsNullOrWhiteSpace(employee) || string.IsNullOrWhiteSpace(storeId))
4317 {
4318 return null;
4319 }
4320
4321 return Custom.Integration.Brokers.Search.GetEmployee(storeId, employee);
4322 }
4323
4324 string GetAgentTitleFromCurrentProduct()
4325 {
4326 var propBroker = GetBrokerFromCurrentProduct();
4327
4328 if (propBroker?.Broker == null)
4329 {
4330 return string.Empty;
4331 }
4332
4333 if (!string.IsNullOrEmpty(propBroker.Broker.CompanyName))
4334 {
4335 return propBroker.Broker.CompanyName;
4336 }
4337
4338 return propBroker.Broker.Name ?? string.Empty;
4339 }
4340
4341 string GetMasterBrokerUrlFromCurrentProduct()
4342 {
4343 var propBroker = GetBrokerFromCurrentProduct();
4344
4345 var itemId = propBroker?.Broker?.ItemId;
4346 var itemType = propBroker?.Broker?.ItemType;
4347
4348 if (string.IsNullOrWhiteSpace(itemId) || string.IsNullOrWhiteSpace(itemType))
4349 {
4350 return string.Empty;
4351 }
4352 var brokerItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(itemType, itemId);
4353
4354 if (brokerItem == null)
4355 {
4356 return string.Empty;
4357 }
4358
4359 var websiteId = Dynamicweb.Core.Converter.ToInt32(brokerItem["WebsiteId"]);
4360 var page = Dynamicweb.Content.Services.Pages.GetFirstPageForArea(websiteId);
4361 return Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?Id=" + page?.ID);
4362 }
4363
4364 // === Video link helpers (used by the property page) ===
4365
4366 // True when the link points directly at a video file we can play in a <video> element. Everything else is iframed.
4367 bool IsDirectVideoFile(string url)
4368 {
4369 if (string.IsNullOrWhiteSpace(url)) { return false; }
4370
4371 // Strip query/fragment before checking the file extension.
4372 string path = url.Split('?', '#')[0];
4373 string[] directExtensions = { ".mp4", ".webm", ".ogg", ".ogv", ".mov", ".m4v" };
4374 foreach (var ext in directExtensions)
4375 {
4376 if (path.EndsWith(ext, StringComparison.InvariantCultureIgnoreCase)) { return true; }
4377 }
4378 return false;
4379 }
4380
4381 string GetYouTubeId(string url)
4382 {
4383 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; }
4384
4385 string[] patterns = { @"youtu\.be/([^?&/]+)", @"[?&]v=([^?&]+)", @"/embed/([^?&/]+)", @"/shorts/([^?&/]+)" };
4386 foreach (var pattern in patterns)
4387 {
4388 var match = System.Text.RegularExpressions.Regex.Match(url, pattern);
4389 if (match.Success) { return match.Groups[1].Value; }
4390 }
4391
4392 return string.Empty;
4393 }
4394
4395 string GetVimeoId(string url)
4396 {
4397 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; }
4398 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?(\d+)");
4399 return match.Success ? match.Groups[1].Value : string.Empty;
4400 }
4401
4402 string GetVimeoHash(string url)
4403 {
4404 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; }
4405 // Unlisted videos carry a privacy hash: vimeo.com/{id}/{hash}
4406 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?\d+/(\w+)");
4407 return match.Success ? match.Groups[1].Value : string.Empty;
4408 }
4409
4410 // Builds the iframe src for a non-file link. YouTube/Vimeo share links are rewritten to their embeddable form
4411 // (their pages block framing); every other link (Matterport, CR3, already-embeddable pages) is used as-is.
4412 string BuildEmbedUrl(string url, bool background)
4413 {
4414 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; }
4415
4416 if (url.Contains("youtube", StringComparison.InvariantCultureIgnoreCase) || url.Contains("youtu.be", StringComparison.InvariantCultureIgnoreCase))
4417 {
4418 string id = GetYouTubeId(url);
4419 if (!string.IsNullOrEmpty(id))
4420 {
4421 string baseUrl = "https://www.youtube-nocookie.com/embed/" + id;
4422 return background
4423 ? baseUrl + "?autoplay=1&mute=1&loop=1&playlist=" + id + "&controls=0&playsinline=1&rel=0"
4424 : baseUrl + "?rel=0";
4425 }
4426 }
4427 else if (url.Contains("vimeo", StringComparison.InvariantCultureIgnoreCase))
4428 {
4429 string id = GetVimeoId(url);
4430 if (!string.IsNullOrEmpty(id))
4431 {
4432 string baseUrl = "https://player.vimeo.com/video/" + id;
4433 var queryParams = new List<string>();
4434 string hash = GetVimeoHash(url);
4435 if (!string.IsNullOrEmpty(hash)) { queryParams.Add("h=" + hash); }
4436 if (background) { queryParams.Add("background=1"); }
4437 return queryParams.Count > 0 ? baseUrl + "?" + string.Join("&", queryParams) : baseUrl;
4438 }
4439 }
4440
4441 // Matterport, CR3 and any already-embeddable link frame as-is.
4442 return url;
4443 }
4444
4445 void RenderSlideMenu(bool erhverv, string maeglersoegning)
4446 {
4447 WriteLiteral(" <div id=\"menu\" \r\n class=\"main-menu-slide \"\r\n role=\"navigation\"");
4448 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 56824, "\"", 56940, 1);
4449 WriteAttributeValue("", 56851, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.MainMenu", "Hovedmenu")), 56851, 89, false);
4450 EndWriteAttribute();
4451 WriteLiteral(@"
4452 aria-modal=""true"">
4453 <div class=""container"">
4454 <div class=""row"">
4455 <div class=""col-12"">
4456 <span class=""menu-headline"">MENU</span>
4457 </div>
4458 <div class=""menu-slide""
4459 role=""button""
4460 tabindex=""0""");
4461 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 57305, "\"", 57433, 1);
4462 WriteAttributeValue("", 57344, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.CloseMenu", "Luk menu")), 57344, 89, false);
4463 EndWriteAttribute();
4464 WriteLiteral(">\r\n <b aria-hidden=\"true\"></b>\r\n </div>\r\n <div class=\"col-12 main-slidemenu\" role=\"region\"");
4465 BeginWriteAttribute("aria-label", " aria-label=\"", 57585, "\"", 57701, 1);
4466 WriteAttributeValue("", 57598, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.NavigationLinks", "Navigationslinks")), 57598, 103, false);
4467 EndWriteAttribute();
4468 WriteLiteral(">\r\n");
4469
4470 var navigationSettings = new NavigationSettings();
4471 navigationSettings.StartLevel = 1;
4472 navigationSettings.StopLevel = 2;
4473 navigationSettings.ExpandMode = ExpandMode.All;
4474 navigationSettings.RootAreaId = Pageview.Area.ID;
4475
4476 Write(Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings));
4477 WriteLiteral(" </div>\r\n <div class=\"col-12 bottom-btns\">\r\n\r\n");
4478
4479 string[] maeglerid;
4480 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0";
4481
4482 if (erhverv)
4483 {
4484 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None);
4485 }
4486 else
4487 {
4488 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None);
4489 }
4490
4491 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\" role=\"search\">\r\n <input name=\"id\"");
4492 BeginWriteAttribute("value", " value=\"", 59198, "\"", 59219, 1);
4493 WriteAttributeValue("", 59206, maeglerid[1], 59206, 13, false);
4494 EndWriteAttribute();
4495 WriteLiteral(" type=\"hidden\" />\r\n <div class=\"icon-wrapper-wclick\">\r\n <label for=\"broker-search-menu-vm\" class=\"sr-only\">");
4496 Write(Translate("Custom:Accessibility.FindBroker", "Find mægler"));
4497 WriteLiteral(@"</label>
4498 <i class=""fas fa-search ta-submit-on-icon-click""
4499 aria-hidden=""true""
4500 role=""button""
4501 tabindex=""0""");
4502 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 59714, "\"", 59867, 1);
4503 WriteAttributeValue("", 59767, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.SearchBroker", "Søg efter mægler")), 59767, 100, false);
4504 EndWriteAttribute();
4505 WriteLiteral(@"></i>
4506 <input id=""broker-search-menu-vm""
4507 class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter""
4508 name=""q""
4509 type=""text""");
4510 BeginWriteAttribute("placeholder", " \r\n placeholder=\"", 60175, "\"", 60326, 1);
4511 WriteAttributeValue("", 60234, HtmlEncoder.HtmlAttributeEncode(Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER")), 60234, 92, false);
4512 EndWriteAttribute();
4513 BeginWriteAttribute("aria-label", " \r\n aria-label=\"", 60327, "\"", 60523, 1);
4514 WriteAttributeValue("", 60385, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.BrokerSearchField", "Indtast postnummer eller navn for at finde mægler")), 60385, 138, false);
4515 EndWriteAttribute();
4516 WriteLiteral("\r\n onfocus=\"this.placeholder = \'FIND MÆGLER\'\" />\r\n </div>\r\n </form>\r\n");
4517 WriteLiteral(" <br />\r\n");
4518
4519 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + "";
4520 WriteLiteral(" <a");
4521 BeginWriteAttribute("href", " href=\"", 60933, "\"", 61004, 5);
4522 WriteAttributeValue("", 60940, "javascript:panelSalgsvurdering(\'", 60940, 32, true);
4523 WriteAttributeValue("", 60972, dpmaegler, 60972, 10, false);
4524 WriteAttributeValue("", 60982, "\',\'", 60982, 3, true);
4525 WriteAttributeValue("", 60985, Pageview.AreaID, 60985, 16, false);
4526 WriteAttributeValue("", 61001, "\');", 61001, 3, true);
4527 EndWriteAttribute();
4528 WriteLiteral(" \r\n class=\"btn btn-block btn-default-invert js-close-menu\"");
4529 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 61089, "\"", 61245, 1);
4530 WriteAttributeValue("", 61130, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.FreeSalesAssessment", "Få gratis salgsvurdering")), 61130, 115, false);
4531 EndWriteAttribute();
4532 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");
4533 }
4534
4535 void RenderBlockList(List<Block> blocks)
4536 {
4537 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
4538 blocks = blocks.OrderBy(item => item.SortId).ToList();
4539
4540 foreach (Block item in blocks)
4541 {
4542 if (debug) {
4543 WriteLiteral(" <!-- Block START: ");
4544 Write(item.Id);
4545 WriteLiteral(" -->\r\n");
4546 }
4547
4548 if (item.Design == null)
4549 {
4550 RenderBlock(item);
4551 }
4552 else if (item.Design.RenderType == RenderType.None) {
4553 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
4554
4555 WriteLiteral(" <div");
4556 BeginWriteAttribute("class", " class=\"", 62500, "\"", 62524, 2);
4557 WriteAttributeValue("", 62508, cssClass, 62508, 9, false);
4558 WriteAttributeValue(" ", 62517, "dw-mod", 62518, 7, true);
4559 EndWriteAttribute();
4560 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4561 }
4562 else if (item.Design.RenderType != RenderType.Hide)
4563 {
4564 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
4565
4566 if (!item.SkipRenderBlocksList) {
4567 if (item.Design.RenderType == RenderType.Row)
4568 {
4569 WriteLiteral(" <div");
4570 BeginWriteAttribute("class", " class=\"", 62951, "\"", 63006, 4);
4571 WriteAttributeValue("", 62959, "grid", 62959, 4, true);
4572 WriteAttributeValue(" ", 62963, "grid--align-content-start", 62964, 26, true);
4573 WriteAttributeValue(" ", 62989, cssClass, 62990, 9, false);
4574 WriteAttributeValue(" ", 62999, "dw-mod", 63000, 7, true);
4575 EndWriteAttribute();
4576 BeginWriteAttribute("id", " id=\"", 63007, "\"", 63027, 2);
4577 WriteAttributeValue("", 63012, "Block__", 63012, 7, true);
4578 WriteAttributeValue("", 63019, item.Id, 63019, 8, false);
4579 EndWriteAttribute();
4580 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4581 }
4582
4583 if (item.Design.RenderType == RenderType.Column)
4584 {
4585 string hidePadding = item.Design.HidePadding ? "u-no-padding" : "";
4586 string size = item.Design.Size ?? "12";
4587 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size;
4588
4589 WriteLiteral(" <div");
4590 BeginWriteAttribute("class", " class=\"", 63523, "\"", 63654, 9);
4591 WriteAttributeValue("", 63531, "grid__col-lg-", 63531, 13, true);
4592 WriteAttributeValue("", 63544, item.Design.Size, 63544, 17, false);
4593 WriteAttributeValue(" ", 63561, "grid__col-md-", 63562, 14, true);
4594 WriteAttributeValue("", 63575, item.Design.Size, 63575, 17, false);
4595 WriteAttributeValue(" ", 63592, "grid__col-sm-12", 63593, 16, true);
4596 WriteAttributeValue(" ", 63608, "grid__col-xs-12", 63609, 16, true);
4597 WriteAttributeValue(" ", 63624, hidePadding, 63625, 12, false);
4598 WriteAttributeValue(" ", 63637, cssClass, 63638, 9, false);
4599 WriteAttributeValue(" ", 63647, "dw-mod", 63648, 7, true);
4600 EndWriteAttribute();
4601 BeginWriteAttribute("id", " id=\"", 63655, "\"", 63675, 2);
4602 WriteAttributeValue("", 63660, "Block__", 63660, 7, true);
4603 WriteAttributeValue("", 63667, item.Id, 63667, 8, false);
4604 EndWriteAttribute();
4605 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4606 }
4607
4608 if (item.Design.RenderType == RenderType.Table)
4609 {
4610 WriteLiteral(" <table");
4611 BeginWriteAttribute("class", " class=\"", 63906, "\"", 63936, 3);
4612 WriteAttributeValue("", 63914, "table", 63914, 5, true);
4613 WriteAttributeValue(" ", 63919, cssClass, 63920, 9, false);
4614 WriteAttributeValue(" ", 63929, "dw-mod", 63930, 7, true);
4615 EndWriteAttribute();
4616 BeginWriteAttribute("id", " id=\"", 63937, "\"", 63957, 2);
4617 WriteAttributeValue("", 63942, "Block__", 63942, 7, true);
4618 WriteAttributeValue("", 63949, item.Id, 63949, 8, false);
4619 EndWriteAttribute();
4620 WriteLiteral(">\r\n RenderBlock(item);\r\n </table>\r\n");
4621 }
4622
4623 if (item.Design.RenderType == RenderType.TableRow)
4624 {
4625 WriteLiteral(" <tr");
4626 BeginWriteAttribute("class", " class=\"", 64190, "\"", 64214, 2);
4627 WriteAttributeValue("", 64198, cssClass, 64198, 9, false);
4628 WriteAttributeValue(" ", 64207, "dw-mod", 64208, 7, true);
4629 EndWriteAttribute();
4630 BeginWriteAttribute("id", " id=\"", 64215, "\"", 64235, 2);
4631 WriteAttributeValue("", 64220, "Block__", 64220, 7, true);
4632 WriteAttributeValue("", 64227, item.Id, 64227, 8, false);
4633 EndWriteAttribute();
4634 WriteLiteral(">\r\n RenderBlock(item);\r\n </tr>\r\n");
4635 }
4636
4637 if (item.Design.RenderType == RenderType.TableColumn)
4638 {
4639 WriteLiteral(" <td");
4640 BeginWriteAttribute("class", " class=\"", 64468, "\"", 64492, 2);
4641 WriteAttributeValue("", 64476, cssClass, 64476, 9, false);
4642 WriteAttributeValue(" ", 64485, "dw-mod", 64486, 7, true);
4643 EndWriteAttribute();
4644 BeginWriteAttribute("id", " id=\"", 64493, "\"", 64513, 2);
4645 WriteAttributeValue("", 64498, "Block__", 64498, 7, true);
4646 WriteAttributeValue("", 64505, item.Id, 64505, 8, false);
4647 EndWriteAttribute();
4648 WriteLiteral(">\r\n RenderBlock(item);\r\n </td>\r\n");
4649 }
4650
4651 if (item.Design.RenderType == RenderType.CardHeader)
4652 {
4653 WriteLiteral(" <div");
4654 BeginWriteAttribute("class", " class=\"", 64746, "\"", 64782, 3);
4655 WriteAttributeValue("", 64754, "card-header", 64754, 11, true);
4656 WriteAttributeValue(" ", 64765, cssClass, 64766, 9, false);
4657 WriteAttributeValue(" ", 64775, "dw-mod", 64776, 7, true);
4658 EndWriteAttribute();
4659 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4660 }
4661
4662 if (item.Design.RenderType == RenderType.CardBody)
4663 {
4664 WriteLiteral(" <div");
4665 BeginWriteAttribute("class", " class=\"", 65014, "\"", 65043, 3);
4666 WriteAttributeValue("", 65022, "card", 65022, 4, true);
4667 WriteAttributeValue(" ", 65026, cssClass, 65027, 9, false);
4668 WriteAttributeValue(" ", 65036, "dw-mod", 65037, 7, true);
4669 EndWriteAttribute();
4670 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4671 }
4672
4673 if (item.Design.RenderType == RenderType.CardFooter)
4674 {
4675 WriteLiteral(" <div");
4676 BeginWriteAttribute("class", " class=\"", 65277, "\"", 65313, 3);
4677 WriteAttributeValue("", 65285, "card-footer", 65285, 11, true);
4678 WriteAttributeValue(" ", 65296, cssClass, 65297, 9, false);
4679 WriteAttributeValue(" ", 65306, "dw-mod", 65307, 7, true);
4680 EndWriteAttribute();
4681 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4682 }
4683 }
4684 else
4685 {
4686 RenderBlock(item);
4687 }
4688 }
4689
4690 if (debug) {
4691 WriteLiteral(" <!-- Block END: ");
4692 Write(item.Id);
4693 WriteLiteral(" -->\r\n");
4694 }
4695 }
4696 }
4697
4698 void RenderBlock(Block item)
4699 {
4700 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
4701
4702 if (item.Template != null)
4703 {
4704 Write(BlocksPage.RenderTemplate(item.Template));
4705
4706 }
4707
4708 if (item.Component != null)
4709 {
4710 string customSufix = "Custom";
4711 string methodName = item.Component.HelperName;
4712
4713 ComponentBase[] methodParameters = new ComponentBase[1];
4714 methodParameters[0] = item.Component;
4715 Type methodType = this.GetType();
4716
4717 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix);
4718 MethodInfo generalMethod = methodType.GetMethod(methodName);
4719
4720 try {
4721 if (debug) {
4722 WriteLiteral(" <!-- Component: ");
4723 Write(methodName.Replace("Render", ""));
4724 WriteLiteral(" -->\r\n");
4725 }
4726 Write(customMethod.Invoke(this, methodParameters).ToString());
4727 ;
4728 } catch {
4729 try {
4730 Write(generalMethod.Invoke(this, methodParameters).ToString());
4731
4732 ;
4733 } catch(Exception ex) {
4734 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex);
4735 }
4736 }
4737 }
4738
4739 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList)
4740 {
4741 RenderBlockList(item.BlocksList);
4742 }
4743 }
4744
4745 void Render(ComponentBase component)
4746 {
4747 if (component != null)
4748 {
4749 Write(component.Render(this));
4750
4751 }
4752 }
4753
4754 void RenderIcon(Icon settings)
4755 {
4756 if (settings != null)
4757 {
4758 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
4759
4760 if (settings.Name != null)
4761 {
4762 if (string.IsNullOrEmpty(settings.Label))
4763 {
4764 WriteLiteral(" <i");
4765 BeginWriteAttribute("class", " class=\"", 68209, "\"", 68267, 3);
4766 WriteAttributeValue("", 68217, settings.Prefix, 68217, 16, false);
4767 WriteAttributeValue(" ", 68233, settings.Name, 68234, 14, false);
4768 WriteAttributeValue(" ", 68248, settings.CssClass, 68249, 18, false);
4769 EndWriteAttribute();
4770 WriteLiteral(" ");
4771 Write(color);
4772 WriteLiteral("></i>\r\n");
4773 }
4774 else
4775 {
4776 if (settings.LabelPosition == IconLabelPosition.Before)
4777 {
4778 WriteLiteral(" <div");
4779 BeginWriteAttribute("class", " class=\"", 68470, "\"", 68530, 3);
4780 WriteAttributeValue("", 68478, "u-flex", 68478, 6, true);
4781 WriteAttributeValue(" ", 68484, "u-flex--align-items-center", 68485, 27, true);
4782 WriteAttributeValue(" ", 68511, settings.CssClass, 68512, 18, false);
4783 EndWriteAttribute();
4784 WriteLiteral(">");
4785 Write(settings.Label);
4786 WriteLiteral(" <i");
4787 BeginWriteAttribute("class", " class=\"", 68550, "\"", 68603, 3);
4788 WriteAttributeValue("", 68558, settings.Prefix, 68558, 16, false);
4789 WriteAttributeValue(" ", 68574, settings.Name, 68575, 14, false);
4790 WriteAttributeValue(" ", 68589, "u-margin-left", 68590, 14, true);
4791 EndWriteAttribute();
4792 WriteLiteral(" ");
4793 Write(color);
4794 WriteLiteral("></i></div>\r\n");
4795 }
4796 else
4797 {
4798 WriteLiteral(" <div");
4799 BeginWriteAttribute("class", " class=\"", 68724, "\"", 68784, 3);
4800 WriteAttributeValue("", 68732, "u-flex", 68732, 6, true);
4801 WriteAttributeValue(" ", 68738, "u-flex--align-items-center", 68739, 27, true);
4802 WriteAttributeValue(" ", 68765, settings.CssClass, 68766, 18, false);
4803 EndWriteAttribute();
4804 WriteLiteral("><i");
4805 BeginWriteAttribute("class", " class=\"", 68788, "\"", 68854, 4);
4806 WriteAttributeValue("", 68796, settings.Prefix, 68796, 16, false);
4807 WriteAttributeValue(" ", 68812, settings.Name, 68813, 14, false);
4808 WriteAttributeValue(" ", 68827, "u-margin-right--lg", 68828, 19, true);
4809 WriteAttributeValue(" ", 68846, "u-w20px", 68847, 8, true);
4810 EndWriteAttribute();
4811 WriteLiteral(" ");
4812 Write(color);
4813 WriteLiteral("></i>");
4814 Write(settings.Label);
4815 WriteLiteral("</div>\r\n");
4816 }
4817 }
4818 }
4819 else if (!string.IsNullOrEmpty(settings.Label))
4820 {
4821 Write(settings.Label);
4822
4823 }
4824 }
4825 }
4826
4827 void RenderButton(Button settings)
4828 {
4829 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
4830 {
4831 Dictionary<string, string> attributes = new Dictionary<string, string>();
4832 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
4833 if (settings.Disabled) {
4834 attributes.Add("disabled", "true");
4835 classList.Add("disabled");
4836 }
4837
4838 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle))
4839 {
4840 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
4841 RenderConfirmDialog(settings);
4842 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true";
4843 }
4844
4845 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
4846 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
4847 if (!string.IsNullOrEmpty(settings.AltText))
4848 {
4849 attributes.Add("title", settings.AltText);
4850 }
4851 else if (!string.IsNullOrEmpty(settings.Title))
4852 {
4853 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty);
4854 cleanTitle = cleanTitle.Replace(" ", " ");
4855 attributes.Add("title", cleanTitle);
4856 }
4857
4858 var onClickEvents = new List<string>();
4859 if (!string.IsNullOrEmpty(settings.OnClick))
4860 {
4861 onClickEvents.Add(settings.OnClick);
4862 }
4863 if (!string.IsNullOrEmpty(settings.Href))
4864 {
4865 if (settings.Href.Contains("javascript"))
4866 {
4867 settings.Href = settings.Href.Replace("http://", "");
4868 }
4869 onClickEvents.Add("location.href='" + settings.Href + "'");
4870 }
4871 if (onClickEvents.Count > 0)
4872 {
4873 attributes.Add("onClick", string.Join(";", onClickEvents));
4874 }
4875
4876 if (settings.ButtonLayout != ButtonLayout.None)
4877 {
4878 classList.Add("btn");
4879 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
4880 if (btnLayout == "linkclean")
4881 {
4882 btnLayout = "link-clean"; //fix
4883 }
4884 classList.Add("btn--" + btnLayout);
4885 }
4886
4887 if (settings.Icon == null)
4888 {
4889 settings.Icon = new Icon();
4890 }
4891
4892 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : "";
4893 settings.Icon.Label = settings.Title;
4894
4895 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower());
4896
4897 WriteLiteral(" <button");
4898 BeginWriteAttribute("class", " class=\"", 72447, "\"", 72490, 2);
4899 WriteAttributeValue("", 72455, string.Join(" ", classList), 72455, 28, false);
4900 WriteAttributeValue(" ", 72483, "dw-mod", 72484, 7, true);
4901 EndWriteAttribute();
4902 WriteLiteral(" ");
4903 Write(ComponentMethods.AddAttributes(attributes));
4904 WriteLiteral(" ");
4905 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
4906 WriteLiteral(">");
4907 RenderIcon(settings.Icon);WriteLiteral("</button>\r\n");
4908 }
4909 }
4910
4911 void RenderConfirmDialog(Button settings)
4912 {
4913 Modal confirmDialog = new Modal {
4914 Id = settings.Id,
4915 Width = ModalWidth.Sm,
4916 Heading = new Heading
4917 {
4918 Level = 2,
4919 Title = settings.ConfirmTitle
4920 },
4921 BodyText = settings.ConfirmText
4922 };
4923
4924 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"});
4925 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick });
4926
4927 RenderModal(confirmDialog);
4928 }
4929
4930 void RenderLink(Link settings)
4931 {
4932 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
4933 {
4934 Dictionary<string, string> attributes = new Dictionary<string, string>();
4935 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
4936 if (settings.Disabled)
4937 {
4938 attributes.Add("disabled", "true");
4939 classList.Add("disabled");
4940 }
4941
4942 if (!string.IsNullOrEmpty(settings.AltText))
4943 {
4944 attributes.Add("title", settings.AltText);
4945 }
4946 else if (!string.IsNullOrEmpty(settings.Title))
4947 {
4948 attributes.Add("title", settings.Title);
4949 }
4950
4951 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
4952 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
4953 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); }
4954 attributes.Add("href", settings.Href);
4955
4956 if (settings.ButtonLayout != ButtonLayout.None)
4957 {
4958 classList.Add("btn");
4959 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
4960 if (btnLayout == "linkclean")
4961 {
4962 btnLayout = "link-clean"; //fix
4963 }
4964 classList.Add("btn--" + btnLayout);
4965 }
4966
4967 if (settings.Icon == null)
4968 {
4969 settings.Icon = new Icon();
4970 }
4971 settings.Icon.Label = settings.Title;
4972
4973 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None)
4974 {
4975 settings.Rel = LinkRelType.Noopener;
4976 }
4977 if (settings.Target != LinkTargetType.None)
4978 {
4979 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower());
4980 }
4981 if (settings.Download)
4982 {
4983 attributes.Add("download", "true");
4984 }
4985 if (settings.Rel != LinkRelType.None)
4986 {
4987 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower());
4988 }
4989
4990 WriteLiteral(" <a");
4991 BeginWriteAttribute("class", " class=\"", 76222, "\"", 76265, 2);
4992 WriteAttributeValue("", 76230, string.Join(" ", classList), 76230, 28, false);
4993 WriteAttributeValue(" ", 76258, "dw-mod", 76259, 7, true);
4994 EndWriteAttribute();
4995 WriteLiteral(" ");
4996 Write(ComponentMethods.AddAttributes(attributes));
4997 WriteLiteral(" ");
4998 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
4999 WriteLiteral(">Render(settings.Icon);</a>\r\n");
5000 }
5001 }
5002
5003 void RenderRating(Rating settings)
5004 {
5005 if (settings.Score > 0)
5006 {
5007 int rating = settings.Score;
5008 string iconType = "fa-star";
5009
5010 switch (settings.Type.ToString()) {
5011 case "Stars":
5012 iconType = "fa-star";
5013 break;
5014 case "Hearts":
5015 iconType = "fa-heart";
5016 break;
5017 case "Lemons":
5018 iconType = "fa-lemon";
5019 break;
5020 case "Bombs":
5021 iconType = "fa-bomb";
5022 break;
5023 }
5024
5025 WriteLiteral(" <div class=\"u-ta-right\">\r\n");
5026 for (int i = 0; i < settings.OutOf; i++)
5027 {
5028 WriteLiteral(" <i");
5029 BeginWriteAttribute("class", " class=\"", 77399, "\"", 77446, 2);
5030 WriteAttributeValue("", 77407, rating > i ? "fas" : "far", 77407, 29, false);
5031 WriteAttributeValue(" ", 77436, iconType, 77437, 9, false);
5032 EndWriteAttribute();
5033 WriteLiteral("></i>\r\n");
5034 }
5035 WriteLiteral(" </div>\r\n");
5036 }
5037 }
5038
5039 void RenderNavigation(Navigation settings) {
5040 RenderNavigation(new
5041 {
5042 id = settings.Id,
5043 cssclass = settings.CssClass,
5044 startLevel = settings.StartLevel,
5045 endlevel = settings.EndLevel,
5046 expandmode = settings.Expandmode,
5047 sitemapmode = settings.SitemapMode,
5048 template = settings.Template
5049 });
5050 }
5051
5052 void RenderLeftNavigation(LeftNavigation settings) {
5053 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id;
5054 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template;
5055 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel;
5056 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel;
5057 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode;
5058
5059 WriteLiteral(" <div class=\"grid__cell\">\r\n RenderNavigation(settings);\r\n </div> \r\n");
5060 }
5061
5062 void RenderHeading(Heading settings)
5063 {
5064 if (settings != null && !string.IsNullOrEmpty(settings.Title))
5065 {
5066 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
5067 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div";
5068
5069 Write("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">");
5070
5071 if (!string.IsNullOrEmpty(settings.Link))
5072 {
5073 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None });
5074 }
5075 else
5076 {
5077 if (settings.Icon == null)
5078 {
5079 settings.Icon = new Icon();
5080 }
5081 settings.Icon.Label = settings.Title;
5082 RenderIcon(settings.Icon);
5083 }
5084 Write("</" + tagName + ">");
5085 ;
5086 }
5087 }
5088
5089 void RenderImage(Image settings)
5090 {
5091 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None)
5092 {
5093 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
5094 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); }
5095
5096 if (settings.Caption != null)
5097 {
5098 WriteLiteral(" ");
5099 WriteLiteral("<div>\r\n");
5100 }
5101
5102 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower();
5103 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower();
5104
5105 WriteLiteral(" <div");
5106 BeginWriteAttribute("class", " class=\"", 80927, "\"", 81008, 5);
5107 WriteAttributeValue("", 80935, "image-filter", 80935, 12, true);
5108 WriteAttributeValue(" ", 80947, "image-filter--", 80948, 15, true);
5109 WriteAttributeValue("", 80962, primaryFilterClass, 80962, 19, false);
5110 WriteAttributeValue(" ", 80981, "u-position-relative", 80982, 20, true);
5111 WriteAttributeValue(" ", 81001, "dw-mod", 81002, 7, true);
5112 EndWriteAttribute();
5113 WriteLiteral(" ");
5114 Write(ComponentMethods.AddAttributes(optionalAttributes));
5115 WriteLiteral(">\r\n <div");
5116 BeginWriteAttribute("class", " class=\"", 81088, "\"", 81151, 4);
5117 WriteAttributeValue("", 81096, "image-filter", 81096, 12, true);
5118 WriteAttributeValue(" ", 81108, "image-filter--", 81109, 15, true);
5119 WriteAttributeValue("", 81123, secondaryFilterClass, 81123, 21, false);
5120 WriteAttributeValue(" ", 81144, "dw-mod", 81145, 7, true);
5121 EndWriteAttribute();
5122 WriteLiteral(">\r\n");
5123 if (settings.Link != null)
5124 {
5125 WriteLiteral(" <a");
5126 BeginWriteAttribute("href", " href=\"", 81265, "\"", 81286, 1);
5127 WriteAttributeValue("", 81272, settings.Link, 81272, 14, false);
5128 EndWriteAttribute();
5129 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n");
5130 }
5131 else
5132 {
5133 RenderTheImage(settings);
5134 }
5135 WriteLiteral(" </div>\r\n </div>\r\n");
5136
5137 if (settings.Caption != null)
5138 {
5139 WriteLiteral(" <span class=\"image-caption dw-mod\">");
5140 Write(settings.Caption);
5141 WriteLiteral("</span>\r\n ");
5142 WriteLiteral("</div>\r\n");
5143 }
5144 }
5145 else
5146 {
5147 if (settings.Caption != null)
5148 {
5149 WriteLiteral(" ");
5150 WriteLiteral("<div>\r\n");
5151 }
5152 if (!string.IsNullOrEmpty(settings.Link))
5153 {
5154 WriteLiteral(" <a");
5155 BeginWriteAttribute("href", " href=\"", 82029, "\"", 82050, 1);
5156 WriteAttributeValue("", 82036, settings.Link, 82036, 14, false);
5157 EndWriteAttribute();
5158 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n");
5159 }
5160 else
5161 {
5162 RenderTheImage(settings);
5163 }
5164
5165 if (settings.Caption != null)
5166 {
5167 WriteLiteral(" <span class=\"image-caption dw-mod\">");
5168 Write(settings.Caption);
5169 WriteLiteral("</span>\r\n ");
5170 WriteLiteral("</div>\r\n");
5171 }
5172 }
5173 }
5174
5175 void RenderTheImage(Image settings)
5176 {
5177 if (settings != null)
5178 {
5179 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg";
5180 string placeholderImage = "/Files/Images/placeholder.gif";
5181 string imageEngine = "/Admin/Public/GetImage.ashx?";
5182
5183 string imageStyle = "";
5184
5185 switch (settings.Style)
5186 {
5187 case ImageStyle.Ball:
5188 imageStyle = "grid__cell-img--ball";
5189 break;
5190
5191 case ImageStyle.Triangle:
5192 imageStyle = "grid__cell-img--triangle";
5193 break;
5194 }
5195
5196 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle)
5197 {
5198 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop;
5199
5200 if (settings.ImageDefault != null)
5201 {
5202 settings.ImageDefault.Height = settings.ImageDefault.Width;
5203 }
5204 if (settings.ImageMedium != null)
5205 {
5206 settings.ImageMedium.Height = settings.ImageMedium.Width;
5207 }
5208 if (settings.ImageSmall != null)
5209 {
5210 settings.ImageSmall.Height = settings.ImageSmall.Width;
5211 }
5212 }
5213
5214 string defaultImage = imageEngine;
5215 string imageSmall = "";
5216 string imageMedium = "";
5217
5218 if (settings.DisableImageEngine)
5219 {
5220 defaultImage = settings.Path;
5221 }
5222 else
5223 {
5224 if (settings.ImageDefault != null)
5225 {
5226 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault);
5227
5228 if (settings.Path.GetType() != typeof(string))
5229 {
5230 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
5231 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
5232 }
5233 else
5234 {
5235 defaultImage += settings.Path != null ? "Image=" + settings.Path : "";
5236 }
5237
5238 defaultImage += "&AlternativeImage=" + alternativeImage;
5239 }
5240
5241 if (settings.ImageSmall != null)
5242 {
5243 imageSmall = "data-src-small=\"" + imageEngine;
5244 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall);
5245
5246 if (settings.Path.GetType() != typeof(string))
5247 {
5248 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
5249 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
5250 }
5251 else
5252 {
5253 imageSmall += settings.Path != null ? "Image=" + settings.Path : "";
5254 }
5255
5256 imageSmall += "&alternativeImage=" + alternativeImage;
5257
5258 imageSmall += "\"";
5259 }
5260
5261 if (settings.ImageMedium != null)
5262 {
5263 imageMedium = "data-src-medium=\"" + imageEngine;
5264 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium);
5265
5266 if (settings.Path.GetType() != typeof(string))
5267 {
5268 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
5269 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
5270 }
5271 else
5272 {
5273 imageMedium += settings.Path != null ? "Image=" + settings.Path : "";
5274 }
5275
5276 imageMedium += "&alternativeImage=" + alternativeImage;
5277
5278 imageMedium += "\"";
5279 }
5280 }
5281
5282 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
5283 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); }
5284 if (!string.IsNullOrEmpty(settings.Title))
5285 {
5286 optionalAttributes.Add("alt", settings.Title);
5287 optionalAttributes.Add("title", settings.Title);
5288 }
5289
5290 if (settings.DisableLazyLoad)
5291 {
5292 WriteLiteral(" <img");
5293 BeginWriteAttribute("id", " id=\"", 87529, "\"", 87546, 1);
5294 WriteAttributeValue("", 87534, settings.Id, 87534, 12, false);
5295 EndWriteAttribute();
5296 BeginWriteAttribute("class", " class=\"", 87547, "\"", 87592, 3);
5297 WriteAttributeValue("", 87555, imageStyle, 87555, 11, false);
5298 WriteAttributeValue(" ", 87566, settings.CssClass, 87567, 18, false);
5299 WriteAttributeValue(" ", 87585, "dw-mod", 87586, 7, true);
5300 EndWriteAttribute();
5301 BeginWriteAttribute("src", " src=\"", 87593, "\"", 87612, 1);
5302 WriteAttributeValue("", 87599, defaultImage, 87599, 13, false);
5303 EndWriteAttribute();
5304 WriteLiteral(" ");
5305 Write(ComponentMethods.AddAttributes(optionalAttributes));
5306 WriteLiteral(" ");
5307 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5308 WriteLiteral(" />\r\n");
5309 }
5310 else
5311 {
5312
5313 WriteLiteral(" <img");
5314 BeginWriteAttribute("id", " id=\"", 87810, "\"", 87827, 1);
5315 WriteAttributeValue("", 87815, settings.Id, 87815, 12, false);
5316 EndWriteAttribute();
5317 BeginWriteAttribute("class", " class=\"", 87828, "\"", 87873, 3);
5318 WriteAttributeValue("", 87836, imageStyle, 87836, 11, false);
5319 WriteAttributeValue(" ", 87847, settings.CssClass, 87848, 18, false);
5320 WriteAttributeValue(" ", 87866, "dw-mod", 87867, 7, true);
5321 EndWriteAttribute();
5322 WriteLiteral(" loading=\"lazy\"");
5323 BeginWriteAttribute("src", " src=\"", 87889, "\"", 87908, 1);
5324 WriteAttributeValue("", 87895, defaultImage, 87895, 13, false);
5325 EndWriteAttribute();
5326 WriteLiteral(" ");
5327 Write(ComponentMethods.AddAttributes(optionalAttributes));
5328 WriteLiteral(" ");
5329 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5330 WriteLiteral(" />\r\n");
5331 }
5332 }
5333 }
5334
5335 void RenderHiddenField(HiddenField settings) {
5336 var attributes = new Dictionary<string, string>();
5337 attributes.Add("type", "hidden");
5338 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5339 if (settings.Value != null) { attributes.Add("value", settings.Value); }
5340 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
5341
5342 WriteLiteral(" <input ");
5343 Write(ComponentMethods.AddAttributes(attributes));
5344 WriteLiteral(" ");
5345 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5346 WriteLiteral("/>\r\n");
5347 }
5348
5349 void RenderRadioButtonField(RadioButtonField settings)
5350 {
5351 var attributes = new Dictionary<string, string>();
5352 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id))
5353 {
5354 settings.Id = Guid.NewGuid().ToString("N");
5355 }
5356
5357 /*base settings*/
5358 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5359 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); }
5360 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); }
5361 if (settings.Disabled) { attributes.Add("disabled", "true"); }
5362 if (settings.Required) { attributes.Add("required", "true"); }
5363 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
5364 /*end*/
5365
5366 attributes.Add("type", "radio");
5367 if (settings.Checked) { attributes.Add("checked", "true"); }
5368 settings.CssClass = "form__control " + settings.CssClass;
5369 if (settings.Value != null) { attributes.Add("value", settings.Value); }
5370
5371 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value);
5372
5373 WriteLiteral(" <div");
5374 BeginWriteAttribute("class", " class=\"", 90228, "\"", 90286, 3);
5375 WriteAttributeValue("", 90236, "form__field-group", 90236, 17, true);
5376 WriteAttributeValue(" ", 90253, settings.WrapperCssClass, 90254, 25, false);
5377 WriteAttributeValue(" ", 90279, "dw-mod", 90280, 7, true);
5378 EndWriteAttribute();
5379 WriteLiteral(">\r\n <input ");
5380 Write(ComponentMethods.AddAttributes(resultAttributes));
5381 WriteLiteral(" class=\"");
5382 Write(settings.CssClass);
5383 WriteLiteral(" dw-mod\" />\r\n");
5384 if (!string.IsNullOrEmpty(settings.Label))
5385 {
5386 WriteLiteral(" <label");
5387 BeginWriteAttribute("for", " for=\"", 90491, "\"", 90509, 1);
5388 WriteAttributeValue("", 90497, settings.Id, 90497, 12, false);
5389 EndWriteAttribute();
5390 WriteLiteral(" class=\"dw-mod\">");
5391 Write(settings.Label);
5392 WriteLiteral("</label>\r\n");
5393 }
5394 if (!string.IsNullOrEmpty(settings.HelpText))
5395 {
5396 WriteLiteral(" <small class=\"form__help-text\">");
5397 Write(settings.HelpText);
5398 WriteLiteral("</small>\r\n");
5399 }
5400 WriteLiteral(" Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n");
5401 }
5402
5403 void RenderRadioButtonListField(RadioButtonListField settings)
5404 {
5405 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; }
5406
5407 WriteLiteral(" <div");
5408 BeginWriteAttribute("class", " class=\"", 91224, "\"", 91298, 4);
5409 WriteAttributeValue("", 91232, "form__field-group", 91232, 17, true);
5410 WriteAttributeValue(" ", 91249, settings.WrapperCssClass, 91250, 25, false);
5411 WriteAttributeValue(" ", 91275, "u-margin-bottom", 91276, 16, true);
5412 WriteAttributeValue(" ", 91291, "dw-mod", 91292, 7, true);
5413 EndWriteAttribute();
5414 WriteLiteral(" ");
5415 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5416 WriteLiteral(">\r\n");
5417 if (!string.IsNullOrEmpty(settings.Label))
5418 {
5419 WriteLiteral(" <label>");
5420 Write(settings.Label);
5421 WriteLiteral("</label>\r\n");
5422 }
5423 if (!string.IsNullOrEmpty(settings.HelpText))
5424 {
5425 WriteLiteral(" <small class=\"form__help-text\">");
5426 Write(settings.HelpText);
5427 WriteLiteral("</small>\r\n");
5428 }
5429 WriteLiteral("\r\n");
5430 foreach (var item in settings.Options)
5431 {
5432 if (settings.Required)
5433 {
5434 item.Required = true;
5435 }
5436 if (settings.Disabled)
5437 {
5438 item.Disabled = true;
5439 }
5440 if (!string.IsNullOrEmpty(settings.Name))
5441 {
5442 item.Name = settings.Name;
5443 }
5444 if (settings.Value != null && settings.Value == item.Value)
5445 {
5446 item.Checked = true;
5447 }
5448 if (!string.IsNullOrEmpty(settings.OnClick))
5449 {
5450 item.OnClick += settings.OnClick;
5451 }
5452 if (!string.IsNullOrEmpty(settings.OnChange))
5453 {
5454 item.OnChange += settings.OnChange;
5455 }
5456 if (!string.IsNullOrEmpty(settings.CssClass))
5457 {
5458 item.CssClass += settings.CssClass;
5459 }
5460 Render(item);
5461 }
5462 WriteLiteral("\r\n Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n");
5463 }
5464
5465 void RenderForm(Form settings) {
5466 if (settings != null)
5467 {
5468 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
5469 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); };
5470 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); };
5471 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); };
5472 var enctypes = new Dictionary<string, string>
5473 {
5474 { "multipart", "multipart/form-data" },
5475 { "text", "text/plain" },
5476 { "application", "application/x-www-form-urlencoded" }
5477 };
5478 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); };
5479 optionalAttributes.Add("method", settings.Method.ToString());
5480
5481 if (!string.IsNullOrEmpty(settings.FormStartMarkup))
5482 {
5483 Write(settings.FormStartMarkup);
5484
5485 }
5486 else
5487 {
5488 WriteLiteral(" ");
5489 WriteLiteral("<form class=\"");
5490 Write(settings.CssClass);
5491 WriteLiteral(" u-no-margin dw-mod\" ");
5492 Write(ComponentMethods.AddAttributes(optionalAttributes));
5493 WriteLiteral(" ");
5494 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5495 WriteLiteral(">\r\n");
5496 }
5497
5498 foreach (var field in settings.GetFields())
5499 {
5500 Render(field);
5501 }
5502
5503 WriteLiteral(" ");
5504 WriteLiteral("</form>\r\n");
5505 }
5506 }
5507
5508 void RenderText(Text settings)
5509 {
5510 Write(settings.Content);
5511
5512 }
5513
5514 void RenderContentModule(ContentModule settings) {
5515 if (!string.IsNullOrEmpty(settings.Content))
5516 {
5517 Write(settings.Content);
5518
5519 }
5520 }
5521
5522 void RenderModal(Modal settings) {
5523 if (settings != null)
5524 {
5525 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
5526
5527 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : "";
5528
5529 WriteLiteral(" <input type=\"checkbox\"");
5530 BeginWriteAttribute("id", " id=\"", 95694, "\"", 95721, 2);
5531 WriteAttributeValue("", 95699, modalId, 95699, 10, false);
5532 WriteAttributeValue("", 95709, "ModalTrigger", 95709, 12, true);
5533 EndWriteAttribute();
5534 WriteLiteral(" class=\"modal-trigger\" ");
5535 Write(onchange);
5536 WriteLiteral(" />\r\n");
5537 WriteLiteral(" <div class=\"modal-container\">\r\n");
5538 if (!settings.DisableDarkOverlay)
5539 {
5540 WriteLiteral(" <label");
5541 BeginWriteAttribute("for", " for=\"", 95901, "\"", 95929, 2);
5542 WriteAttributeValue("", 95907, modalId, 95907, 10, false);
5543 WriteAttributeValue("", 95917, "ModalTrigger", 95917, 12, true);
5544 EndWriteAttribute();
5545 BeginWriteAttribute("id", " id=\"", 95930, "\"", 95957, 2);
5546 WriteAttributeValue("", 95935, modalId, 95935, 10, false);
5547 WriteAttributeValue("", 95945, "ModalOverlay", 95945, 12, true);
5548 EndWriteAttribute();
5549 WriteLiteral(" class=\"modal-overlay\"></label>\r\n");
5550 }
5551 WriteLiteral(" <div");
5552 BeginWriteAttribute("class", " class=\"", 96030, "\"", 96139, 5);
5553 WriteAttributeValue("", 96038, "modal", 96038, 5, true);
5554 WriteAttributeValue(" ", 96043, "modal--", 96044, 8, true);
5555 WriteAttributeValue("", 96051, settings.Width.ToString().ToLower(), 96051, 36, false);
5556 WriteAttributeValue(" ", 96087, "modal-height--", 96088, 15, true);
5557 WriteAttributeValue("", 96102, settings.Height.ToString().ToLower(), 96102, 37, false);
5558 EndWriteAttribute();
5559 BeginWriteAttribute("id", " id=\"", 96140, "\"", 96160, 2);
5560 WriteAttributeValue("", 96145, modalId, 96145, 10, false);
5561 WriteAttributeValue("", 96155, "Modal", 96155, 5, true);
5562 EndWriteAttribute();
5563 WriteLiteral(">\r\n");
5564 if (settings.Heading != null)
5565 {
5566 if (!string.IsNullOrEmpty(settings.Heading.Title))
5567 {
5568 WriteLiteral(" <div class=\"modal__header\">\r\n RenderHeading(settings.Heading);\r\n </div>\r\n");
5569 }
5570 }
5571 WriteLiteral(" <div");
5572 BeginWriteAttribute("class", " class=\"", 96575, "\"", 96670, 2);
5573 WriteAttributeValue("", 96583, "modal__body", 96583, 11, true);
5574 WriteAttributeValue(" ", 96594, settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "", 96595, 75, false);
5575 EndWriteAttribute();
5576 WriteLiteral(">\r\n");
5577 if (!string.IsNullOrEmpty(settings.BodyText))
5578 {
5579 Write(settings.BodyText);
5580
5581 }
5582 if (settings.BodyTemplate != null)
5583 {
5584 Write(settings.BodyTemplate);
5585
5586 }
5587
5588 var actions = settings.GetActions();
5589 WriteLiteral(" </div>\r\n");
5590 if (actions.Length > 0)
5591 {
5592 WriteLiteral(" <div class=\"modal__footer\">\r\n");
5593 foreach (var action in actions)
5594 {
5595 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") {
5596 action.CssClass += " u-no-margin";
5597 } else {
5598 action.CssClass += " u-full-width u-margin-bottom";
5599 }
5600
5601 Render(action);
5602 }
5603 WriteLiteral(" </div>\r\n");
5604 }
5605 WriteLiteral(" <label class=\"modal__close-btn\"");
5606 BeginWriteAttribute("for", " for=\"", 97914, "\"", 97942, 2);
5607 WriteAttributeValue("", 97920, modalId, 97920, 10, false);
5608 WriteAttributeValue("", 97930, "ModalTrigger", 97930, 12, true);
5609 EndWriteAttribute();
5610 WriteLiteral("></label>\r\n </div>\r\n </div>\r\n");
5611 }
5612 }
5613
5614 void RenderMediaListItem(MediaListItem settings)
5615 {
5616 WriteLiteral(" <div");
5617 BeginWriteAttribute("class", " class=\"", 98180, "\"", 98229, 3);
5618 WriteAttributeValue("", 98188, "media-list-item", 98188, 15, true);
5619 WriteAttributeValue(" ", 98203, settings.CssClass, 98204, 18, false);
5620 WriteAttributeValue(" ", 98222, "dw-mod", 98223, 7, true);
5621 EndWriteAttribute();
5622 WriteLiteral(" ");
5623 Write(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : "");
5624 WriteLiteral(">\r\n");
5625 if (!string.IsNullOrEmpty(settings.Label))
5626 {
5627 if (!string.IsNullOrEmpty(settings.Link))
5628 {
5629 Render(new Link
5630 {
5631 Href = settings.Link,
5632 CssClass = "media-list-item__sticker dw-mod",
5633 ButtonLayout = ButtonLayout.None,
5634 Title = settings.Label,
5635 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
5636 });
5637 }
5638 else if (!string.IsNullOrEmpty(settings.OnClick))
5639 {
5640 WriteLiteral(" <span class=\"media-list-item__sticker dw-mod\"");
5641 BeginWriteAttribute("onclick", " onclick=\"", 99037, "\"", 99066, 1);
5642 WriteAttributeValue("", 99047, settings.OnClick, 99047, 19, false);
5643 EndWriteAttribute();
5644 WriteLiteral(">\r\n <span class=\"u-uppercase\">");
5645 Write(settings.Label);
5646 WriteLiteral("</span>\r\n </span>\r\n");
5647 }
5648 else
5649 {
5650 WriteLiteral(" <span class=\"media-list-item__sticker media-list-item__sticker--no-link dw-mod\">\r\n <span class=\"u-uppercase\">");
5651 Write(settings.Label);
5652 WriteLiteral("</span>\r\n </span>\r\n");
5653 }
5654 }
5655 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");
5656 if (!string.IsNullOrEmpty(settings.Title))
5657 {
5658 if (!string.IsNullOrEmpty(settings.Link))
5659 {
5660 Render(new Link
5661 {
5662 Href = settings.Link,
5663 CssClass = "media-list-item__name dw-mod",
5664 ButtonLayout = ButtonLayout.None,
5665 Title = settings.Title,
5666 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
5667 });
5668 }
5669 else if (!string.IsNullOrEmpty(settings.OnClick))
5670 {
5671 WriteLiteral(" <span class=\"media-list-item__name dw-mod\"");
5672 BeginWriteAttribute("onclick", " onclick=\"", 100563, "\"", 100592, 1);
5673 WriteAttributeValue("", 100573, settings.OnClick, 100573, 19, false);
5674 EndWriteAttribute();
5675 WriteLiteral(">");
5676 Write(settings.Title);
5677 WriteLiteral("</span>\r\n");
5678 }
5679 else
5680 {
5681 WriteLiteral(" <span class=\"media-list-item__name media-list-item__name--no-link dw-mod\">");
5682 Write(settings.Title);
5683 WriteLiteral("</span>\r\n");
5684 }
5685 }
5686 WriteLiteral("\r\n");
5687 if (!string.IsNullOrEmpty(settings.Status))
5688 {
5689 WriteLiteral(" <div class=\"media-list-item__state dw-mod\">");
5690 Write(settings.Status);
5691 WriteLiteral("</div>\r\n");
5692 }
5693 WriteLiteral(" </div>\r\n");
5694
5695 settings.InfoTable.CssClass += " media-list-item__parameters-table";
5696 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");
5697
5698 var actions = settings.GetActions();
5699
5700 foreach (ButtonBase action in actions)
5701 {
5702 action.ButtonLayout = ButtonLayout.None;
5703 action.CssClass += " media-list-item__action link";
5704
5705 Render(action);
5706 }
5707 WriteLiteral(" </div>\r\n\r\n");
5708 if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title))
5709 {
5710 settings.SelectButton.CssClass += " u-no-margin";
5711
5712 WriteLiteral(" <div class=\"media-list-item__action-button\">\r\n Render(settings.SelectButton);\r\n </div>\r\n");
5713 }
5714 WriteLiteral(" </div>\r\n </div>\r\n </div>\r\n");
5715 }
5716
5717 void RenderTable(Table settings)
5718 {
5719 Dictionary<string, string> attributes = new Dictionary<string, string>();
5720 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5721
5722 var enumToClasses = new Dictionary<TableDesign, string>
5723 {
5724 { TableDesign.Clean, "table--clean" },
5725 { TableDesign.Bordered, "table--bordered" },
5726 { TableDesign.Striped, "table--striped" },
5727 { TableDesign.Hover, "table--hover" },
5728 { TableDesign.Compact, "table--compact" },
5729 { TableDesign.Condensed, "table--condensed" },
5730 { TableDesign.NoTopBorder, "table--no-top-border" }
5731 };
5732 string tableDesignClass = "";
5733 if (settings.Design != TableDesign.None)
5734 {
5735 tableDesignClass = enumToClasses[settings.Design];
5736 }
5737
5738 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); }
5739
5740 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
5741
5742 WriteLiteral(" <table ");
5743 Write(ComponentMethods.AddAttributes(resultAttributes));
5744 WriteLiteral(">\r\n");
5745 if (settings.Header != null)
5746 {
5747 WriteLiteral(" <thead>\r\n Render(settings.Header);\r\n </thead>\r\n");
5748 }
5749 WriteLiteral(" <tbody>\r\n");
5750 foreach (var row in settings.Rows)
5751 {
5752 Render(row);
5753 }
5754 WriteLiteral(" </tbody>\r\n");
5755 if (settings.Footer != null)
5756 {
5757 WriteLiteral(" <tfoot>\r\n Render(settings.Footer);\r\n </tfoot>\r\n");
5758 }
5759 WriteLiteral(" </table>\r\n");
5760 }
5761
5762 void RenderTableRow(TableRow settings)
5763 {
5764 Dictionary<string, string> attributes = new Dictionary<string, string>();
5765 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5766
5767 var enumToClasses = new Dictionary<TableRowDesign, string>
5768 {
5769 { TableRowDesign.NoBorder, "table__row--no-border" },
5770 { TableRowDesign.Border, "table__row--border" },
5771 { TableRowDesign.TopBorder, "table__row--top-line" },
5772 { TableRowDesign.BottomBorder, "table__row--bottom-line" },
5773 { TableRowDesign.Solid, "table__row--solid" }
5774 };
5775
5776 string tableRowDesignClass = "";
5777 if (settings.Design != TableRowDesign.None)
5778 {
5779 tableRowDesignClass = enumToClasses[settings.Design];
5780 }
5781
5782 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); }
5783
5784 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
5785
5786 WriteLiteral(" <tr ");
5787 Write(ComponentMethods.AddAttributes(resultAttributes));
5788 WriteLiteral(">\r\n");
5789 foreach (var cell in settings.Cells)
5790 {
5791 if (settings.IsHeaderRow)
5792 {
5793 cell.IsHeader = true;
5794 }
5795 Render(cell);
5796 }
5797 WriteLiteral(" </tr>\r\n");
5798 }
5799
5800 void RenderTableCell(TableCell settings)
5801 {
5802 Dictionary<string, string> attributes = new Dictionary<string, string>();
5803 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5804 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); }
5805 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); }
5806 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); }
5807
5808 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
5809
5810 string tagName = settings.IsHeader ? "th" : "td";
5811
5812 Write("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">");
5813 Write(settings.Content);
5814 Write("</" + tagName + ">");
5815 ;
5816 }
5817
5818 BlocksPage articlePage = BlocksPage.GetBlockPage("DynamicArticle");
5819
5820 public string GetParentSettingsItem(string systemName)
5821 {
5822 string item = null;
5823
5824 Dynamicweb.Content.Page current = Dynamicweb.Services.Pages.GetPage(Model.ID);
5825 while (current != null && current.Parent != current)
5826 {
5827 var temp = current.Item != null ? current.Item[systemName] : "";
5828
5829 if (temp != null)
5830 {
5831 item = temp.ToString();
5832
5833 if (!String.IsNullOrEmpty(item) && !String.Equals("default", item, StringComparison.OrdinalIgnoreCase))
5834 {
5835 break;
5836 }
5837 }
5838
5839 current = current.Parent;
5840 }
5841
5842 return item;
5843 }
5844
5845 public string GetArticleCategory(int pageId)
5846 {
5847 string categoryName = null;
5848
5849 //Secure that the article is not in the root folder = Actual has a category
5850 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null)
5851 {
5852 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null)
5853 {
5854 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType))
5855 {
5856 categoryName = Dynamicweb.Services.Pages.GetPage(pageId).Parent.GetDisplayName();
5857 }
5858 }
5859 }
5860
5861 return categoryName;
5862 }
5863
5864 public string GetArticleCategoryColor(int pageId)
5865 {
5866 string categoryColor = "";
5867
5868 //Secure that the article is not in the root folder = Actual has a category
5869 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null)
5870 {
5871 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null)
5872 {
5873 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType))
5874 {
5875 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"] != null)
5876 {
5877 var service = new ColorSwatchService();
5878 categoryColor = Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"].ToString();
5879
5880 if (!categoryColor.Contains("#"))
5881 {
5882 categoryColor = service.GetHexColor(Converter.ToInt32(Model.Area.ID), categoryColor);
5883 }
5884 }
5885 }
5886 }
5887 }
5888
5889 return categoryColor;
5890 }
5891 }
5892 }
5893 #pragma warning restore 1591
5894
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.Extensibility
3428 @using Dynamicweb.Core
3429 @using Dynamicweb.Rapido.Blocks.Components
3430 @using Dynamicweb.Rapido.Blocks.Components.Articles
3431 @using Dynamicweb.Rapido.Blocks.Components.General
3432 @using Dynamicweb.Rapido.Blocks
3433 @using Dynamicweb.Content.Items
3434
3435 @functions {
3436 BlocksPage articlePage = BlocksPage.GetBlockPage("DynamicArticle");
3437
3438 public string GetParentSettingsItem(string systemName)
3439 {
3440 string item = null;
3441
3442 Dynamicweb.Content.Page current = Dynamicweb.Services.Pages.GetPage(Model.ID);
3443 while (current != null && current.Parent != current)
3444 {
3445 var temp = current.Item != null ? current.Item[systemName] : "";
3446
3447 if (temp != null)
3448 {
3449 item = temp.ToString();
3450
3451 if (!String.IsNullOrEmpty(item) && !String.Equals("default", item, StringComparison.OrdinalIgnoreCase))
3452 {
3453 break;
3454 }
3455 }
3456
3457 current = current.Parent;
3458 }
3459
3460 return item;
3461 }
3462
3463 public string GetArticleCategory(int pageId)
3464 {
3465 string categoryName = null;
3466
3467 //Secure that the article is not in the root folder = Actual has a category
3468 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null)
3469 {
3470 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null)
3471 {
3472 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType))
3473 {
3474 categoryName = Dynamicweb.Services.Pages.GetPage(pageId).Parent.GetDisplayName();
3475 }
3476 }
3477 }
3478
3479 return categoryName;
3480 }
3481
3482 public string GetArticleCategoryColor(int pageId)
3483 {
3484 string categoryColor = "";
3485
3486 //Secure that the article is not in the root folder = Actual has a category
3487 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null)
3488 {
3489 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null)
3490 {
3491 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType))
3492 {
3493 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"] != null)
3494 {
3495 var service = new ColorSwatchService();
3496 categoryColor = Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"].ToString();
3497
3498 if (!categoryColor.Contains("#"))
3499 {
3500 categoryColor = service.GetHexColor(Converter.ToInt32(Model.Area.ID), categoryColor);
3501 }
3502 }
3503 }
3504 }
3505 }
3506
3507 return categoryColor;
3508 }
3509 }
3510
3511 @{
3512 string listPageId = Converter.ToString(GetPageIdByNavigationTag("DynamicListFeed"));
3513 string parentPageId = Dynamicweb.Services.Pages.GetPage(Model.ID).Parent.ID.ToString();
3514 string topLayout = Model.Item.GetList("TopLayout") != null ? Model.Item.GetList("TopLayout").SelectedValue : "default";
3515 topLayout = topLayout == "default" && GetParentSettingsItem("ArticleTopLayout") != null ? GetParentSettingsItem("ArticleTopLayout").ToString().ToLower() : topLayout;
3516 string textLayout = Model.Item.GetList("TextLayout") != null ? Model.Item.GetList("TextLayout").SelectedValue : "default";
3517 textLayout = textLayout == "default" && GetParentSettingsItem("ArticleTextLayout") != null ? GetParentSettingsItem("ArticleTextLayout").ToString().ToLower() : textLayout;
3518 string imageLayout = Model.Item.GetList("ImageLayout") != null ? Model.Item.GetList("ImageLayout").SelectedValue : "default";
3519 imageLayout = imageLayout == "default" && GetParentSettingsItem("ArticleImageLayout") != null ? GetParentSettingsItem("ArticleImageLayout").ToString().ToLower() : imageLayout;
3520
3521 //string imageColumns = imageLayout == "straight" && textLayout != "full" ? "8" : "12";
3522 //string contentColumns = textLayout != "full" ? "8" : "12";
3523 string imageColumns = "12";
3524 string contentColumns = "12";
3525
3526 int externalParagraphId = Model.Item.GetItem("CTAParagraphLink") != null ? Model.Item.GetItem("CTAParagraphLink").ParagraphID : 0;
3527
3528 ArticleHeaderLayout headerLayout;
3529
3530 switch (topLayout)
3531 {
3532 case "default":
3533 headerLayout = ArticleHeaderLayout.Clean;
3534 break;
3535 case "split":
3536 headerLayout = ArticleHeaderLayout.Split;
3537 break;
3538 case "banner":
3539 headerLayout = ArticleHeaderLayout.Banner;
3540 break;
3541 case "overlay":
3542 headerLayout = ArticleHeaderLayout.Overlay;
3543 break;
3544 default:
3545 headerLayout = ArticleHeaderLayout.Clean;
3546 break;
3547 }
3548
3549
3550 Block articleContainer = new Block
3551 {
3552 Id = "ArticleContainer",
3553 SortId = 10,
3554 Design = new Design
3555 {
3556 RenderType = RenderType.Row
3557 },
3558 BlocksList = new List<Block> {
3559 new Block {
3560 Id = "ArticleBody",
3561 SortId = 30,
3562 Design = new Design {
3563 RenderType = RenderType.Column,
3564 Size = "12",
3565 HidePadding = true,
3566 CssClass = "margin-top-large"
3567 }
3568 }
3569 }
3570 };
3571 articlePage.Add(articleContainer);
3572
3573 ButtonLayout topBannerButtonLayout = ButtonLayout.Primary;
3574
3575 switch (Model.Item.GetString("ButtonDesign"))
3576 {
3577 case "primary":
3578 topBannerButtonLayout = ButtonLayout.Primary;
3579 break;
3580 case "secondary":
3581 topBannerButtonLayout = ButtonLayout.Secondary;
3582 break;
3583 case "teritary":
3584 topBannerButtonLayout = ButtonLayout.Tertiary;
3585 break;
3586 case "link":
3587 topBannerButtonLayout = ButtonLayout.Link;
3588 break;
3589 }
3590
3591 ArticleHeader topBanner = new ArticleHeader
3592 {
3593 Layout = headerLayout,
3594 Image = new Image { Path = Model.Item.GetFile("Image"), ImageDefault = new ImageSettings { Width = 1920, Height = 640 } },
3595 Heading = Model.Item.GetString("Title"),
3596 Subheading = Model.Item.GetString("Summary"),
3597 TextColor = "#fff",
3598 Author = Model.Item.GetString("Author"),
3599 Date = Model.Item.GetString("Date"),
3600 Category = GetArticleCategory(Model.ID),
3601 CategoryColor = GetArticleCategoryColor(Model.ID),
3602 Link = Model.Item.GetString("Link"),
3603 LinkText = Model.Item.GetString("LinkText"),
3604 ButtonLayout = topBannerButtonLayout,
3605 RatingScore = Model.Item.GetString("Rating") != null ? Converter.ToInt32(Model.Item.GetList("Rating").SelectedValue) : 0,
3606 RatingOutOf = Model.Item.GetString("Rating") != null ? Model.Item.GetList("Rating").Options.Count : 0,
3607 ExternalParagraphId = externalParagraphId
3608 };
3609
3610 Block articleTop = new Block
3611 {
3612 Id = "ArticleHead",
3613 SortId = 20,
3614 Component = topBanner,
3615 Design = new Design
3616 {
3617 RenderType = RenderType.Column,
3618 Size = "12",
3619 HidePadding = true,
3620 CssClass = "article-head"
3621 }
3622 };
3623 //articlePage.Add("ArticleContainer", articleTop);
3624
3625
3626 Block articleBodyRow = new Block
3627 {
3628 Id = "ArticleBodyRow",
3629 SortId = 10,
3630 SkipRenderBlocksList = true
3631 };
3632 articlePage.Add("ArticleBody", articleBodyRow);
3633
3634
3635 if (Model.Item.GetString("Paragraphs") != null)
3636 {
3637 int count = 0;
3638 foreach (var paragraph in Model.Item.GetItems("Paragraphs"))
3639 {
3640 if (!paragraph.GetBoolean("RenderAsQuote"))
3641 {
3642 string enableDropCap = Model.Item.GetString("EnableDropCap") != null ? Model.Item.GetList("EnableDropCap").SelectedValue.ToLower() : "default";
3643 enableDropCap = enableDropCap == "default" && GetParentSettingsItem("EnableDropCap") != null ? GetParentSettingsItem("EnableDropCap").ToString().ToLower() : enableDropCap;
3644 string text = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : "";
3645
3646 if (!String.IsNullOrEmpty(text) && enableDropCap == "true" && count == 0 && paragraph.GetString("Text").Substring(0, 3) == "<p>")
3647 {
3648 string firstLetter = paragraph.GetString("Text").Substring(3, 1);
3649 text = paragraph.GetString("Text").Remove(3, 1);
3650 text = text.Insert(3, "<span class=\"article__drop-cap\">" + firstLetter + "</span>");
3651 }
3652
3653 if (!String.IsNullOrEmpty(paragraph.GetString("Heading")))
3654 {
3655 Block articleParagraphHeader = new Block
3656 {
3657 Id = "ArticleParagraph" + count + "Heading",
3658 SortId = (count * 10) ,
3659 Component = new ArticleSubHeader { Title = paragraph.GetString("Heading") },
3660 Design = new Design
3661 {
3662 RenderType = RenderType.Column,
3663 Size = contentColumns,
3664 CssClass = "u-color-light--bg u-padding--lg"
3665 }
3666 };
3667 articlePage.Add("ArticleBodyRow", articleParagraphHeader);
3668 }
3669
3670 if (paragraph.GetFile("Image") != null)
3671 {
3672 string imageTitle = !string.IsNullOrEmpty(paragraph.GetString("Heading")) ? paragraph.GetString("Heading") : "";
3673
3674 Block articleParagraphImage = new Block
3675 {
3676 Id = "ArticleParagraph" + count + "Image",
3677 SortId = (count * 10) + 2,
3678 Design = new Design
3679 {
3680 RenderType = RenderType.Column,
3681 Size = imageColumns,
3682 CssClass = "u-color-light--bg u-padding--lg"
3683 }
3684 };
3685
3686 if (imageLayout == "banner")
3687 {
3688 ArticleBanner banner = new ArticleBanner
3689 {
3690 Image = new Image { Path = paragraph.GetFile("Image"), ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, Caption = paragraph.GetString("ImageCaption") },
3691 Heading = imageTitle,
3692 UseFilters = false
3693 };
3694 articleParagraphImage.Component = banner;
3695 }
3696 else
3697 {
3698 ArticleImage image = new ArticleImage
3699 {
3700 Image = new Image
3701 {
3702 Path = paragraph.GetFile("Image"),
3703 Title = imageTitle,
3704 ImageDefault = new ImageSettings { Height = 650, Width = 1300 },
3705 Caption = paragraph.GetString("ImageCaption"),
3706 CssClass = "u-full-width"
3707 }
3708 };
3709 articleParagraphImage.Component = image;
3710 }
3711
3712 articlePage.Add("ArticleBodyRow", articleParagraphImage);
3713 }
3714
3715 if (!String.IsNullOrEmpty(paragraph.GetString("VideoURL")))
3716 {
3717 Block articleParagraphVideo = new Block
3718 {
3719 Id = "ArticleParagraph" + count + "Video",
3720 SortId = (count * 10) + 3,
3721 Component = new ArticleVideo { Url = paragraph.GetString("VideoURL"), AutoPlay = "false" },
3722 Design = new Design
3723 {
3724 RenderType = RenderType.Column,
3725 Size = imageColumns,
3726 CssClass = "u-color-light--bg u-padding--lg"
3727 }
3728 };
3729 articlePage.Add("ArticleBodyRow", articleParagraphVideo);
3730 }
3731
3732 if (!String.IsNullOrEmpty(text))
3733 {
3734 Block articleParagraphText = new Block
3735 {
3736 Id = "ArticleParagraph" + count + "Text",
3737 SortId = (count * 10) + 3,
3738 Component = new ArticleText { Text = text },
3739 Design = new Design
3740 {
3741 RenderType = RenderType.Column,
3742 Size = contentColumns,
3743 CssClass = "u-color-light--bg u-padding--lg"
3744 }
3745 };
3746
3747 articlePage.Add("ArticleBodyRow", articleParagraphText);
3748 }
3749 }
3750 else
3751 {
3752 if (!String.IsNullOrEmpty(paragraph.GetString("Text")))
3753 {
3754 string quoteText = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : "";
3755 string quoteAuthor = paragraph.GetString("Heading") != null ? paragraph.GetString("Heading") : "";
3756
3757 Block articleParagraphQuote = new Block
3758 {
3759 Id = "ArticleParagraph" + count + "Quote",
3760 SortId = (count * 10) + 3,
3761 Component = new ArticleQuote { Image = new Image { Path = paragraph.GetFile("Image") }, Text = quoteText, Author = quoteAuthor },
3762 Design = new Design
3763 {
3764 RenderType = RenderType.Column,
3765 Size = contentColumns,
3766 CssClass = "u-color-light--bg u-padding--lg"
3767 }
3768 };
3769 articlePage.Add("ArticleBodyRow", articleParagraphQuote);
3770 }
3771 }
3772
3773 count++;
3774 }
3775 }
3776
3777 articleBodyRow.Component = new ArticleBodyRow { SubBlocks = articleBodyRow.BlocksList, TopLayout = topLayout, TextLayout = textLayout };
3778
3779
3780 //Related
3781 string showRelatedArtices = Model.Item.GetString("ShowRelatedArticles") != null ? Model.Item.GetList("ShowRelatedArticles").SelectedValue.ToLower() : "default";
3782 showRelatedArtices = showRelatedArtices == "default" && GetParentSettingsItem("ShowRelatedArticles") != null ? GetParentSettingsItem("ShowRelatedArticles").ToString().ToLower() : showRelatedArtices;
3783
3784 if (showRelatedArtices == "true")
3785 {
3786 Block articleRelated = new Block
3787 {
3788 Id = "ArticleRelated",
3789 SortId = 30,
3790 Component = new ArticleRelated { Title = Translate("Related articles"), FeedPageId = listPageId, Query = "sourceType=Page&sourcePage=" + parentPageId, PageSize = 4, CurrentPageId = Model.ID.ToString() },
3791 Design = new Design
3792 {
3793 RenderType = RenderType.Column,
3794 Size = "12"
3795 }
3796 };
3797 articlePage.Add("ArticleContainer", articleRelated);
3798 }
3799 }
3800
3801
3802 @* The @RenderBlockList base helper is included in Components/GridBuilder.cshtml *@
3803 <section class="center-container content-container dw-mod">
3804 @RenderBlockList(articlePage.BlocksRoot.BlocksList)
3805 </section>
3806 </div>
3807
3808 @if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true)
3809 {
3810 string bName = MyBroker.Broker.Name;
3811 string bClass = "na";
3812 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png";
3813
3814 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName))
3815 {
3816 bName = MyBroker.Broker.CompanyName;
3817 }
3818 try
3819 {
3820 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl");
3821 if (!string.IsNullOrEmpty(imgUrl))
3822 {
3823 bImage = imgUrl;
3824 bClass = "";
3825 }
3826 }
3827 catch
3828 {
3829 // Ignore
3830 }
3831
3832 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId");
3833 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
3834
3835 <section class="din-maegler">
3836 <div class="img-wrapper @bClass" style="background-image:url('@bImage')"></div>
3837 <div class="container">
3838 <div class="col-12 col-sm-12 col-md-6 offset-md-6">
3839 <h2>Din personlige mægler</h2>
3840 <div class="row">
3841 <div class="col-12 col-sm-6">
3842 <p>
3843 <b class="my-broker-name">@MyBroker.Employee.Name</b><br>
3844 @if (!string.IsNullOrEmpty(MyBroker.Employee.Email))
3845 {
3846 <text>Mail: <a href="mailto:@(ExtractMaskedEmail(MyBroker.Employee.Email))" class="my-broker-email">@ExtractMaskedEmail(MyBroker.Employee.Email)</a><br></text>
3847 }
3848 @if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile))
3849 {
3850 <text>Tlf.: <a href="tel:@(MyBroker.Employee.PhoneMobile)" class="my-broker-phone">@FormatPhoneNumber(MyBroker.Employee.PhoneMobile)</a></text>
3851 }
3852 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
3853 {
3854 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-phone">@FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text>
3855 }
3856 </p>
3857 </div>
3858 <div class="col-12 col-sm-6">
3859 <p>
3860 <b class="my-broker-company-name">@bName</b><br>
3861 <span class="my-broker-company-address">@MyBroker.Broker.Address</span><br>
3862 <span class="my-broker-company-zip">@MyBroker.Broker.ZipCode</span> <span class="my-broker-company-city">@MyBroker.Broker.City</span><br>
3863 @if (!string.IsNullOrEmpty(bEmail))
3864 {
3865 <text>Mail: <a href="mailto:@(bEmail)" class="my-broker-broker-email">@bEmail</a><br></text>
3866 }
3867 @if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
3868 {
3869 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-broker-phone">@FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text>
3870 }
3871 </p>
3872 </div>
3873 </div>
3874 <div class="row">
3875 <br />
3876 <div class="col-12 col-sm-6">
3877 <a href="/@medlemsnummer.Substring(1)" class="btn btn-primary btn-block my-broker-company-url">Til mæglerens side</a>
3878 </div>
3879
3880 </div>
3881 </div>
3882 </div>
3883 </section>
3884 }
3885 <footer>
3886 <div class="container">
3887 <div class="row">
3888 @{
3889 var navigationSettings = new NavigationSettings();
3890 navigationSettings.StartLevel = 1;
3891 navigationSettings.StopLevel = 3;
3892 navigationSettings.ExpandMode = ExpandMode.All;
3893 navigationSettings.RootAreaId = 1;
3894 navigationSettings.RootNavigationTag = "footer-nav";
3895
3896 }
3897 @Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings)
3898 </div>
3899 </div>
3900 </footer>
3901
3902 @* Anonymous visitors have a null CurrentUser, and "null <= 0" is false - the panel has to
3903 render for exactly those users, so the null case is spelled out. *@
3904 @if (Model.CurrentUser == null || Model.CurrentUser.ID <= 0)
3905 {
3906 <div id="panel-login" class="panel panel-form js-loginforms">
3907 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3908 <b></b>
3909 </button>
3910 <div class="loginform login">
3911 @if (loginParagraphId > 0)
3912 {
3913 <text>
3914 @RenderParagraphContent(loginParagraphId)
3915 </text>
3916 }
3917 </div>
3918 <div class="loginform register js-register-form-wrapper" style="display: none;">
3919 @if (createUserParagraphId > 0)
3920 {
3921 <text>
3922 @RenderParagraphContent(createUserParagraphId)
3923 </text>
3924 }
3925 </div>
3926 @* Shared "glemt adgangskode"-form. Renders both inside #panel-login (SPmaster) and inline on the
3927 login page, so all hooks are classes - ids would collide when both are on the same page. *@
3928 <div class="loginform forgotpw" style="display: none;">
3929 <h2 class="forgotpw-reg">@Translate("forgot-pw-reg-title", "Glemt adgangskode")</h2>
3930 <h2 class="forgotpw-broker">@Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")</h2>
3931 <form class="form-body js-forgotpw-form" method="post" action="">
3932 <input type="hidden" name="AccessUserShopID" class="js-forgotpw-shopid" value="SHOP6" />
3933 <p class="forgotpw-reg">@Translate("forgot-pw-reg-teaser", "Har du glemt din adgangskode? Udfyld din e-mail herunder og få tilsendt instrukser for nulstillelse/ændring af din adgangskode.")</p>
3934 <p class="forgotpw-broker">@Translate("forgot-pw-broker-teaser", "Er du blevet tilmeldt via. din mægler, men mangler adgangskode til dit login? Udfyld e-mailen du har oplyst hos mægleren og få tilsendt instrukser for nulstillelse/ændring af din adgangskode.")</p>
3935 <div class="form-group">
3936 <input name="AccessUserEmail" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" placeholder="E-mail" class="form-control js-forgotpw-email" required />
3937 </div>
3938 <button class="btn btn-primary btn-block" type="submit">@Translate("forgot-pw-cta", "Nulstil adgangskode")</button>
3939 <br />
3940 <div class="js-forgotpw-message"></div>
3941 </form>
3942
3943 <hr>
3944 <button type="button" class="btn btn-default btn-block action-login">@Translate("forgot-pw-back-to-login", "Tilbage til login")</button>
3945 </div>
3946
3947 </div>
3948 }
3949
3950 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel>
3951 @using Dynamicweb.Security.UserManagement
3952
3953 @{
3954 string privacyPolicyText = Translate("Smartpage:PrivacyPolicyText", "* Der samles ingen personlige oplysninger uden dit udtrykkelige samtykke. Ved at klikke på denne checkboks giver du dit samtykke til, at dine data samles og behandles af RealMæglerne A/S for at kunne kontakte dig. Du kan til enhver tid tilbagekalde dit samtykke. For at gøre dette skal du blot sende en meddelelse til");
3955 }
3956
3957 <div id="panel-kontakt-koeberraadgivning" class="panel panel-form">
3958 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3959 <b></b>
3960 </button>
3961 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2>
3962 <form id="form-koeberraadgivning" method="POST" action="/InboxHandler">
3963 <div class="form-group">
3964 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
3965 <input class="form-control" type="text" name="navn" tabindex="1" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required />
3966 </div>
3967 <div class="form-group">
3968 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
3969 <input class="form-control" type="email" tabindex="2" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Email", "Indtast din e-mail")' value='@UserContext.Current.User?.Email' required />
3970 </div>
3971 <div class="form-group row mb-4">
3972 <div class="col-6">
3973 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
3974 <input class="form-control" type="tel" pattern="^[0-9]*$" tabindex="3" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required />
3975 </div>
3976 <div class="col-6">
3977 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
3978 <input class="form-control" type="tel" pattern="^[0-9]*$" tabindex="4" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current?.User?.Phone' />
3979 </div>
3980 </div>
3981 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
3982 <div class="form-group row">
3983 <div class="col-4">
3984 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
3985 <input class="form-control js-postnummer" type="tel" pattern="^[0-9]*$" maxlength="4" name="postnummer" tabindex="5" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr")' value="@userZip" required />
3986 <input type="hidden" class="js-postnummer-validation" />
3987 </div>
3988 <div class="col-8">
3989 <label><strong>@Translate("form-city", "By")*</strong></label>
3990 <input class="form-control js-city" type="text" readonly />
3991 </div>
3992 </div>
3993 <div class="form-group overflow-unset">
3994 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
3995 <input class="form-control js-validate-address" type="text" name="adresse" tabindex="6" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' required />
3996
3997 <label class="form-validate-error js-address-error d-none" for="adresse">@Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")</label>
3998 </div>
3999 <button class="form-control text-left js-collapse-focus" type="button" data-toggle="collapse" data-target="#kontaktkoeberrradgiver-collapse" aria-expanded="false" aria-controls="kontaktkoeberrradgiver-collapse">
4000 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
4001 </button>
4002 <div class="collapse" id="kontaktkoeberrradgiver-collapse">
4003 <div class="form-group">
4004 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4005 </div>
4006 </div>
4007
4008 <div class="form-group">
4009 <div class="row">
4010 <div class="col-12">
4011 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button>
4012 </div>
4013 </div>
4014 </div>
4015 <div class="form-group mt-3">
4016 <div class="checkbox">
4017 <label>
4018 <input type="checkbox" name="kontaktmigok" required />
4019
4020 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4021
4022 </label>
4023 </div>
4024 </div>
4025 <div class="form-group form-group-terms">
4026 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4027 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4028 </div>
4029
4030 <input type="hidden" name="fn" value="krk" />
4031 <input type="hidden" name="origin" value="" />
4032 <input type="hidden" name="brugerId" value="" />
4033 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4034 <input type="hidden" name="butikId" value="@butikId" />
4035 <input type="hidden" name="ejendomstype" value="" />
4036 <input type="hidden" name="salgspris" value="" />
4037 <input type="hidden" name="modtager" value="" />
4038 </form>
4039 <div id="tak-kontakt-advisor" style="display:none;">
4040 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4041 <div class="row">
4042 <div class="col-6">
4043 <img src="" class="img-fluid js-maegler-img" />
4044 </div>
4045 <div class="col-6">
4046 <p class="js-maegler-name"></p>
4047 <p class="js-maegler-address"></p>
4048 <p class="js-maegler-phone"></p>
4049 <p class="js-maegler-mail"></p>
4050 </div>
4051 </div>
4052 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4053 </div>
4054 </div>
4055
4056 <!--ÅBENT HUS-->
4057 <div id="panel-aabenthus" class="panel panel-form">
4058 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4059 <b></b>
4060 </button>
4061
4062
4063 <form id="form-aabenthus" method="POST" action="/InboxHandler">
4064 <h2>@Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")</h2>
4065 <div class="d-block">
4066 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label>
4067 </div>
4068 <div class="d-block">
4069 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label>
4070 </div>
4071 <div class="d-block mb-4">
4072 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label>
4073 </div>
4074 <h3>@Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")</h3>
4075 <div class="form-group">
4076 <label for="aabenthus-name"><strong>@Translate("form-navn", "Navn")*</strong></label>
4077 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current?.User?.Name' required />
4078 </div>
4079 <div class="form-group">
4080 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4081 <input class="form-control" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Email", "Indtast din e-mail")' value='@UserContext.Current.User?.Email' required />
4082 </div>
4083 <div class="form-group row">
4084 <div class="col-6">
4085 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4086 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required />
4087 </div>
4088 <div class="col-6">
4089 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4090 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current.User?.Phone' />
4091 </div>
4092 </div>
4093 <div class="form-group">
4094 <div class="row">
4095 <div class="col-12">
4096 <button type="submit" class="btn btn-block btn-green">@Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")</button>
4097 </div>
4098 </div>
4099 </div>
4100 <div class="form-group">
4101 <div class="checkbox">
4102 <label>
4103 <input type="checkbox" name="kontaktmigok" required />
4104
4105 <span class="base-color">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4106
4107 </label>
4108 </div>
4109 </div>
4110 <div class="form-group">
4111 @string.Format(Translate("Smartpage:Panel.Accept", "Du accepterer samtidig vores {0} og giver samtykke til, at dine data samles og behandles af RealMæglerne A/S for at kunne kontakte dig"), "<a href='" + settings_Persondatapolitik + "'>privatlivspolitikkerne</a>")
4112
4113 </div>
4114 <input type="hidden" name="fn" value="ah" />
4115 <input type="hidden" name="origin" value="" />
4116 <input type="hidden" name="brugerId" value="@userID" />
4117 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4118 <input type="hidden" name="butikId" value="@butikId" />
4119 <input type="hidden" name="sagsaddresse" value="" class="js-aabenthus-address-input" />
4120 <input type="hidden" name="ejendomstype" value="" />
4121 <input type="hidden" name="salgspris" value="" />
4122 <input type="hidden" name="modtager" value="" />
4123 <input type="hidden" name="employee" value="" />
4124 <input type="hidden" name="sagsnr" value="" class="js-sagsnr" />
4125 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
4126 <input type="hidden" name="aftaleid" value="" class="js-aftaleid" />
4127
4128 <input type="hidden" name="dateMail" class="js-aabenthus-date-input" />
4129 <input type="hidden" name="timeMail" class="js-aabenthus-time-input" />
4130 <input type="hidden" name="brokerImageMail" class="property-broker-image-input" />
4131 <input type="hidden" name="employeeNameMail" class="js-maegler-employee-name-input" />
4132 <input type="hidden" name="employeeTitleMail" class="js-maegler-employee-title-input" />
4133 <input type="hidden" name="employeeMailMail" class="js-maegler-mail-input" />
4134 <input type="hidden" name="employeeMobileMail" class="js-maegler-mobile-input" />
4135 <input type="hidden" name="employeePhoneMail" class="js-maegler-phone-input" />
4136
4137 <input type="hidden" name="brokerNameMail" class="js-broker-name-input" />
4138 <input type="hidden" name="brokerAddressMail" class="js-broker-address-input" />
4139 <input type="hidden" name="brokerPhoneMail" class="js-broker-phone-input" />
4140 </form>
4141 <div id="tak-aabenthus" style="display:none;">
4142 <h2>@Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")</h2>
4143 <div class="d-block">
4144 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label>
4145 </div>
4146 <div class="d-block">
4147 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label>
4148
4149 </div>
4150 <div class="d-block mb-4">
4151 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label>
4152
4153 </div>
4154
4155 <div class="js-employee">
4156 <p>@String.Format(Translate("Smartpage:Aabenthus.Tak", "Vi glæder os til at vise dig boligen. Har du spørgsmål inden vi ses, kan du kontakte {0} fra RealMæglerne"), "<b class='js-aabenthus-employee-name'></b>")</p>
4157 </div>
4158 <div class="js-not-employee">
4159 <p>@Translate("Smartpage:Aabenthus.Tak.NoEmployee", "Vi glæder os til at vise dig boligen. Har du spørgsmål inden vi ses, er du velkommen til at kontakte os")</p>
4160 </div>
4161
4162 <div class="row">
4163 <div class="js-employee">
4164 <div class="col-12 js-maegler-img aabenthus-image">
4165 <div class="property-broker-image" style=""></div>
4166
4167 </div>
4168 </div>
4169 <div class="col-12">
4170 <div class="bg-base">
4171
4172 <div class="js-employee">
4173 <h4 class="js-maegler-employee-name"></h4>
4174 <div class="icon-container">
4175 <i class="fas fa-envelope"></i> <span class="js-maegler-mail"></span>
4176 </div>
4177 <div class="icon-container">
4178 <i class="fas fa-phone"></i> <span class="js-maegler-mobile"></span>
4179 </div>
4180 </div>
4181
4182
4183 <h4 class="js-maegler-name"></h4>
4184 <div class="icon-container">
4185 <i class="fas fa-map-marker-alt"></i> <span class="js-maegler-address"></span>
4186 </div>
4187 <div class="icon-container">
4188 <i class="fas fa-phone"></i> <span class="js-maegler-phone"></span>
4189
4190 </div>
4191 <a class="btn btn-border" onclick="panelKontaktmaeglerGuldkoeber()">KONTAKT MÆGLER</a>
4192 </div>
4193 </div>
4194 </div>
4195 </div>
4196 </div>
4197
4198 <!-- KONTAKT GULDKØBER -->
4199 <div id="panel-kontakt-guldkoeber" class="panel panel-form">
4200 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4201 <b></b>
4202 </button>
4203 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2>
4204 <form id="form-kontaktmaegler" method="POST" action="/InboxHandler">
4205 <div class="form-group">
4206 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
4207 <input class="form-control" type="text" name="navn" placeholder='@Translate("form-navn", "Navn")' value='@UserContext.Current.User?.Name' required />
4208 </div>
4209 <div class="form-group">
4210 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4211 <input class="form-control" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("form-email", "E-mail")' value='@UserContext.Current.User?.Email' required />
4212 </div>
4213 <div class="form-group row mb-4">
4214 <div class="col-6">
4215 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4216 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required />
4217 </div>
4218 <div class="col-6">
4219 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4220 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current.User?.Phone' />
4221 </div>
4222 </div>
4223 <div class="form-group row">
4224 <div class="col-4">
4225 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
4226 <input class="form-control js-postnummer" type="tel" pattern="^[0-9]*$" maxlength="4" name="postnummer" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr")' value="@userZip" required />
4227 <input type="hidden" class="js-postnummer-validation" />
4228 </div>
4229 <div class="col-8">
4230 <label><strong>@Translate("form-city", "By")*</strong></label>
4231 <input class="form-control js-city" type="text" readonly />
4232 </div>
4233 </div>
4234
4235 <div class="form-group overflow-unset">
4236 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
4237 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
4238 <label class="form-validate-error js-address-error d-none" for="adresse">@Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")</label>
4239 </div>
4240 <div class="form-group">
4241 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4242 </div>
4243 <div class="form-group">
4244 <div class="checkbox">
4245 <label>
4246 <input type="checkbox" name="kontaktmigok" required />
4247
4248 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4249
4250 </label>
4251 </div>
4252 </div>
4253 <div class="form-group">
4254 <div class="row">
4255 <div class="col-12">
4256 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button>
4257 </div>
4258 </div>
4259 </div>
4260 <div class="form-group form-group-terms">
4261 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4262 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4263 </div>
4264 <input type="hidden" name="fn" value="gk" />
4265 <input type="hidden" name="origin" value="" />
4266 <input type="hidden" name="brugerId" value="@userID" />
4267 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4268 <input type="hidden" name="butikId" value="@butikId" />
4269 <input type="hidden" name="ejendomstype" value="" />
4270 <input type="hidden" name="salgspris" value="" />
4271 <input type="hidden" name="modtager" value="" />
4272 <input type="hidden" name="employee" value="" />
4273 </form>
4274 <div id="tak-kontakt-maegler-guldkoeber" style="display:none;">
4275 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4276 <p>@Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")</p>
4277 <div class="row">
4278 <div class="col-6">
4279 <img src="" class="img-fluid js-maegler-img" />
4280 </div>
4281 <div class="col-6">
4282 <p class="js-maegler-name"></p>
4283 <p class="js-maegler-address"></p>
4284 <p class="js-maegler-phone"></p>
4285 <p class="js-maegler-mail"></p>
4286 </div>
4287 </div>
4288 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4289 </div>
4290 </div>
4291
4292 <!-- BESTIL SALGSVURDERING -->
4293 <div id="panel-salgsvurdering" class="panel panel-form">
4294 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4295 <b></b>
4296 </button>
4297
4298 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler">
4299 <h2 class="js-buyer-advisor-header">@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2>
4300 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
4301 <div class="form-group">
4302 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
4303 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required />
4304 </div>
4305 <div class="form-group">
4306 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4307 <input class="form-control" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail")' value='@UserContext.Current.User?.Email' required />
4308 </div>
4309 <div class="form-group row mb-4">
4310 <div class="col-6">
4311 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4312 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required />
4313 </div>
4314 <div class="col-6">
4315 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4316 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current.User?.Phone' />
4317 </div>
4318
4319 </div>
4320
4321 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
4322 <div class="form-group row">
4323 <div class="col-4">
4324 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
4325 <input class="form-control js-postnummer js-updatebroker-list" type="tel" pattern="^[0-9]*$" maxlength="4" name="postnummer" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr")' value="@userZip" required />
4326 <input type="hidden" class="js-postnummer-validation" />
4327 </div>
4328 <div class="col-8">
4329 <label><strong>@Translate("form-city", "By")*</strong></label>
4330 <input class="form-control js-city" type="text" readonly />
4331 </div>
4332 </div>
4333 <div class="form-group overflow-unset">
4334 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
4335 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
4336 <label class="form-validate-error js-address-error d-none" for="adresse">@Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")</label>
4337 </div>
4338
4339 <button class="form-control text-left js-collapse-focus" type="button" data-toggle="collapse" data-target="#salgsvurdering-collapse" aria-expanded="false" aria-controls="salgsvurdering-collapse">
4340 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
4341 </button>
4342 <div class="collapse" id="salgsvurdering-collapse">
4343 <div class="form-group">
4344 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4345 </div>
4346 </div>
4347
4348
4349 <div class="salgsvurdering-precheck">
4350 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3>
4351 <div class="col-12">
4352 <div class="choose-broker row align-items-center active">
4353 <div class="col-2">
4354 <input class="js-broker-radio" type="radio" id="" name="choose-broker" value="" checked>
4355 <label class="js-broker-label" for=""></label><div class="check">
4356 <div class="inside">
4357 </div>
4358 </div>
4359 </div>
4360 <div class="col-4">
4361 <img src="" class="img-fluid js-broker-image">
4362 </div>
4363 <div class="col-6">
4364 <span class="d-block">
4365 <strong class="js-choose-broker-name"></strong>
4366 </span>
4367 <span class="js-choose-broker-address"></span>
4368 <input type="hidden" class="js-choose-broker-phone" value="" />
4369 <input type="hidden" class="js-choose-broker-email" value="" />
4370 </div>
4371 </div>
4372 </div>
4373 </div>
4374 <div class="salgsvurdering-broker">
4375 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3>
4376 <div class="js-choose-broker col-12">
4377 </div>
4378
4379 </div>
4380
4381 <div class="form-group mt-4">
4382 <div class="checkbox">
4383 <label>
4384 <input type="checkbox" name="kontaktmigok" required />
4385
4386 <span class="consent-checkbox">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4387
4388 </label>
4389 </div>
4390 </div>
4391 <div class="form-group">
4392 <div class="row">
4393 <div class="col-12">
4394 <button type="submit" class="btn btn-green btn-block js-buyer-advisor-button">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button>
4395 </div>
4396 </div>
4397 </div>
4398 <div class="form-group form-group-terms">
4399 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4400 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4401 </div>
4402 <input type="hidden" name="fn" value="bsv" />
4403 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" />
4404 <input type="hidden" name="brugerId" value="@userID" />
4405 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4406 <input type="hidden" id="boligvisning" name="boligvisning" value="" />
4407 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="" />
4408 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" />
4409 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
4410 <input type="hidden" name="ejendomstype" value="" />
4411 <input type="hidden" name="salgspris" value="" />
4412 <input type="hidden" name="employee" value="" />
4413 <input type="hidden" name="modtager" value="" />
4414 <input class="js-value-check" type="hidden" name="valueCheck" value="" />
4415 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" />
4416 </form>
4417 <div id="tak-salgsvurdering" style="display:none;">
4418 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4419 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p>
4420 <div class="row">
4421 <div class="col-6">
4422 <img src="" class="img-fluid js-maegler-img" />
4423 </div>
4424 <div class="col-6">
4425 <p class="js-maegler-name"></p>
4426 <p class="js-maegler-address"></p>
4427 <p class="js-maegler-phone"></p>
4428 <p class="js-maegler-mail"></p>
4429 </div>
4430 </div>
4431 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4432 </div>
4433 </div>
4434
4435 <!-- BESTIL SALGSVURDERING GULDKØBER -->
4436 <div id="panel-salgsvurdering-guldkoeber" class="panel panel-form">
4437 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4438 <b></b>
4439 </button>
4440
4441 <form id="bestil-salgsvurdering-guldkoeber" method="POST" action="/InboxHandler">
4442 <h2>@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2>
4443 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
4444 <div class="form-group">
4445 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
4446 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required />
4447 </div>
4448 <div class="form-group">
4449 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4450 <input class="form-control" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail")' value='@UserContext.Current.User?.Email' required />
4451 </div>
4452 <div class="form-group row mb-4">
4453 <div class="col-6">
4454 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4455 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current.User?.Phone' />
4456 </div>
4457 <div class="col-6">
4458 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4459 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required />
4460 </div>
4461 </div>
4462
4463 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
4464
4465 <div class="form-group row">
4466 <div class="col-4">
4467 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
4468 <input class="form-control js-postnummer js-updatebroker-list" type="tel" pattern="^[0-9]*$" maxlength="4" name="postnummer" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr")' value="@userZip" required />
4469 <input type="hidden" class="js-postnummer-validation" />
4470 </div>
4471 <div class="col-8">
4472 <label><strong>@Translate("form-city", "By")*</strong></label>
4473 <input class="form-control js-city" type="text" readonly />
4474 </div>
4475 </div>
4476 <div class="form-group overflow-unset">
4477 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
4478 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
4479 <label class="form-validate-error js-address-error d-none" for="adresse">@Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")</label>
4480 </div>
4481
4482 <button class="form-control text-left js-collapse-focus" type="button" data-toggle="collapse" data-target="#salgsvurdering-collapse" aria-expanded="false" aria-controls="salgsvurdering-collapse">
4483 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
4484 </button>
4485 <div class="collapse" id="salgsvurdering-collapse">
4486 <div class="form-group">
4487 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4488 </div>
4489 </div>
4490
4491 <div class="salgsvurdering-precheck">
4492 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3>
4493 <div class="col-12">
4494 <div class="choose-broker row align-items-center active">
4495 <div class="col-2">
4496 <input class="js-broker-radio" type="radio" id="" name="choose-broker-gk" value="" checked>
4497 <label class="js-broker-label" for=""></label><div class="check">
4498 <div class="inside">
4499 </div>
4500 </div>
4501 </div>
4502 <div class="col-4">
4503 <img src="" class="img-fluid js-broker-image">
4504 </div>
4505 <div class="col-6">
4506 <span class="d-block">
4507 <strong class="js-choose-broker-name"></strong>
4508 </span>
4509 <span class="js-choose-broker-address"></span>
4510 <input type="hidden" class="js-choose-broker-phone" value="" />
4511 <input type="hidden" class="js-choose-broker-email" value="" />
4512 </div>
4513 </div>
4514 </div>
4515 </div>
4516 <div class="salgsvurdering-broker">
4517 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3>
4518 <div class="js-choose-broker col-12">
4519 </div>
4520
4521 </div>
4522
4523
4524 <div class="form-group">
4525 <div class="row">
4526 <div class="col-12">
4527 <button type="submit" class="btn btn-green btn-block">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button>
4528 </div>
4529 </div>
4530 </div>
4531 <div class="form-group">
4532 <div class="checkbox">
4533 <label>
4534 <input type="checkbox" name="kontaktmigok" required />
4535
4536 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4537
4538 </label>
4539 </div>
4540 </div>
4541 <div class="form-group form-group-terms">
4542 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4543 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4544 </div>
4545 <input type="hidden" name="fn" value="bsg" />
4546 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" />
4547 <input type="hidden" name="brugerId" value="@userID" />
4548 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4549 <input type="hidden" id="boligvisning-gk" name="boligvisning" value="" />
4550 <input type="hidden" id="panel-salgsvurdering-gk-butikid" name="butikId" value="" />
4551 <input type="hidden" id="panel-salgsvurdering-gk-sagsnr" name="sagsnr" value="" />
4552 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
4553 <input type="hidden" name="ejendomstype" value="" />
4554 <input type="hidden" name="salgspris" value="" />
4555 <input type="hidden" name="employee" value="" />
4556 <input type="hidden" name="modtager" value="" />
4557 </form>
4558 <div id="tak-salgsvurdering" style="display:none;">
4559 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4560 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p>
4561 <div class="row">
4562 <div class="col-6">
4563 <img src="" class="img-fluid js-maegler-img" />
4564 </div>
4565 <div class="col-6">
4566 <p class="js-maegler-name"></p>
4567 <p class="js-maegler-address"></p>
4568 <p class="js-maegler-phone"></p>
4569 <p class="js-maegler-mail"></p>
4570 </div>
4571 </div>
4572 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4573 </div>
4574 </div>
4575
4576 @using Dynamicweb.Core;
4577 @using Dynamicweb.Core.Encoders;
4578
4579 @{
4580 var areaItem = Pageview.Area.Item;
4581 bool turnstileDisabled = areaItem != null
4582 && areaItem.ContainsKey("DisableTurnstile")
4583 && Converter.ToBoolean(areaItem["DisableTurnstile"]);
4584 bool turnstileEnabled = !turnstileDisabled && RealMaeglerne.Dynamicweb.Config.IsTurnstileConfigured();
4585 }
4586
4587 @if (turnstileEnabled)
4588 {
4589 string turnstileSiteKey = RealMaeglerne.Dynamicweb.Config.GetTurnstileSiteKey();
4590 string turnstileAreaId = Converter.ToString(Pageview.Area.ID);
4591 string turnstileLanguage = Pageview.Area.CultureInfo.Name;
4592
4593 <div class="js-turnstile-configuration d-none"
4594 data-site-key="@HtmlEncoder.HtmlAttributeEncode(turnstileSiteKey)"
4595 data-area-id="@HtmlEncoder.HtmlAttributeEncode(turnstileAreaId)">
4596 <input type="hidden"
4597 class="js-turnstile-language"
4598 value="@HtmlEncoder.HtmlAttributeEncode(turnstileLanguage)" />
4599 <input type="hidden"
4600 class="js-turnstile-validation-message-text"
4601 value="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Turnstile.ValidationMessage", "Bekræft venligst, at du ikke er en robot."))" />
4602 </div>
4603 }
4604
4605
4606 <div class="overlay-wrapper"></div>
4607 <div class="dropdown-overlay"></div>
4608 <div class="loader-inner ball-pulse"></div>
4609
4610 @{
4611 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js"));
4612 <script type="text/javascript" src='@(TemplateUrl)assets/webpack/js/3rdparty/viamapstrap.js?@(viamapstrapFileInfo.LastWriteTime.Ticks)' async></script>
4613
4614 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js"));
4615 <script type="text/javascript" src='@(TemplateUrl)assets/dist/bundle.app.min.js?@(bundleFileInfo.LastWriteTime.Ticks)' async></script>
4616 }
4617
4618 @RenderSnippet("JavaScriptBottom")
4619
4620 @if (Context.Current.Request.QueryString["ShowLogin"] == "true")
4621 {
4622 <input class="js-showLogin" value="true" />
4623 }
4624
4625 @if (!string.IsNullOrEmpty(settings_ConduzeId))
4626 {
4627 <script type="text/javascript" id="conduze-sdk" src="https://cdn.conduze.com/@settings_ConduzeId/tracking.js" async></script>
4628 }
4629
4630 @if (!string.IsNullOrEmpty(settings_Weply))
4631 {
4632 <script src="https://app.weply.chat/widget/@settings_Weply" async></script>
4633 }
4634
4635 </body>
4636 </html>
4637
4638