Error compiling template "Designs/rm/DynamicArticleListPage.cshtml"
Line 21: The using directive for 'Dynamicweb.Content.Items' appeared previously in this namespace
Line 22: The using directive for 'Dynamicweb.Frontend.Navigation' appeared previously in this namespace
Line 23: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 24: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 25: The using directive for 'System.Text.RegularExpressions' appeared previously in this namespace
Line 32: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 33: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 35: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 37: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 38: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 39: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 40: The using directive for 'System.Reflection' appeared previously in this namespace
Line 41: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 42: The using directive for 'System.Reflection' appeared previously in this namespace
Line 43: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 44: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 45: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 46: The using directive for 'System.Text.RegularExpressions' appeared previously in this namespace
Line 47: The using directive for 'System.Reflection' appeared previously in this namespace
Line 48: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 49: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 50: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 51: The using directive for 'System.Reflection' appeared previously in this namespace
Line 52: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 53: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 54: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 55: The using directive for 'System.Reflection' appeared previously in this namespace
Line 56: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 57: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 58: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 59: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 60: The using directive for 'System.Reflection' appeared previously in this namespace
Line 61: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 62: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 63: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 64: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 65: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 67: The using directive for 'System.Reflection' appeared previously in this namespace
Line 68: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 69: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 70: The using directive for 'System.Reflection' appeared previously in this namespace
Line 71: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 72: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 73: The using directive for 'System.Reflection' appeared previously in this namespace
Line 74: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 75: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 76: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 77: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 78: The using directive for 'System.Reflection' appeared previously in this namespace
Line 79: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 80: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 81: The using directive for 'System.Reflection' appeared previously in this namespace
Line 82: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 83: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 84: The using directive for 'System.Reflection' appeared previously in this namespace
Line 85: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 86: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 87: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' 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' appeared previously in this namespace
Line 90: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 91: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 92: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 93: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 94: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 95: The using directive for 'Dynamicweb.Content.Items' appeared previously in this namespace
Line 96: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 97: The using directive for 'Dynamicweb.Rapido.Blocks.Components.Articles' appeared previously in this namespace
Line 98: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 99: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 1679: 'PageView.Item' is obsolete: 'Use 'Page.Item' instead'
Line 1679: 'PageView.Item' is obsolete: 'Use 'Page.Item' instead'
Line 1684: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 1686: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 1746: The name 'RenderMobileFilters' does not exist in the current context
Line 1755: 'PageView.Item' is obsolete: 'Use 'Page.Item' instead'
Line 1815: 'PageView.Item' is obsolete: 'Use 'Page.Item' instead'
Line 1830: 'PageView.Item' is obsolete: 'Use 'Page.Item' instead'
Line 1846: 'PageView.Item' is obsolete: 'Use 'Page.Item' instead'
Line 1893: Argument 1: cannot convert from 'void' to 'object'
Line 4930: The variable 'placeholderImage' is assigned but its value is never used
1 // <auto-generated/>
2 #pragma warning disable 1591
3 namespace CompiledRazorTemplates.Dynamic
4 {
5 #line hidden
6 using System.Threading.Tasks;
7 using System.Linq;
8 using System;
9 using System.Globalization;
10 using System.Text.RegularExpressions;
11 using Custom.Integration.Brokers;
12 using RealMaeglerne.Dynamicweb;
13 using Dynamicweb.Content.Items;
14 using Dynamicweb.Environment;
15 using Newtonsoft.Json;
16 using Dynamicweb.Logging;
17 using Dynamicweb.Core;
18 using Dynamicweb.Frontend.Navigation;
19 using Dynamicweb;
20 using static RealMaeglerne.Library.Helper;
21 using Dynamicweb.Content.Items;
22 using Dynamicweb.Frontend.Navigation;
23 using Dynamicweb.Core;
24 using Dynamicweb;
25 using System.Text.RegularExpressions;
26 using System.Collections.Generic;
27 using System.Reflection;
28 using Dynamicweb.Rapido.Blocks.Components;
29 using Dynamicweb.Rapido.Blocks.Components.Articles;
30 using Dynamicweb.Rapido.Blocks.Components.Documentation;
31 using Dynamicweb.Rapido.Blocks;
32 using Dynamicweb;
33 using Dynamicweb.Rapido.Blocks.Components;
34 using Dynamicweb.Rapido.Blocks.Components.General;
35 using Dynamicweb.Rapido.Blocks;
36 using System.IO;
37 using Dynamicweb.Rapido.Blocks.Components;
38 using Dynamicweb.Rapido.Blocks.Components.General;
39 using Dynamicweb.Rapido.Blocks;
40 using System.Reflection;
41 using Dynamicweb.Rapido.Blocks.Components.General;
42 using System.Reflection;
43 using Dynamicweb.Rapido.Blocks.Components.General;
44 using Dynamicweb.Rapido.Blocks.Components;
45 using Dynamicweb.Core;
46 using System.Text.RegularExpressions;
47 using System.Reflection;
48 using Dynamicweb.Rapido.Blocks.Components.General;
49 using Dynamicweb.Rapido.Blocks.Components;
50 using Dynamicweb.Core;
51 using System.Reflection;
52 using Dynamicweb.Rapido.Blocks.Components;
53 using Dynamicweb.Rapido.Blocks.Components.General;
54 using Dynamicweb.Rapido.Blocks;
55 using System.Reflection;
56 using Dynamicweb.Rapido.Blocks.Components.General;
57 using Dynamicweb.Rapido.Blocks.Components;
58 using Dynamicweb.Rapido.Blocks.Components.General;
59 using Dynamicweb.Rapido.Blocks.Components;
60 using System.Reflection;
61 using Dynamicweb.Rapido.Blocks.Components.General;
62 using Dynamicweb.Core;
63 using Dynamicweb.Rapido.Blocks.Components;
64 using Dynamicweb.Rapido.Blocks.Components.General;
65 using Dynamicweb.Rapido.Blocks;
66 using Dynamicweb.Frontend;
67 using System.Reflection;
68 using Dynamicweb.Rapido.Blocks.Components.General;
69 using Dynamicweb.Rapido.Blocks.Components;
70 using System.Reflection;
71 using Dynamicweb.Rapido.Blocks.Components.General;
72 using Dynamicweb.Rapido.Blocks.Components;
73 using System.Reflection;
74 using Dynamicweb.Rapido.Blocks.Components.General;
75 using Dynamicweb.Rapido.Blocks.Components;
76 using Dynamicweb.Rapido.Blocks.Components.General;
77 using Dynamicweb.Rapido.Blocks.Components;
78 using System.Reflection;
79 using Dynamicweb.Rapido.Blocks.Components.General;
80 using Dynamicweb.Rapido.Blocks.Components;
81 using System.Reflection;
82 using Dynamicweb.Rapido.Blocks.Components.General;
83 using Dynamicweb.Rapido.Blocks.Components;
84 using System.Reflection;
85 using Dynamicweb.Rapido.Blocks.Components.General;
86 using Dynamicweb.Rapido.Blocks.Components;
87 using Dynamicweb.Rapido.Blocks.Components.General;
88 using Dynamicweb.Rapido.Blocks.Components.General;
89 using Dynamicweb.Rapido.Blocks.Components;
90 using Dynamicweb.Rapido.Blocks.Components.General;
91 using Dynamicweb.Rapido.Blocks.Components;
92 using Dynamicweb.Rapido.Blocks.Components.General;
93 using Dynamicweb.Rapido.Blocks.Components;
94 using Dynamicweb.Core;
95 using Dynamicweb.Content.Items;
96 using Dynamicweb.Rapido.Blocks.Components;
97 using Dynamicweb.Rapido.Blocks.Components.Articles;
98 using Dynamicweb.Rapido.Blocks.Components.General;
99 using Dynamicweb.Rapido.Blocks;
100 using Dynamicweb.Security.UserManagement;
101 internal class RazorEngine_fd8eb6dd282c4294844432f550cb529d : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
102 {
103 #pragma warning disable 1998
104 public async override global::System.Threading.Tasks.Task ExecuteAsync()
105 {
106 WriteLiteral("\r\n");
107 WriteLiteral("\r\n");
108 WriteLiteral("\r\n");
109 WriteLiteral("\r\n");
110 WriteLiteral("\r\n\r\n\r\n");
111 WriteLiteral("\r\n");
112 WriteLiteral("\r\n");
113 WriteLiteral("\r\n");
114 WriteLiteral("\r\n");
115 WriteLiteral("\r\n");
116 WriteLiteral("\r\n");
117 WriteLiteral("\r\n");
118 WriteLiteral("\r\n");
119 WriteLiteral("\r\n");
120 WriteLiteral("\r\n");
121 WriteLiteral("\r\n");
122 WriteLiteral("\r\n");
123 WriteLiteral("\r\n");
124 WriteLiteral("\r\n\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");
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\r\n");
149 WriteLiteral("\r\n");
150 WriteLiteral("\r\n");
151 WriteLiteral("\r\n\r\n");
152 WriteLiteral("\r\n");
153 WriteLiteral("\r\n");
154 WriteLiteral("\r\n");
155 WriteLiteral("\r\n\r\n");
156 WriteLiteral("\r\n");
157 WriteLiteral("\r\n");
158 WriteLiteral("\r\n");
159 WriteLiteral("\r\n");
160
161 Context.Current.Response.AddHeader("access-control-allow-origin", "*");
162
163 string bodyClass = "";
164 string template = "real";
165 string TemplateUrl = "/Files/Templates/Designs/rm/";
166 string MetaTitle = Model.Title;
167 string MetaDescription = Model.Description;
168 string MetaKeywords = Model.Keywords;
169 string searchClass = "";
170
171 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css"));
172 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}";
173
174 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg";
175
176 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2");
177
178 // Indstillinger
179 var settings_Frontpage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : "";
180 var settings_Boligside = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : "";
181 var settings_Maeglersogning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : "";
182 var settings_MinSide = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : "";
183 var settings_Sibling_Site = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : "";
184 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : "";
185 var settings_Product_Group = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : "";
186 var settings_Boligagent = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : "";
187 var settings_Persondatapolitik = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : "";
188
189 // API
190 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : "";
191 var settings_BoligListFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : "";
192 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : "";
193 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : "";
194 var settings_BoligCountFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : "";
195 var settings_BoligMapFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : "";
196 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"];
197
198 // Forside
199 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : "";
200 var settings_FrontpageVideo = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : "";
201 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : "";
202
203 // Tracking
204 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : "";
205 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"])))
206 {
207 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]);
208 }
209 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : "";
210 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : "";
211 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : "";
212 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]);
213 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]);
214 var settings_Google_Optimize_Id = Converter.ToString(SettingsItem["Google_Optimize_Id"]);
215
216 // Indstillinger for brugerfunktioner
217 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : "";
218 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : "";
219 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : "";
220 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : "";
221
222 int createUserParagraphId = 0;
223 int loginParagraphId = 0;
224 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId);
225 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId);
226
227 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv.
228 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv)
229 int searchPageId = GetPageSettingsPageId("Boligside");
230 if (searchPageId == 0)
231 {
232 searchPageId = GetWebsiteSettingsPageId("Boligside");
233 }
234
235 int boligsideId = GetPageSettingsPageId("Boligside");
236 if (boligsideId == 0)
237 {
238 boligsideId = GetWebsiteSettingsPageId("Boligside");
239 }
240
241 string productGroupFilter = String.Empty;
242 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null)
243 {
244 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString();
245 }
246
247 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"]))
248 {
249 searchClass = "is-frontpage";
250 }
251
252 bool isErhverv = false;
253 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null)
254 {
255 var s = Pageview.Page.PropertyItem["Erhverv"].ToString();
256 Boolean.TryParse(s, out isErhverv);
257 }
258
259 bool isBrokerPage = false;
260 if (!string.IsNullOrEmpty(Model.Area.Item.GetString("M_glerGruppeId")))
261 {
262 isBrokerPage = true;
263 bodyClass = ""; // Get rid of transparent header on brokerPage
264 }
265
266 string callTrackingId = Model.Item.GetString("CallTrackingId");
267
268 RealEstate.User.Model.BrokerEmployee MyBroker = null;
269 try
270 {
271 var MyB = new RealEstate.User.MyBroker();
272 MyBroker = MyB.GetMyBroker();
273 }
274 catch
275 {
276 // Ignore
277 }
278
279 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : "");
280 string querySearchNameAttr = "search";
281
282 // Overwrite search with zipcodeinterval if set
283 if (Context.Current.Request.QueryString["zipcodeinterval"] != null)
284 {
285 querySearch = Context.Current.Request.QueryString["zipcodeinterval"];
286 querySearchNameAttr = "zipcodeinterval";
287 }
288
289 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : "");
290 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : "");
291
292 Dynamicweb.Security.UserManagement.User user = null;
293 int userID = 0;
294 string userName = "";
295 string userEmail = "";
296 string userPhone = "";
297 string userZip = "";
298 string userAddress = "";
299
300 if (Dynamicweb.Security.UserManagement.UserContext.Current.IsLoggedOn)
301 {
302 user = Dynamicweb.Security.UserManagement.UserContext.Current.User;
303 userName = user.Name;
304 userEmail = user.Email;
305 userPhone = user.Phone;
306 userZip = user.Zip;
307 userAddress = user.Address;
308 userID = user.ID;
309 }
310
311 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode");
312 string forgotPwTemplate = "";
313 string forgotPwSender = "";
314 string markerColor = "";
315 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png";
316
317 // Important - e-mail templates for forgotPw must be placed in "UserManagement/Login" folder
318 forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml";
319 forgotPwSender = "noreply@mailreal.dk";
320 markerColor = "#213960";
321
322 var butikId = string.Empty;
323 string bEmail = string.Empty;
324 if (MyBroker != null && MyBroker.Broker != null)
325 {
326 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
327 bEmail = MyBroker.Broker.Item().GetString("Email");
328 }
329
330 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment"));
331
332 var termsMail = "info@realmaeglerne.dk";
333 WriteLiteral("\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta charset=\"utf-8\">\r\n <title>");
334 Write(MetaTitle);
335 WriteLiteral("</title>\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1\">\r\n <meta name=\"description\"");
336 BeginWriteAttribute("content", " content=\"", 111966, "\"", 111992, 1);
337 WriteAttributeValue("", 111976, MetaDescription, 111976, 16, false);
338 EndWriteAttribute();
339 WriteLiteral(">\r\n <meta name=\"keywords\"");
340 BeginWriteAttribute("content", " content=\"", 112021, "\"", 112044, 1);
341 WriteAttributeValue("", 112031, MetaKeywords, 112031, 13, false);
342 EndWriteAttribute();
343 WriteLiteral(">\r\n <meta name=\"format-detection\" content=\"telephone=no\">\r\n <meta http-equiv=\"Expires\" content=\"60\">\r\n <meta name=\"robots\"");
344 BeginWriteAttribute("content", " content=\"", 112176, "\"", 112282, 3);
345 WriteAttributeValue("", 112186, Pageview.Area.Noindex ? "noindex" : "index", 112186, 46, false);
346 WriteAttributeValue("", 112232, ",", 112232, 1, true);
347 WriteAttributeValue("", 112233, Pageview.Area.Nofollow ? "nofollow" : "follow", 112233, 49, false);
348 EndWriteAttribute();
349 WriteLiteral(">\r\n\r\n");
350 WriteLiteral("\r\n ");
351 Write(RenderSnippet("OpenGraphTags"));
352 WriteLiteral("\r\n");
353 if (!string.IsNullOrEmpty(settings_Google_Optimize_Id))
354 {
355 WriteLiteral(" <!-- Google optimize script-->\r\n <script");
356 BeginWriteAttribute("src", " src=\"", 112474, "\"", 112554, 2);
357 WriteAttributeValue("", 112480, "https://www.googleoptimize.com/optimize.js?id=", 112480, 46, true);
358 WriteAttributeValue("", 112526, settings_Google_Optimize_Id, 112526, 28, false);
359 EndWriteAttribute();
360 WriteLiteral("></script>\r\n");
361 }
362 WriteLiteral(@" <!-- TrustBox script -->
363 <script type=""text/javascript"" src=""//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js"" async></script>
364 <!-- End TrustBox script -->
365
366 <script type=""application/ld+json"">
367 {
368 ""context"": ""https://schema.org/"",
369 """);
370 WriteLiteral(@"@type"": ""WebSite"",
371 ""name"": ""RealMæglerne"",
372 ""url"": ""https://www.realmaeglerne.dk/"",
373 ""potentialAction"": {
374 ""type"": ""SearchAction"",
375 ""target"": ""https://www.realmaeglerne.dk/find-maegler?q={search_term_string}"",
376 ""query-input"": ""required name=search_term_string""
377 }
378 }
379 </script>
380
381 <script type=""application/ld+json"">
382 {
383 ""context"": ""https://schema.org"",
384 """);
385 WriteLiteral(@"@type"": ""Corporation"",
386 ""name"": ""RealMæglerne"",
387 ""alternateName"": ""R&B Mægler A/S"",
388 ""url"": ""https://www.realmaeglerne.dk"",
389 ""logo"": ""https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png"",
390 ""contactPoint"": {
391 ""type"": ""ContactPoint"",
392 ""telephone"": ""+4570237153"",
393 ""contactType"": ""sales"",
394 ""areaServed"": ""DK"",
395 ""availableLanguage"": ""Danish""
396 },
397 ""sameAs"": [
398 ""https://www.facebook.com/realmaeglerne/"",
399 ""https://www.linkedin.com/company/realmæglerne/"",
400 ""https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g"",
401 ""https://www.realmaeglerne.dk/""
402 ]
403 }
404 </script>
405 ");
406 Write(RenderSnippet("StructuredData"));
407 WriteLiteral("\r\n");
408 WriteLiteral("\r\n");
409 WriteLiteral(" <link rel=\"stylesheet\"");
410 BeginWriteAttribute("href", " href=\"", 114176, "\"", 114227, 2);
411 WriteAttributeValue("", 114183, TemplateUrl, 114183, 14, false);
412 WriteAttributeValue("", 114197, "assets/fontawesome/css/all.css", 114197, 30, true);
413 EndWriteAttribute();
414 WriteLiteral(" async />\r\n <link rel=\"stylesheet\"");
415 BeginWriteAttribute("href", " href=\"", 114269, "\"", 114284, 1);
416 WriteAttributeValue("", 114276, mainCSS, 114276, 8, false);
417 EndWriteAttribute();
418 WriteLiteral(" async />\r\n");
419
420 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
421 {
422 var cssErhvervFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/erhverv.min.css"));
423 string erhvervCSS = TemplateUrl + $"assets/dist/css/erhverv.min.css?{cssErhvervFileInfo.LastWriteTime.Ticks}";
424 WriteLiteral(" <link rel=\"stylesheet\"");
425 BeginWriteAttribute("href", " href=\"", 114688, "\"", 114706, 1);
426 WriteAttributeValue("", 114695, erhvervCSS, 114695, 11, false);
427 EndWriteAttribute();
428 WriteLiteral(" async>\r\n");
429 }
430 WriteLiteral("\r\n\r\n <link rel=\"icon\" type=\"image/ico\"");
431 BeginWriteAttribute("href", " href=\"", 114775, "\"", 114839, 2);
432 WriteAttributeValue("", 114782, TemplateUrl, 114782, 14, false);
433 WriteAttributeValue("", 114796, "assets/images/favicons/favicon-real.ico?v=1", 114796, 43, true);
434 EndWriteAttribute();
435 WriteLiteral(">\r\n <link rel=\"icon\" type=\"image/png\"");
436 BeginWriteAttribute("href", " href=\"", 114880, "\"", 114946, 2);
437 WriteAttributeValue("", 114887, TemplateUrl, 114887, 14, false);
438 WriteAttributeValue("", 114901, "assets/images/favicons/favicon-real-16x16.png", 114901, 45, true);
439 EndWriteAttribute();
440 WriteLiteral(" sizes=\"16x16\">\r\n <link rel=\"icon\" type=\"image/png\"");
441 BeginWriteAttribute("href", " href=\"", 115001, "\"", 115067, 2);
442 WriteAttributeValue("", 115008, TemplateUrl, 115008, 14, false);
443 WriteAttributeValue("", 115022, "assets/images/favicons/favicon-real-32x32.png", 115022, 45, true);
444 EndWriteAttribute();
445 WriteLiteral(" sizes=\"32x32\">\r\n <link rel=\"icon\" type=\"image/png\"");
446 BeginWriteAttribute("href", " href=\"", 115122, "\"", 115188, 2);
447 WriteAttributeValue("", 115129, TemplateUrl, 115129, 14, false);
448 WriteAttributeValue("", 115143, "assets/images/favicons/favicon-real-96x96.png", 115143, 45, true);
449 EndWriteAttribute();
450 WriteLiteral(" sizes=\"96x96\">\r\n <meta name=\"google-site-verification\" content=\"hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg\" />\r\n\r\n");
451 if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString()))
452 {
453 WriteLiteral(@" <script>
454 window.dataLayer = window.dataLayer || []; // must be placed above GTM script
455 </script>
456 <!-- Google Tag Manager -->
457 <script>
458 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
459 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
460 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
461 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
462 })(window,document,'script','dataLayer','");
463 Write(settings_Google_Tag_Manager_ID);
464 WriteLiteral("\');</script>\r\n <!-- End Google Tag Manager -->\r\n");
465 }
466 WriteLiteral("\r\n");
467 if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId))
468 {
469 WriteLiteral(" <script type=\"text/javascript\"");
470 BeginWriteAttribute("src", " src=\"", 116170, "\"", 116242, 2);
471 WriteAttributeValue("", 116176, "https://call.call-tracking.dk/getJavascript?custid=", 116176, 51, true);
472 WriteAttributeValue("", 116227, callTrackingId, 116227, 15, false);
473 EndWriteAttribute();
474 WriteLiteral("></script>\r\n");
475 }
476 WriteLiteral("\r\n");
477 if (!String.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString()))
478 {
479 WriteLiteral(@" <!-- Begin Leadhub Pixel Code -->
480 <script>
481 (function(w,d,x,n,u,t,f,s,o){
482 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){
483 (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)
484 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '");
485 Write(settings_Leadhub_Pixel_ID);
486 WriteLiteral("\');\r\n lhi(\'pageview\');\r\n </script>\r\n <!-- End Leadhub Pixel Code -->\r\n");
487 }
488 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 + \"");
489 Write(settings_BoligCountFeed);
490 WriteLiteral("\";\r\n RMAPI.BoligListFeed = ApiPreFix + \"");
491 Write(settings_BoligListFeed);
492 WriteLiteral("\" + \"&refpageid=");
493 Write(Pageview.Page.ID);
494 WriteLiteral("\";\r\n RMAPI.BoligListFeedErhverv = \"");
495 Write(settings_BoligListFeedErhverv);
496 WriteLiteral("\";\r\n RMAPI.BoligListFeedMaegler = ApiPreFix + \"");
497 Write(settings_BoligListFeedMaegler);
498 WriteLiteral("\" + \"&refpageid=");
499 Write(Pageview.Page.ID);
500 WriteLiteral("\";\r\n RMAPI.BoligSearchFeed = ApiPreFix + \"");
501 Write(settings_BoligSearchFeed);
502 WriteLiteral("\";\r\n RMAPI.BoligMapFeed = ApiPreFix + \"");
503 Write(settings_BoligMapFeed);
504 WriteLiteral("\";\r\n RMAPI.Boligagent = \"");
505 Write(settings_Boligagent);
506 WriteLiteral("\";\r\n RMAPI.IsErhverv = ");
507 Write(isErhverv.ToString().ToLower());
508 WriteLiteral(";\r\n RMAPI.ProductGroupFilter = \"");
509 Write(productGroupFilter);
510 WriteLiteral("\";\r\n RMAPI.ButikId = \"");
511 Write(butikId);
512 WriteLiteral("\";\r\n RMAPI.Boligvisning = false;\r\n RMAPI.RefPageId = \"");
513 Write(Pageview.Page.ID);
514 WriteLiteral("\";\r\n RMAPI.Template = \"");
515 Write(template);
516 WriteLiteral("\";\r\n RMAPI.SliderSettings = ");
517 Write(JsonConvert.SerializeObject(Settings.Site));
518 WriteLiteral(";\r\n RMAPI.AdvisorSearchFeed = \"");
519 Write(settings_AdvisorSearchFeed);
520 WriteLiteral("\";\r\n RMAPI.LoadingIcon = \"");
521 Write(loadingIcon);
522 WriteLiteral("\";\r\n RMAPI.MarkerColor = \"");
523 Write(markerColor);
524 WriteLiteral("\";\r\n RMAPI.mapMarkerUrl = \"");
525 Write(mapMarkerUrl);
526 WriteLiteral("\";\r\n RMAPI.settings_ForgotPwPage = \"");
527 Write(settings_ForgotPwPage);
528 WriteLiteral("\";\r\n </script>\r\n\r\n");
529 if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString()))
530 {
531 WriteLiteral(@" <!-- Facebook Pixel Code -->
532 <script>
533 !function (f, b, e, v, n, t, s) {
534 if (f.fbq) return; n = f.fbq = function () {
535 n.callMethod ?
536 n.callMethod.apply(n, arguments) : n.queue.push(arguments)
537 };
538 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';
539 n.queue = []; t = b.createElement(e); t.async = !0;
540 t.src = v; s = b.getElementsByTagName(e)[0];
541 s.parentNode.insertBefore(t, s)
542 }(window, document, 'script',
543 'https://connect.facebook.net/en_US/fbevents.js');
544 fbq('init', '");
545 Write(settings_Facebook_App_ID);
546 WriteLiteral("\');\r\n fbq(\'track\', \'PageView\');\r\n </script>\r\n <noscript>\r\n <img height=\"1\" width=\"1\"");
547 BeginWriteAttribute("src", " src=\"", 119145, "\"", 119230, 3);
548 WriteAttributeValue("", 119151, "https://www.facebook.com/tr?id=", 119151, 31, true);
549 WriteAttributeValue("", 119182, settings_Facebook_App_ID, 119182, 25, false);
550 WriteAttributeValue("", 119207, "&ev=PageView&noscript=1", 119207, 23, true);
551 EndWriteAttribute();
552 WriteLiteral(" />\r\n </noscript>\r\n <!-- End Facebook Pixel Code -->\r\n");
553 }
554 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");
555 BeginWriteAttribute("class", " class=\"", 119506, "\"", 119533, 2);
556 WriteAttributeValue("", 119514, template, 119514, 9, false);
557 WriteAttributeValue("", 119523, bodyClass, 119523, 10, false);
558 EndWriteAttribute();
559 WriteLiteral(" data-spforgotpwtemplate=\"");
560 Write(forgotPwTemplate);
561 WriteLiteral("\" data-spforgotpwsender=\"");
562 Write(forgotPwSender);
563 WriteLiteral("\" data-spforgotpwsubject=\"");
564 Write(forgotPwSubject);
565 WriteLiteral("\" data-spsalesassesmentid=\"");
566 Write(salesAssessmentPageId);
567 WriteLiteral("\">\r\n");
568
569 string logoUrl = TemplateUrl + (!Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg");
570 WriteLiteral("\r\n");
571 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) && GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
572 {
573 WriteLiteral(" <div class=\"top-search\">\r\n <div class=\"header logo\">\r\n <div class=\"logo\">\r\n <a href=\"/erhverv\">\r\n <img");
574 BeginWriteAttribute("src", " src=\"", 120206, "\"", 120220, 1);
575 WriteAttributeValue("", 120212, logoUrl, 120212, 8, false);
576 EndWriteAttribute();
577 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");
578
579
580 var settings_BoligListErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : "";
581 WriteLiteral(" <input type=\"hidden\" name=\"ID\"");
582 BeginWriteAttribute("value", " value=\'", 120787, "\'", 120821, 1);
583 WriteAttributeValue("", 120795, settings_BoligListErhverv, 120795, 26, false);
584 EndWriteAttribute();
585 WriteLiteral(" id=\"searchPageId-top\" disabled=\"disabled\" />\r\n\r\n");
586 if (Context.Current.Request["type"] == "egetforbrug")
587 {
588 WriteLiteral(" <input name=\"type\" type=\"hidden\" value=\"egetforbrug\" />\r\n <input name=\"investeringsejendom\" type=\"hidden\" value=\"0\" />\r\n");
589 }
590 WriteLiteral(@" <div class=""row form-wrapper no-gutters"">
591 <div class=""col-xs-12 col-md-4 col-lg-5 col-searchbar"">
592 <div class=""searchbar float-label-container text-left"">
593 <label class=""float-label"">");
594 Write(Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer"));
595 WriteLiteral("</label>\r\n <input type=\"text\"");
596 BeginWriteAttribute("name", " name=\"", 121615, "\"", 121642, 1);
597 WriteAttributeValue("", 121622, querySearchNameAttr, 121622, 20, false);
598 EndWriteAttribute();
599 WriteLiteral(" id=\"searchfield-top\" class=\"search-input js-float-label js-getdata\" tabindex=\"1\"");
600 BeginWriteAttribute("value", " value=\"", 121724, "\"", 121802, 1);
601 WriteAttributeValue("", 121732, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 121732, 70, false);
602 EndWriteAttribute();
603 WriteLiteral(@" />
604 </div>
605 </div>
606 <div class=""col-xs-12 col-md-5"">
607 <div class=""row no-gutters"">
608 <div class=""col-xs-12 col-md-6 input-col"">
609 <div class=""dropdown w-overlay float-label-container"">
610 <label class=""float-label"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">");
611 Write(Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype"));
612 WriteLiteral(@"</label>
613 <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>
614 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
615 <ul class=""bolig-dropdown list-unstyled"">
616 ");
617
618 RenderBoligTypeErhverv();
619 WriteLiteral(@" </ul>
620 <span class=""border-fat""></span>
621 <div class=""d-none d-md-block"">
622 <button class=""btn btn-primary js-close-dropdown"">");
623 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
624 WriteLiteral(@"</button>
625 </div>
626 <div class=""d-flex row d-md-none"">
627 <div class=""col-6"">
628 <button class=""btn btn-danger js-remove-filter"">");
629 Write(Translate("Smartpage:Search.Annuller", "Annuller"));
630 WriteLiteral("</button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-primary js-close-dropdown\">");
631 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
632 WriteLiteral(@"</button>
633 </div>
634 </div>
635 </div>
636
637 </div>
638 </div>
639 <div class=""col-xs-12 col-md-6 input-col"">
640 <div class=""btn-dropdown p-3 border-top-bottom-right"">
641 <ul class=""two-column list-unstyled"">
642 <li>
643 <label class=""checkbox-container"">
644 ");
645 Write(Translate("Smartpage:Search.Erhverv.Leje", "Leje"));
646 WriteLiteral(@"
647 <input type=""checkbox"" name=""propertytype"" value=""leje"" class=""js-input-check"" />
648 <span class=""checkmark""></span>
649 </label>
650 </li>
651 <li>
652 <label class=""checkbox-container"">
653 ");
654 Write(Translate("Smartpage:Search.Erhverv.Køb", "Køb"));
655 WriteLiteral(@"
656 <input type=""checkbox"" name=""propertytype"" value=""kob"" class=""js-input-check"" />
657 <span class=""checkmark""></span>
658 </label>
659 </li>
660 </ul>
661 </div>
662
663 </div>
664 </div>
665 </div>
666 <div class=""col-xs-12 col-md-3 col-lg-2 d-none d-md-block"">
667 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
668 Write(Translate("Smartpage:Search.Søg", "Søg"));
669 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n");
670 }
671 WriteLiteral("\r\n <div class=\"header logo\">\r\n <div class=\"logo\">\r\n <a href=\"/\">\r\n <img");
672 BeginWriteAttribute("src", " src=\"", 126319, "\"", 126333, 1);
673 WriteAttributeValue("", 126325, logoUrl, 126325, 8, false);
674 EndWriteAttribute();
675 WriteLiteral(" alt=\"RealMæglerne\" />\r\n </a>\r\n </div>\r\n </div>\r\n\r\n");
676 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
677 {
678 WriteLiteral(" <div class=\"header shortcuts\">\r\n <div class=\"header-shortcuts float-right\">\r\n");
679 if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
680 {
681 WriteLiteral(" <a");
682 BeginWriteAttribute("href", " href=\'", 126697, "\'", 126704, 0);
683 EndWriteAttribute();
684 BeginWriteAttribute("class", " class=\"", 126705, "\"", 126821, 9);
685 WriteAttributeValue("", 126713, "search-menu", 126713, 11, true);
686 WriteAttributeValue(" ", 126724, "d-none", 126725, 7, true);
687 WriteAttributeValue(" ", 126731, "d-xl-flex", 126732, 10, true);
688 WriteAttributeValue(" ", 126741, "align-items-center", 126742, 19, true);
689 WriteAttributeValue(" ", 126760, "float-left", 126761, 11, true);
690 WriteAttributeValue(" ", 126771, "border-right", 126772, 13, true);
691 WriteAttributeValue(" ", 126784, "js-mainsearch", 126785, 14, true);
692 WriteAttributeValue(" ", 126798, "topsearch", 126799, 10, true);
693 WriteAttributeValue(" ", 126808, searchClass, 126809, 12, false);
694 EndWriteAttribute();
695 WriteLiteral(">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i><span class=\"search-menu-text hidden d-md-block\"> ");
696 Write(Translate("Smartpage:Search.Søg", "Søg"));
697 WriteLiteral("</span>\r\n </a>\r\n");
698 }
699 WriteLiteral(" <div class=\"menu-slide d-flex align-items-center\">\r\n <b></b>\r\n <span class=\"menu-text hidden d-md-block\">Menu</span>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n");
700 }
701 else
702 {
703 WriteLiteral(" <div class=\"header shortcuts\">\r\n <div class=\"header-shortcuts float-right\">\r\n");
704 if (Model.CurrentUser?.ID > 0)
705 {
706 WriteLiteral(" <a");
707 BeginWriteAttribute("href", " href=\'", 127487, "\'", 127511, 1);
708 WriteAttributeValue("", 127494, settings_MinSide, 127494, 17, false);
709 EndWriteAttribute();
710 WriteLiteral(" class=\"login extra d-flex align-items-center float-left border-right\">\r\n <i class=\"fa fa-user-circle\" aria-hidden=\"true\"></i><span class=\"hidden d-md-block\">");
711 Write(Translate("Smartpage:Shortcuts.MinProfil", "Min profil"));
712 WriteLiteral("</span>\r\n </a>\r\n");
713 }
714 else
715 {
716 WriteLiteral(" <a href=\'javascript:panelLogin()\' class=\"login d-flex align-items-center float-left border-right\">\r\n <i class=\"fa fa-user-circle\" aria-hidden=\"true\"></i><span class=\"login-text hidden d-md-block\"> ");
717 Write(Translate("Smartpage:Shortcuts.Login", "Login"));
718 WriteLiteral("</span>\r\n </a>\r\n");
719 }
720 WriteLiteral("\r\n <a");
721 BeginWriteAttribute("href", " href=\'", 128207, "\'", 128214, 0);
722 EndWriteAttribute();
723 BeginWriteAttribute("class", " class=\"", 128215, "\"", 128311, 7);
724 WriteAttributeValue("", 128223, "search-menu", 128223, 11, true);
725 WriteAttributeValue(" ", 128234, "d-flex", 128235, 7, true);
726 WriteAttributeValue(" ", 128241, "align-items-center", 128242, 19, true);
727 WriteAttributeValue(" ", 128260, "float-left", 128261, 11, true);
728 WriteAttributeValue(" ", 128271, "border-right", 128272, 13, true);
729 WriteAttributeValue(" ", 128284, "js-mainsearch", 128285, 14, true);
730 WriteAttributeValue(" ", 128298, searchClass, 128299, 12, false);
731 EndWriteAttribute();
732 WriteLiteral(">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i><span class=\"search-menu-text hidden d-md-block\"> ");
733 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
734 WriteLiteral("</span>\r\n </a>\r\n\r\n <div class=\"menu-slide d-flex align-items-center\">\r\n <b></b>\r\n <span class=\"menu-text\">Menu</span>\r\n </div>\r\n </div>\r\n </div>\r\n");
735 }
736 WriteLiteral("\r\n <div class=\"search-modal\">\r\n\r\n");
737 if (Converter.ToString(Pageview.Area.Item["Type"]) == "real")
738 {
739 WriteLiteral(@" <div class=""main-search-form"">
740 <i class=""fal fa-times float-right fa-2x js-close-search close-search""></i>
741 <div class=""row mb-3 align-items-center"">
742 <div class=""col-xs-12 col-md-3 border-right"">
743 <h3>");
744 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
745 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\">");
746 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg"));
747 WriteLiteral(@"<span class=""loader js-loader""></span></span>
748
749 </div>
750 </div>
751
752 <form id=""main-search"" class=""searchbar-wrapper"" action=""/Default.aspx"" method=""GET"">
753 <input type=""hidden"" name=""ID""");
754 BeginWriteAttribute("value", " value=\'", 129756, "\'", 129777, 1);
755 WriteAttributeValue("", 129764, searchPageId, 129764, 13, false);
756 EndWriteAttribute();
757 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" />
758 <div class=""row form-wrapper no-gutters"">
759
760 <div class=""col-xs-12 col-md-5 col-searchbar"">
761 <div class=""searchbar"">
762 <input type=""text""");
763 BeginWriteAttribute("name", " name=\"", 130061, "\"", 130088, 1);
764 WriteAttributeValue("", 130068, querySearchNameAttr, 130068, 20, false);
765 EndWriteAttribute();
766 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\"");
767 BeginWriteAttribute("value", " value=\"", 130191, "\"", 130269, 1);
768 WriteAttributeValue("", 130199, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 130199, 70, false);
769 EndWriteAttribute();
770 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\"");
771 BeginWriteAttribute("value", " value=\"", 130363, "\"", 130446, 1);
772 WriteAttributeValue("", 130371, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 130371, 75, false);
773 EndWriteAttribute();
774 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\"");
775 BeginWriteAttribute("value", " value=\"", 130536, "\"", 130617, 1);
776 WriteAttributeValue("", 130544, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 130544, 73, false);
777 EndWriteAttribute();
778 WriteLiteral(@" />
779 </div>
780 </div>
781 <div class=""col-xs-12 col-md-5"">
782 <div class=""row no-gutters"">
783 <div class=""col-xs-12 col-md-6 input-col"">
784 <div class=""dropdown"">
785 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
786 ");
787 Write(Translate("Smartpage:Search.Boligtype", "Boligtype"));
788 WriteLiteral(@"
789 </button>
790 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
791 <ul class=""bolig-dropdown list-unstyled"">
792 ");
793
794 RenderBoligtypeCheckboxesDropdown();
795 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">");
796 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
797 WriteLiteral(@"</button>
798 </div>
799
800 </div>
801
802 </div>
803 <div class=""col-xs-12 col-md-6 input-col"">
804 <div class=""dropdown"">
805 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
806 ");
807 Write(Translate("Smartpage:Search.Pris", "Pris"));
808 WriteLiteral(@"
809 </button>
810 <div class=""dropdown-menu box-shadow dropdown-price js-dropdown-price"" aria-labelledby=""Pris"">
811 <input name=""pricemin"" type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input""");
812 BeginWriteAttribute("placeholder", " placeholder=\'", 132868, "\'", 132945, 1);
813 WriteAttributeValue("", 132882, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 132882, 63, false);
814 EndWriteAttribute();
815 BeginWriteAttribute("value", " value=\'", 132946, "\'", 133082, 1);
816 WriteAttributeValue("", 132954, !string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemin"]) ? Context.Current.Request.QueryString["pricemin"] : "", 132954, 128, false);
817 EndWriteAttribute();
818 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">");
819 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"));
820 WriteLiteral("</option>\r\n");
821 for (var i = 0; i <= 10000000; i += 100000)
822 {
823 if (i == 10000000)
824 {
825 WriteLiteral(" <option");
826 BeginWriteAttribute("value", " value=\"", 133719, "\"", 133729, 1);
827 WriteAttributeValue("", 133727, i, 133727, 2, false);
828 EndWriteAttribute();
829 WriteLiteral(" data-value=\'");
830 Write(Converter.ToInt32(i).ToString("N0"));
831 WriteLiteral("+\'>");
832 Write(Convert.ToInt32(i).ToString("N0"));
833 WriteLiteral("+</option>\r\n");
834 }
835 else
836 {
837 WriteLiteral(" <option");
838 BeginWriteAttribute("value", " value=\"", 134059, "\"", 134069, 1);
839 WriteAttributeValue("", 134067, i, 134067, 2, false);
840 EndWriteAttribute();
841 WriteLiteral(" data-value=\'");
842 Write(Converter.ToInt32(i).ToString("N0"));
843 WriteLiteral("\'>");
844 Write(Convert.ToInt32(i).ToString("N0"));
845 WriteLiteral("</option>\r\n");
846 }
847 }
848 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\"");
849 BeginWriteAttribute("placeholder", " placeholder=\'", 134473, "\'", 134550, 1);
850 WriteAttributeValue("", 134487, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 134487, 63, false);
851 EndWriteAttribute();
852 BeginWriteAttribute("value", " value=\'", 134551, "\'", 134687, 1);
853 WriteAttributeValue("", 134559, !string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemax"]) ? Context.Current.Request.QueryString["pricemax"] : "", 134559, 128, false);
854 EndWriteAttribute();
855 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
856 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"));
857 WriteLiteral("</option>\r\n");
858 for (var i = 0; i <= 10000000; i += 100000)
859 {
860 if (i == 10000000)
861 {
862 WriteLiteral(" <option");
863 BeginWriteAttribute("value", " value=\"", 135318, "\"", 135328, 1);
864 WriteAttributeValue("", 135326, i, 135326, 2, false);
865 EndWriteAttribute();
866 WriteLiteral(" data-value=\'");
867 Write(Converter.ToInt32(i).ToString("N0"));
868 WriteLiteral("+\'>");
869 Write(Convert.ToInt32(i).ToString("N0"));
870 WriteLiteral("+</option>\r\n");
871 }
872 else
873 {
874 WriteLiteral(" <option");
875 BeginWriteAttribute("value", " value=\"", 135658, "\"", 135668, 1);
876 WriteAttributeValue("", 135666, i, 135666, 2, false);
877 EndWriteAttribute();
878 WriteLiteral(" data-value=\'");
879 Write(Converter.ToInt32(i).ToString("N0"));
880 WriteLiteral("\'>");
881 Write(Convert.ToInt32(i).ToString("N0"));
882 WriteLiteral("</option>\r\n");
883 }
884 }
885 WriteLiteral(@" </select>
886 </div>
887 </div>
888 </div>
889 </div>
890 </div>
891 <div class=""col-xs-12 col-md-2 d-none d-md-block"">
892 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
893 Write(Translate("Smartpage:Search.Søg", "Søg"));
894 WriteLiteral(@"</button>
895 </div>
896 </div>
897
898 <div class=""row moresearch-btn no-gutters"">
899 <div class=""col-sm-12"">
900 <div class=""row align-items-center no-gutters"">
901 <div class=""col-12 col-md-4"">
902 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch"">
903 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open white"">");
904 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder"));
905 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> ");
906 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt"));
907 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\">");
908 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg"));
909 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>");
910 Write(Translate("Smartpage:Search.Bolig", "Bolig"));
911 WriteLiteral(@"</b></h4>
912 <div class=""row align-items-end mb-30"">
913 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
914 <div class=""filter-container row"">
915 <label class=""d-block col-12"">");
916 Write(Translate("Smartpage:Search.Boligareal", "Boligareal"));
917 WriteLiteral(@"</label>
918 <div class=""col-6 pr-sm-0 pr-2"">
919 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count""");
920 BeginWriteAttribute("placeholder", " placeholder=\'", 138430, "\'", 138503, 1);
921 WriteAttributeValue("", 138444, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 138444, 59, false);
922 EndWriteAttribute();
923 BeginWriteAttribute("value", " value=\'", 138504, "\'", 138650, 1);
924 WriteAttributeValue("", 138512, !string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmin"]) ? Context.Current.Request.QueryString["boligarealmin"] : "", 138512, 138, false);
925 EndWriteAttribute();
926 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
927 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
928 WriteLiteral("</option>\r\n");
929 for (var i = 0; i <= 300; i += 10)
930 {
931 if (i == 300)
932 {
933 WriteLiteral(" <option>");
934 Write(i);
935 WriteLiteral("+</option>\r\n");
936 }
937 else
938 {
939 WriteLiteral(" <option>");
940 Write(i);
941 WriteLiteral("</option>\r\n");
942 }
943 }
944 WriteLiteral(@" </select>
945
946 </div>
947 <div class=""col-6 pl-sm-0 pl-2"">
948 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count""");
949 BeginWriteAttribute("placeholder", " placeholder=\'", 140035, "\'", 140108, 1);
950 WriteAttributeValue("", 140049, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 140049, 59, false);
951 EndWriteAttribute();
952 BeginWriteAttribute("value", " value=\'", 140109, "\'", 140255, 1);
953 WriteAttributeValue("", 140117, !string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmax"]) ? Context.Current.Request.QueryString["boligarealmax"] : "", 140117, 138, false);
954 EndWriteAttribute();
955 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
956 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. 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>
977 </div>
978 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
979 <div class=""filter-container row"">
980 <label class=""d-block col-12"">");
981 Write(Translate("Smartpage:Search.Grundareal", "Grundareal"));
982 WriteLiteral(@"</label>
983 <div class=""col-6 pr-sm-0 pr-2"">
984 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count""");
985 BeginWriteAttribute("placeholder", " placeholder=\'", 142036, "\'", 142109, 1);
986 WriteAttributeValue("", 142050, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 142050, 59, false);
987 EndWriteAttribute();
988 BeginWriteAttribute("value", " value=\'", 142110, "\'", 142257, 1);
989 WriteAttributeValue("", 142118, !string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmin"]) ? Context.Current.Request.QueryString["grundarealmin"] : "", 142118, 139, false);
990 EndWriteAttribute();
991 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
992 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
993 WriteLiteral("</option>\r\n");
994 for (var i = 0; i <= 10000; i += 100)
995 {
996 if (i == 10000)
997 {
998 WriteLiteral(" <option>");
999 Write(i);
1000 WriteLiteral("+</option>\r\n");
1001 }
1002 else
1003 {
1004 WriteLiteral(" <option>");
1005 Write(i);
1006 WriteLiteral("</option>\r\n");
1007 }
1008 }
1009 WriteLiteral(@" </select>
1010 </div>
1011 <div class=""col-6 pl-sm-0 pl-2"">
1012 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count""");
1013 BeginWriteAttribute("placeholder", " placeholder=\'", 143645, "\'", 143718, 1);
1014 WriteAttributeValue("", 143659, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 143659, 59, false);
1015 EndWriteAttribute();
1016 BeginWriteAttribute("value", " value=\'", 143719, "\'", 143866, 1);
1017 WriteAttributeValue("", 143727, !string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmax"]) ? Context.Current.Request.QueryString["grundarealmax"] : "", 143727, 139, false);
1018 EndWriteAttribute();
1019 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">");
1020 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
1021 WriteLiteral("</option>\r\n");
1022 for (var i = 0; i <= 10000; i += 100)
1023 {
1024 if (i == 10000)
1025 {
1026 WriteLiteral(" <option>");
1027 Write(i);
1028 WriteLiteral("+</option>\r\n");
1029 }
1030 else
1031 {
1032 WriteLiteral(" <option>");
1033 Write(i);
1034 WriteLiteral("</option>\r\n");
1035 }
1036 }
1037 WriteLiteral(@" </select>
1038 </div>
1039 </div>
1040 </div>
1041 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
1042 <div class=""filter-container row"">
1043 <label class=""d-block col-12"">Antal rum</label>
1044 <div class=""col-6 pr-sm-0 pr-2"">
1045 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count"">
1046 <option selected=""selected"" disabled=""disabled"">");
1047 Write(Translate("Smartpage:Search.Placeholder.Min", "Min"));
1048 WriteLiteral("</option>\r\n");
1049
1050 RenderSelectValue("1", "1", "roomsmin");
1051 RenderSelectValue("2", "2", "roomsmin");
1052 RenderSelectValue("3", "3", "roomsmin");
1053 RenderSelectValue("4", "4", "roomsmin");
1054 RenderSelectValue("5+", "5", "roomsmin");
1055 WriteLiteral(@" </select>
1056 </div>
1057 <div class=""col-6 pl-sm-0 pl-2"">
1058 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count"">
1059 <option selected=""selected"" disabled=""disabled"">");
1060 Write(Translate("Smartpage:Search.Placeholder.Max", "Max"));
1061 WriteLiteral("</option>\r\n");
1062
1063 RenderSelectValue("1", "1", "roomsmax");
1064 RenderSelectValue("2", "2", "roomsmax");
1065 RenderSelectValue("3", "3", "roomsmax");
1066 RenderSelectValue("4", "4", "roomsmax");
1067 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax");
1068 WriteLiteral(@" </select>
1069 </div>
1070 </div>
1071 </div>
1072 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
1073 <div class=""row"">
1074 <div class=""col-12 pr-2"">
1075 <div class=""filter-container"">
1076 <label class=""d-block"">Energimærke</label>
1077 <select name=""energylabel"" id=""energylabel"" class=""form-control reverse js-energylabel-select js-count"">
1078 <option selected=""selected"" disabled=""disabled"">");
1079 Write(Translate("Smartpage:Search.Vælg", "Vælg"));
1080 WriteLiteral(@"</option>
1081 <option value=""01"">G</option>
1082 <option value=""02"">F</option>
1083 <option value=""03"">E</option>
1084 <option value=""04"">D</option>
1085 <option value=""05"">C</option>
1086 <option value=""06"">B</option>
1087 <option value=""07"">A</option>
1088 <option value=""08"">A2010</option>
1089 <option value=""09"">A2015</option>
1090 <option value=""10"">A2020+</option>
1091 </select>
1092 </div>
1093 ");
1094 WriteLiteral(@" </div>
1095 </div>
1096 </div>
1097 <div class=""col-12 col-sm-6 col-lg-3 mt-3"">
1098 <h4");
1099 BeginWriteAttribute("class", " class=\"", 149665, "\"", 149673, 0);
1100 EndWriteAttribute();
1101 WriteLiteral("><b>");
1102 Write(Translate("Smartpage:Search.Økonomi", "Økonomi"));
1103 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">");
1104 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned"));
1105 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\"");
1106 BeginWriteAttribute("placeholder", " placeholder=\'", 150235, "\'", 150310, 1);
1107 WriteAttributeValue("", 150249, Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"), 150249, 61, false);
1108 EndWriteAttribute();
1109 BeginWriteAttribute("value", " value=\'", 150311, "\'", 150452, 1);
1110 WriteAttributeValue("", 150319, !string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymin"]) ? Context.Current.Request.QueryString["subsidymin"] : "", 150319, 133, false);
1111 EndWriteAttribute();
1112 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">");
1113 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"));
1114 WriteLiteral("</option>\r\n");
1115 for (var i = 0; i <= 25000; i += 1250)
1116 {
1117 if (i == 25000)
1118 {
1119 WriteLiteral(" <option");
1120 BeginWriteAttribute("value", " value=\"", 151096, "\"", 151125, 1);
1121 WriteAttributeValue("", 151104, Converter.ToInt32(i), 151104, 21, false);
1122 EndWriteAttribute();
1123 WriteLiteral(">");
1124 Write(Converter.ToInt32(i).ToString("N0"));
1125 WriteLiteral("+</option>\r\n");
1126 }
1127 else
1128 {
1129 WriteLiteral(" <option");
1130 BeginWriteAttribute("value", " value=\"", 151422, "\"", 151451, 1);
1131 WriteAttributeValue("", 151430, Converter.ToInt32(i), 151430, 21, false);
1132 EndWriteAttribute();
1133 WriteLiteral(">");
1134 Write(Converter.ToInt32(i).ToString("N0"));
1135 WriteLiteral("</option>\r\n");
1136 }
1137 }
1138 WriteLiteral(@" </select>
1139 </div>
1140 <div class=""col-6 pl-sm-0 pl-2"">
1141 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count""");
1142 BeginWriteAttribute("placeholder", " placeholder=\'", 151963, "\'", 152038, 1);
1143 WriteAttributeValue("", 151977, Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"), 151977, 61, false);
1144 EndWriteAttribute();
1145 BeginWriteAttribute("value", " value=\'", 152039, "\'", 152180, 1);
1146 WriteAttributeValue("", 152047, !string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymax"]) ? Context.Current.Request.QueryString["subsidymax"] : "", 152047, 133, false);
1147 EndWriteAttribute();
1148 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1149 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"));
1150 WriteLiteral("</option>\r\n");
1151 for (var i = 0; i <= 25000; i += 1250)
1152 {
1153 if (i == 25000)
1154 {
1155 WriteLiteral(" <option");
1156 BeginWriteAttribute("value", " value=\"", 152820, "\"", 152849, 1);
1157 WriteAttributeValue("", 152828, Converter.ToInt32(i), 152828, 21, false);
1158 EndWriteAttribute();
1159 WriteLiteral(">");
1160 Write(Convert.ToInt32(i).ToString("N0"));
1161 WriteLiteral("+</option>\r\n");
1162 }
1163 else
1164 {
1165 WriteLiteral(" <option");
1166 BeginWriteAttribute("value", " value=\"", 153144, "\"", 153173, 1);
1167 WriteAttributeValue("", 153152, Converter.ToInt32(i), 153152, 21, false);
1168 EndWriteAttribute();
1169 WriteLiteral(">");
1170 Write(Convert.ToInt32(i).ToString("N0"));
1171 WriteLiteral("</option>\r\n");
1172 }
1173 }
1174 WriteLiteral(@" </select>
1175 </div>
1176 </div>
1177 </div>
1178 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0"">
1179 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1180 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre"));
1181 WriteLiteral(@"</button>
1182 </div>
1183 </div>
1184 </div>
1185 </div>
1186 </div>
1187 <div class=""row d-block d-md-none form-wrapper no-gutters"">
1188 <div class=""col-xs-12 col-md-2"">
1189 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1190 Write(Translate("Smartpage:Search.Søg", "Søg"));
1191 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n");
1192 }
1193 else
1194 {
1195 WriteLiteral(@" <div class=""main-search-form center"">
1196 <i class=""fal fa-times float-right fa-2x js-close-search""></i>
1197 <div class=""row mb-3 align-items-center"">
1198 <div class=""col-xs-12 col-md-5 border-right"">
1199 <h3>");
1200 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
1201 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>");
1202 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg"));
1203 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\"");
1204 BeginWriteAttribute("value", " value=\'", 155287, "\'", 155308, 1);
1205 WriteAttributeValue("", 155295, searchPageId, 155295, 13, false);
1206 EndWriteAttribute();
1207 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" />
1208 <div class=""row form-wrapper no-gutters"">
1209
1210 <div class=""col-12 mb-10"">
1211 <div class=""searchbar"">
1212 <input type=""text""");
1213 BeginWriteAttribute("name", " name=\"", 155572, "\"", 155599, 1);
1214 WriteAttributeValue("", 155579, querySearchNameAttr, 155579, 20, false);
1215 EndWriteAttribute();
1216 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\"");
1217 BeginWriteAttribute("value", " value=\'", 155702, "\'", 155722, 1);
1218 WriteAttributeValue("", 155710, querySearch, 155710, 12, false);
1219 EndWriteAttribute();
1220 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\"");
1221 BeginWriteAttribute("value", " value=\'", 155816, "\'", 155841, 1);
1222 WriteAttributeValue("", 155824, queryZipCodeFrom, 155824, 17, false);
1223 EndWriteAttribute();
1224 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\"");
1225 BeginWriteAttribute("value", " value=\'", 155931, "\'", 155954, 1);
1226 WriteAttributeValue("", 155939, queryZipCodeTo, 155939, 15, false);
1227 EndWriteAttribute();
1228 WriteLiteral(@" />
1229 </div>
1230 </div>
1231 <div class=""col-xs-12 col-md-8"">
1232 <div class=""row no-gutters"">
1233 <div class=""col-xs-12 col-md-6 input-col"">
1234 <div class=""dropdown"">
1235 <button class=""btn btn-dropdown dropdown-toggle reverse js-count"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
1236 ");
1237 Write(Translate("Smartpage:Search.Boligtype", "Boligtype"));
1238 WriteLiteral(@"
1239 </button>
1240 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
1241 <ul class=""bolig-dropdown list-unstyled"">
1242 ");
1243
1244 RenderBoligtypeCheckboxesDropdown();
1245 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">");
1246 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
1247 WriteLiteral(@"</button>
1248 </div>
1249
1250 </div>
1251
1252 </div>
1253 <div class=""col-xs-12 col-md-6 input-col"">
1254 <div class=""dropdown"">
1255 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
1256 ");
1257 Write(Translate("Smartpage:Search.Pris", "Pris"));
1258 WriteLiteral(@"
1259 </button>
1260 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris"">
1261 <input type=""text"" name=""pricemin"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input""");
1262 BeginWriteAttribute("placeholder", " placeholder=\'", 158196, "\'", 158273, 1);
1263 WriteAttributeValue("", 158210, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 158210, 63, false);
1264 EndWriteAttribute();
1265 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1266 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"));
1267 WriteLiteral("</option>\r\n");
1268 for (var i = 0; i <= 10000000; i += 100000)
1269 {
1270 if (i == 10000000)
1271 {
1272 WriteLiteral(" <option");
1273 BeginWriteAttribute("value", " value=\"", 158910, "\"", 158920, 1);
1274 WriteAttributeValue("", 158918, i, 158918, 2, false);
1275 EndWriteAttribute();
1276 WriteLiteral(" data-value=\'");
1277 Write(Converter.ToInt32(i).ToString("N0"));
1278 WriteLiteral("+\'>");
1279 Write(Converter.ToInt32(i).ToString("N0"));
1280 WriteLiteral("+</option>\r\n");
1281 }
1282 else
1283 {
1284 WriteLiteral(" <option");
1285 BeginWriteAttribute("value", " value=\"", 159252, "\"", 159262, 1);
1286 WriteAttributeValue("", 159260, i, 159260, 2, false);
1287 EndWriteAttribute();
1288 WriteLiteral(" data-value=\'");
1289 Write(Converter.ToInt32(i).ToString("N0"));
1290 WriteLiteral("\'>");
1291 Write(Converter.ToInt32(i).ToString("N0"));
1292 WriteLiteral("</option>\r\n");
1293 }
1294 }
1295 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\"");
1296 BeginWriteAttribute("placeholder", " placeholder=\'", 159668, "\'", 159745, 1);
1297 WriteAttributeValue("", 159682, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 159682, 63, false);
1298 EndWriteAttribute();
1299 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1300 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"));
1301 WriteLiteral("</option>\r\n");
1302 for (var i = 0; i <= 10000000; i += 100000)
1303 {
1304 if (i == 10000000)
1305 {
1306 WriteLiteral(" <option");
1307 BeginWriteAttribute("value", " value=\"", 160376, "\"", 160386, 1);
1308 WriteAttributeValue("", 160384, i, 160384, 2, false);
1309 EndWriteAttribute();
1310 WriteLiteral(" data-value=\'");
1311 Write(Converter.ToInt32(i).ToString("N0"));
1312 WriteLiteral("+\'>");
1313 Write(Converter.ToInt32(i).ToString("N0"));
1314 WriteLiteral("+</option>\r\n");
1315 }
1316 else
1317 {
1318 WriteLiteral(" <option");
1319 BeginWriteAttribute("value", " value=\"", 160718, "\"", 160728, 1);
1320 WriteAttributeValue("", 160726, i, 160726, 2, false);
1321 EndWriteAttribute();
1322 WriteLiteral(" data-value=\'");
1323 Write(Converter.ToInt32(i).ToString("N0"));
1324 WriteLiteral("\'>");
1325 Write(Converter.ToInt32(i).ToString("N0"));
1326 WriteLiteral("</option>\r\n");
1327 }
1328 }
1329 WriteLiteral(@" </select>
1330 </div>
1331 </div>
1332 </div>
1333 </div>
1334 </div>
1335 <div class=""col-xs-12 col-md-4 d-none d-md-block"">
1336 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1337 Write(Translate("Smartpage:Search.Søg", "Søg"));
1338 WriteLiteral(@"</button>
1339 </div>
1340 </div>
1341
1342 <div class=""row moresearch-btn no-gutters"">
1343 <div class=""col-sm-12"">
1344 <div class=""row align-items-center no-gutters"">
1345 <div class=""col-12 col-md-5"">
1346 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch-master"">
1347 <span class=""moreSearch-text""><i class=""fas fa-plus open-close white""></i> <span class=""not-open white"">");
1348 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder"));
1349 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> ");
1350 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt"));
1351 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\">");
1352 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg"));
1353 WriteLiteral(@"</a>
1354 </div>
1355 <div class=""col-6 col-md-4 mb-xs-4"">
1356 <div class=""parent-purchases"">
1357 <label class=""checkbox-container white"">
1358 ");
1359 Write(Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet"));
1360 WriteLiteral(@"
1361 <input type=""checkbox"" name=""foraeldrekoebegnet"" value=""true"" class=""js-input-check"">
1362 <span class=""checkmark grey""></span>
1363 </label>
1364 </div>
1365 </div>
1366 </div>
1367
1368 <div class=""collapse"" id=""moreSearch-master"">
1369
1370 <h4 class=""mt-20""><b>");
1371 Write(Translate("Smartpage:Search.Bolig", "Bolig"));
1372 WriteLiteral(@"</b></h4>
1373 <div class=""row align-items-end mb-30"">
1374 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1375 <div class=""filter-container row"">
1376 <label class=""d-block col-12"">");
1377 Write(Translate("Smartpage:Search.Boligareal", "Boligareal"));
1378 WriteLiteral(@"</label>
1379 <div class=""col-6 pr-sm-0 pr-2"">
1380 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count""");
1381 BeginWriteAttribute("placeholder", " placeholder=\'", 164185, "\'", 164258, 1);
1382 WriteAttributeValue("", 164199, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 164199, 59, false);
1383 EndWriteAttribute();
1384 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1385 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
1386 WriteLiteral("</option>\r\n");
1387 for (var i = 0; i <= 300; i += 10)
1388 {
1389 if (i == 300)
1390 {
1391 WriteLiteral(" <option>");
1392 Write(i);
1393 WriteLiteral("+</option>\r\n");
1394 }
1395 else
1396 {
1397 WriteLiteral(" <option>");
1398 Write(i);
1399 WriteLiteral("</option>\r\n");
1400 }
1401 }
1402 WriteLiteral(@" </select>
1403 </div>
1404 <div class=""col-6 pl-sm-0 pl-2"">
1405 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count""");
1406 BeginWriteAttribute("placeholder", " placeholder=\'", 165641, "\'", 165714, 1);
1407 WriteAttributeValue("", 165655, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 165655, 59, false);
1408 EndWriteAttribute();
1409 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1410 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
1411 WriteLiteral("</option>\r\n");
1412 for (var i = 0; i <= 300; i += 10)
1413 {
1414 if (i == 300)
1415 {
1416 WriteLiteral(" <option>");
1417 Write(i);
1418 WriteLiteral("+</option>\r\n");
1419 }
1420 else
1421 {
1422 WriteLiteral(" <option>");
1423 Write(i);
1424 WriteLiteral("</option>\r\n");
1425 }
1426 }
1427 WriteLiteral(@" </select>
1428 </div>
1429 </div>
1430 </div>
1431 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1432 <div class=""filter-container row"">
1433 <label class=""d-block col-12"">");
1434 Write(Translate("Smartpage:Search.Grundareal", "Grundareal"));
1435 WriteLiteral(@"</label>
1436 <div class=""col-6 pr-sm-0 pr-2"">
1437 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count""");
1438 BeginWriteAttribute("placeholder", " placeholder=\'", 167493, "\'", 167566, 1);
1439 WriteAttributeValue("", 167507, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 167507, 59, false);
1440 EndWriteAttribute();
1441 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1442 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
1443 WriteLiteral("</option>\r\n");
1444 for (var i = 0; i <= 10000; i += 100)
1445 {
1446 if (i == 10000)
1447 {
1448 WriteLiteral(" <option");
1449 BeginWriteAttribute("value", " value=\"", 168206, "\"", 168235, 1);
1450 WriteAttributeValue("", 168214, Converter.ToInt32(i), 168214, 21, false);
1451 EndWriteAttribute();
1452 WriteLiteral(">");
1453 Write(Converter.ToInt32(i).ToString("N0"));
1454 WriteLiteral("+</option>\r\n");
1455 }
1456 else
1457 {
1458 WriteLiteral(" <option");
1459 BeginWriteAttribute("value", " value=\"", 168532, "\"", 168561, 1);
1460 WriteAttributeValue("", 168540, Converter.ToInt32(i), 168540, 21, false);
1461 EndWriteAttribute();
1462 WriteLiteral(">");
1463 Write(Converter.ToInt32(i).ToString("N0"));
1464 WriteLiteral("</option>\r\n");
1465 }
1466 }
1467 WriteLiteral(@" </select>
1468 </div>
1469 <div class=""col-6 pl-sm-0 pl-2"">
1470 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count""");
1471 BeginWriteAttribute("placeholder", " placeholder=\'", 169082, "\'", 169155, 1);
1472 WriteAttributeValue("", 169096, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 169096, 59, false);
1473 EndWriteAttribute();
1474 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1475 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
1476 WriteLiteral("</option>\r\n");
1477 for (var i = 0; i <= 10000; i += 100)
1478 {
1479 if (i == 10000)
1480 {
1481 WriteLiteral(" <option");
1482 BeginWriteAttribute("value", " value=\"", 169786, "\"", 169815, 1);
1483 WriteAttributeValue("", 169794, Converter.ToInt32(i), 169794, 21, false);
1484 EndWriteAttribute();
1485 WriteLiteral(">");
1486 Write(Converter.ToInt32(i).ToString("N0"));
1487 WriteLiteral("+</option>\r\n");
1488 }
1489 else
1490 {
1491 WriteLiteral(" <option");
1492 BeginWriteAttribute("value", " value=\"", 170112, "\"", 170141, 1);
1493 WriteAttributeValue("", 170120, Converter.ToInt32(i), 170120, 21, false);
1494 EndWriteAttribute();
1495 WriteLiteral(">");
1496 Write(Converter.ToInt32(i).ToString("N0"));
1497 WriteLiteral("</option>\r\n");
1498 }
1499 }
1500 WriteLiteral(@" </select>
1501 </div>
1502 </div>
1503 </div>
1504 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1505 <div class=""filter-container row"">
1506 <label class=""d-block col-12"">Antal rum</label>
1507
1508 <div class=""col-6 pr-sm-0 pr-2"">
1509 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count"">
1510 <option selected=""selected"" disabled=""disabled"">");
1511 Write(Translate("Smartpage:Search.Placeholder.Min", "Min"));
1512 WriteLiteral(@"</option>
1513 <option value=""1"">1</option>
1514 <option value=""2"">2</option>
1515 <option value=""3"">3</option>
1516 <option value=""4"">4</option>
1517 <option value=""5"">5+</option>
1518 </select>
1519 </div>
1520 <div class=""col-6 pl-sm-0 pl-2"">
1521 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count"">
1522 <option selected=""selected"" disabled=""disabled"">");
1523 Write(Translate("Smartpage:Search.Placeholder.Max", "Max"));
1524 WriteLiteral(@"</option>
1525 <option value=""1"">1</option>
1526 <option value=""2"">2</option>
1527 <option value=""3"">3</option>
1528 <option value=""4"">4</option>
1529 <option value=""5"">5+</option>
1530 </select>
1531 </div>
1532 </div>
1533 </div>
1534 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1535 <div class=""row"">
1536 <div class=""col-12 pr-2"">
1537 <div class=""filter-container"">
1538 <label class=""d-block"">Energimærke</label>
1539 ");
1540 WriteLiteral(" <select name=\"energylabel\" id=\"energylabel\" class=\"form-control reverse js-energylabel-select js-count\">\r\n <option disabled selected=\"selected\">");
1541 Write(Translate("Smartpage:Search.Vælg", "Vælg"));
1542 WriteLiteral(@"</option>
1543 <option value=""01"">G</option>
1544 <option value=""02"">F</option>
1545 <option value=""03"">E</option>
1546 <option value=""04"">D</option>
1547 <option value=""05"">C</option>
1548 <option value=""06"">B</option>
1549 <option value=""07"">A</option>
1550 <option value=""08"">A2010</option>
1551 <option value=""09"">A2015</option>
1552 <option value=""10"">A2020+</option>
1553 </select>
1554 </div>
1555 ");
1556 WriteLiteral(@" </div>
1557 </div>
1558 </div>
1559 <div class=""col-12 col-sm-6 col-lg-6 mt-3"">
1560 <h4");
1561 BeginWriteAttribute("class", " class=\"", 174647, "\"", 174655, 0);
1562 EndWriteAttribute();
1563 WriteLiteral("><b>");
1564 Write(Translate("Smartpage:Search.Økonomi", "Økonomi"));
1565 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">");
1566 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned"));
1567 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\"");
1568 BeginWriteAttribute("placeholder", " placeholder=\'", 175217, "\'", 175284, 1);
1569 WriteAttributeValue("", 175231, Translate("Smartpage:Search.Placeholder.Min", "Min"), 175231, 53, false);
1570 EndWriteAttribute();
1571 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">");
1572 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"));
1573 WriteLiteral("</option>\r\n");
1574 for (var i = 0; i <= 25000; i += 1250)
1575 {
1576 if (i == 25000)
1577 {
1578 WriteLiteral(" <option");
1579 BeginWriteAttribute("value", " value=\"", 175928, "\"", 175957, 1);
1580 WriteAttributeValue("", 175936, Converter.ToInt32(i), 175936, 21, false);
1581 EndWriteAttribute();
1582 WriteLiteral(">");
1583 Write(Converter.ToInt32(i).ToString("N0"));
1584 WriteLiteral("+</option>\r\n");
1585 }
1586 else
1587 {
1588 WriteLiteral(" <option");
1589 BeginWriteAttribute("value", " value=\"", 176254, "\"", 176283, 1);
1590 WriteAttributeValue("", 176262, Converter.ToInt32(i), 176262, 21, false);
1591 EndWriteAttribute();
1592 WriteLiteral(">");
1593 Write(Converter.ToInt32(i).ToString("N0"));
1594 WriteLiteral("</option>\r\n");
1595 }
1596 }
1597 WriteLiteral(@" </select>
1598 </div>
1599 <div class=""col-6 pl-sm-0 pl-2"">
1600 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count""");
1601 BeginWriteAttribute("placeholder", " placeholder=\'", 176795, "\'", 176862, 1);
1602 WriteAttributeValue("", 176809, Translate("Smartpage:Search.Placeholder.Max", "Max"), 176809, 53, false);
1603 EndWriteAttribute();
1604 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1605 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"));
1606 WriteLiteral("</option>\r\n");
1607 for (var i = 0; i <= 25000; i += 1250)
1608 {
1609 if (i == 25000)
1610 {
1611 WriteLiteral(" <option");
1612 BeginWriteAttribute("value", " value=\"", 177502, "\"", 177531, 1);
1613 WriteAttributeValue("", 177510, Converter.ToInt32(i), 177510, 21, false);
1614 EndWriteAttribute();
1615 WriteLiteral(">");
1616 Write(Converter.ToInt32(i).ToString("N0"));
1617 WriteLiteral("+</option>\r\n");
1618 }
1619 else
1620 {
1621 WriteLiteral(" <option");
1622 BeginWriteAttribute("value", " value=\"", 177828, "\"", 177857, 1);
1623 WriteAttributeValue("", 177836, Converter.ToInt32(i), 177836, 21, false);
1624 EndWriteAttribute();
1625 WriteLiteral(">");
1626 Write(Converter.ToInt32(i).ToString("N0"));
1627 WriteLiteral("</option>\r\n");
1628 }
1629 }
1630 WriteLiteral(@" </select>
1631 </div>
1632 </div>
1633 </div>
1634 <div class=""col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0"">
1635 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1636 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre"));
1637 WriteLiteral(@"</button>
1638 </div>
1639 </div>
1640 </div>
1641 </div>
1642 </div>
1643 <div class=""row d-block d-md-none form-wrapper no-gutters"">
1644 <div class=""col-xs-12 col-md-2"">
1645 <button type=""submit"" class=""btn btn-block btn-search dark-red""><i class=""fa fa-search""></i> ");
1646 Write(Translate("Smartpage:Search.Søg", "Søg"));
1647 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n");
1648 }
1649 WriteLiteral(" </div>\r\n\r\n");
1650
1651 RenderSlideMenu(false, Convert.ToString(settings_Maeglersogning));
1652 WriteLiteral("\r\n");
1653 if (isBrokerPage)
1654 {
1655 WriteLiteral(" <section class=\"maegler-navbar\">\r\n ");
1656 Write(RenderNavigation(new
1657 {
1658 id = "navbar-main",
1659 cssclass = "dwnavigation",
1660 template = "ul_li.xslt",
1661 StartLevel = 1,
1662 EndLevel = 1
1663 }));
1664 WriteLiteral("\r\n </section>\r\n");
1665 }
1666 WriteLiteral("\r\n <div class=\"visual-editor\">\r\n");
1667 WriteLiteral("\r\n\r\n");
1668 WriteLiteral("\r\n\r\n");
1669 WriteLiteral("\r\n");
1670
1671 int pageId = Model.ID;
1672 bool enableArticlesInFocus = Model.Item.GetBoolean("EnableArticlesInFocus");
1673 bool enablePopular = Model.Item.GetBoolean("EnablePopularArticles");
1674 bool showTitle = Model.Item.GetBoolean("ShowTitle");
1675 bool showFilters = Model.Item.GetBoolean("ShowFilters");
1676 bool showCategoryFilter = Model.Item.GetBoolean("ShowCategoryFilter");
1677 bool showSearch = Model.Item.GetBoolean("ShowSearch");
1678 string dynamicListWidth = enablePopular ? "8" : "12";
1679 string itemType = Pageview.Item["ItemTypeName"] != null ? Pageview.Item["ItemTypeName"].ToString() : "DynamicArticle";
1680
1681 Dictionary<string, string> categoriesList = new Dictionary<string, string>();
1682 categoriesList.Add(Translate("All"), "");
1683
1684 foreach (Dynamicweb.Content.Page page in Dynamicweb.Services.Pages.GetPagesByParentID(pageId))
1685 {
1686 if (Dynamicweb.Services.Pages.GetPagesByParentID(page.ID).Any())
1687 {
1688 categoriesList.Add(page.GetDisplayName(), page.ID.ToString());
1689 }
1690 }
1691
1692 var articleItemTypeFields = ItemManager.Metadata.GetItemType("DynamicArticle").Fields;
1693 string filterOneLabel = articleItemTypeFields.Find("FilterOne") != null ? articleItemTypeFields.Find("FilterOne").Name : "";
1694 string filterTwoLabel = articleItemTypeFields.Find("FilterTwo") != null ? articleItemTypeFields.Find("FilterTwo").Name : "";
1695 string filterThreeLabel = articleItemTypeFields.Find("FilterThree") != null ? articleItemTypeFields.Find("FilterThree").Name : "";
1696
1697 var filterOneOptions = articleItemTypeFields.Find("FilterOne") != null ? articleItemTypeFields.Find("FilterOne").Options.Values : null;
1698 var filterTwoOptions = articleItemTypeFields.Find("FilterTwo") != null ? articleItemTypeFields.Find("FilterTwo").Options.Values : null;
1699 var filterThreeOptions = articleItemTypeFields.Find("FilterThree") != null ? articleItemTypeFields.Find("FilterThree").Options.Values : null;
1700
1701 Block listPageContainer = new Block
1702 {
1703 Id = "ArticleListPageContainer",
1704 SortId = 10,
1705 Design = new Design
1706 {
1707 RenderType = RenderType.Row
1708 },
1709 BlocksList = new List<Block> {
1710 new Block {
1711 Id = "ArticleListPageHeader",
1712 SortId = 20,
1713 Design = new Design
1714 {
1715 RenderType = RenderType.Column,
1716 Size = "12"
1717 },
1718 BlocksList = new List<Block> {
1719 new Block {
1720 Id = "ArticleListPageHeaderRow",
1721 SortId = 10,
1722 Design = new Design
1723 {
1724 RenderType = RenderType.Row
1725 },
1726 BlocksList = new List<Block> {
1727 new Block {
1728 Id = "ArticleListFilters",
1729 SortId = 30,
1730 Design = new Design {
1731 RenderType = RenderType.Column,
1732 Size = "10",
1733 CssClass = "grid__cell"
1734 }
1735 }
1736 }
1737 }
1738 }
1739 }
1740 }
1741 };
1742 articleListPage.Add(listPageContainer);
1743
1744 if (Pageview.Device.ToString() == "Mobile" || Pageview.Device.ToString() == "Tablet") {
1745 Block listFilters = articleListPage.GetBlockById("ArticleListFilters");
1746 listFilters.Template = RenderMobileFilters(listFilters.BlocksList);
1747 listFilters.SkipRenderBlocksList = true;
1748 }
1749
1750 if (showTitle) {
1751 Block titleBlock = new Block
1752 {
1753 Id = "ArticleListTitle",
1754 SortId = 10,
1755 Component = new Heading { Title = Pageview.Item["Title"].ToString(), Level = 2 },
1756 Design = new Design
1757 {
1758 RenderType = RenderType.Column,
1759 Size = "2"
1760 }
1761 };
1762 articleListPage.Add("ArticleListPageHeaderRow", titleBlock);
1763 }
1764
1765 if (showSearch)
1766 {
1767 Block searchFilter = new Block
1768 {
1769 Id = "ArticleListSearch",
1770 SortId = 10,
1771 Component = new ArticleListSearch { }
1772 };
1773 articleListPage.Add("ArticleListFilters", searchFilter);
1774 }
1775
1776 if (showCategoryFilter)
1777 {
1778 Block categoryFilter = new Block
1779 {
1780 Id = "ArticleListCategoryFilter",
1781 SortId = 20,
1782 Component = new ArticleListCategoryFilter { Categories = categoriesList }
1783 };
1784 articleListPage.Add("ArticleListFilters", categoryFilter);
1785 }
1786
1787 Block listBody = new Block
1788 {
1789 Id = "ArticleListPageBody",
1790 SortId = 30,
1791 Design = new Design
1792 {
1793 RenderType = RenderType.Column,
1794 Size = dynamicListWidth
1795 }
1796 };
1797 articleListPage.Add("ArticleListPageContainer", listBody);
1798
1799 Block listBodyRow = new Block
1800 {
1801 Id = "ArticleListPageBodyRow",
1802 SortId = 10,
1803 Design = new Design
1804 {
1805 RenderType = RenderType.Row
1806 }
1807 };
1808 articleListPage.Add("ArticleListPageBody", listBodyRow);
1809
1810 if (enableArticlesInFocus) {
1811 Block listInFocus = new Block
1812 {
1813 Id = "ArticleListInFocus",
1814 SortId = 10,
1815 Component = new ArticleList { Filter = "InFocus=True", Template = "ItemPublisher/List/FocusList.cshtml", PageSize = Convert.ToInt32(Pageview.Item["ArticlesInFocusListSize"].ToString()), ItemType = itemType },
1816 Design = new Design
1817 {
1818 RenderType = RenderType.Column,
1819 Size = "12",
1820 HidePadding = true
1821 }
1822 };
1823 articleListPage.Add("ArticleListPageBodyRow", listInFocus);
1824 }
1825
1826 Block listMain = new Block
1827 {
1828 Id = "ArticleListMain",
1829 SortId = 20,
1830 Component = new ArticleList { Template = "ItemPublisher/List/DynamicList.cshtml", PageSize = Convert.ToInt32(Pageview.Item["ArticlesListSize"].ToString()), ItemType = itemType },
1831 Design = new Design
1832 {
1833 RenderType = RenderType.Column,
1834 Size = "12",
1835 HidePadding = true
1836 }
1837 };
1838 articleListPage.Add("ArticleListPageBodyRow", listMain);
1839
1840 if (enablePopular)
1841 {
1842 Block listPopular = new Block
1843 {
1844 Id = "ArticleListPopular",
1845 SortId = 30,
1846 Component = new ArticleList { Template = "ItemPublisher/List/SimpleList.cshtml", PageSize = Convert.ToInt32(Pageview.Item["PopularArticlesListSize"].ToString()), ItemType = itemType },
1847 Design = new Design
1848 {
1849 RenderType = RenderType.Column,
1850 Size = "4",
1851 CssClass = "u-padding--lg"
1852 }
1853 };
1854 articleListPage.Add("ArticleListPageContainer", listPopular);
1855 }
1856
1857 if (showFilters) {
1858 if (filterOneOptions != null)
1859 {
1860 Block filterOne = new Block
1861 {
1862 Id = "ArticleListFilterOne",
1863 SortId = 30,
1864 Component = new ArticleListFilter { Options = filterOneOptions, Label = filterOneLabel, SystemName = "FilterOne" }
1865 };
1866 articleListPage.Add("ArticleListFilters", filterOne);
1867 }
1868
1869 if (filterTwoOptions != null)
1870 {
1871 Block filterTwo = new Block
1872 {
1873 Id = "ArticleListFilterTwo",
1874 SortId = 40,
1875 Component = new ArticleListFilter { Options = filterTwoOptions, Label = filterTwoLabel, SystemName = "FilterTwo" }
1876 };
1877 articleListPage.Add("ArticleListFilters", filterTwo);
1878 }
1879
1880 if (filterThreeOptions != null)
1881 {
1882 Block filterThree = new Block
1883 {
1884 Id = "ArticleListFilterThree",
1885 SortId = 50,
1886 Component = new ArticleListFilter { Options = filterThreeOptions, Label = filterThreeLabel, SystemName = "FilterThree" }
1887 };
1888 articleListPage.Add("ArticleListFilters", filterThree);
1889 }
1890 }
1891 WriteLiteral("\r\n\r\n");
1892 WriteLiteral("\r\n");
1893 Write(RenderBlockList(articleListPage.BlocksRoot.BlocksList));
1894 WriteLiteral("\r\n\r\n\r\n<script>\r\n document.getElementById(\"Page\").classList.add(\"u-color-light-gray--bg\");\r\n</script>\r\n </div>\r\n\r\n");
1895 if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true)
1896 {
1897 string bName = MyBroker.Broker.Name;
1898 string bClass = "na";
1899 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png";
1900
1901 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName))
1902 {
1903 bName = MyBroker.Broker.CompanyName;
1904 }
1905 try
1906 {
1907 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl");
1908 if (!string.IsNullOrEmpty(imgUrl))
1909 {
1910 bImage = imgUrl;
1911 bClass = "";
1912 }
1913 }
1914 catch
1915 {
1916 // Ignore
1917 }
1918
1919 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId");
1920 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
1921
1922 WriteLiteral(" <section class=\"din-maegler\">\r\n <div");
1923 BeginWriteAttribute("class", " class=\"", 189737, "\"", 189764, 2);
1924 WriteAttributeValue("", 189745, "img-wrapper", 189745, 11, true);
1925 WriteAttributeValue(" ", 189756, bClass, 189757, 7, false);
1926 EndWriteAttribute();
1927 BeginWriteAttribute("style", " style=\"", 189765, "\"", 189804, 3);
1928 WriteAttributeValue("", 189773, "background-image:url(\'", 189773, 22, true);
1929 WriteAttributeValue("", 189795, bImage, 189795, 7, false);
1930 WriteAttributeValue("", 189802, "\')", 189802, 2, true);
1931 EndWriteAttribute();
1932 WriteLiteral(@"></div>
1933 <div class=""container"">
1934 <div class=""col-12 col-sm-12 col-md-6 offset-md-6"">
1935 <h2>Din personlige mægler</h2>
1936 <div class=""row"">
1937 <div class=""col-12 col-sm-6"">
1938 <p>
1939 <b class=""my-broker-name"">");
1940 Write(MyBroker.Employee.Name);
1941 WriteLiteral("</b><br>\r\n");
1942 if (!string.IsNullOrEmpty(MyBroker.Employee.Email))
1943 {
1944 WriteLiteral("Mail: <a");
1945 BeginWriteAttribute("href", " href=\"", 190361, "\"", 190421, 2);
1946 WriteAttributeValue("", 190368, "mailto:", 190368, 7, true);
1947 WriteAttributeValue("", 190375, ExtractMaskedEmail(MyBroker.Employee.Email), 190375, 46, false);
1948 EndWriteAttribute();
1949 WriteLiteral(" class=\"my-broker-email\">");
1950 Write(ExtractMaskedEmail(MyBroker.Employee.Email));
1951 WriteLiteral("</a><br>");
1952
1953 }
1954 if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile))
1955 {
1956 WriteLiteral("Tlf.: <a");
1957 BeginWriteAttribute("href", " href=\"", 190720, "\"", 190763, 2);
1958 WriteAttributeValue("", 190727, "tel:", 190727, 4, true);
1959 WriteAttributeValue("", 190731, MyBroker.Employee.PhoneMobile, 190731, 32, false);
1960 EndWriteAttribute();
1961 WriteLiteral(" class=\"my-broker-phone\">");
1962 Write(FormatPhoneNumber(MyBroker.Employee.PhoneMobile));
1963 WriteLiteral("</a>");
1964
1965 }
1966 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
1967 {
1968 WriteLiteral("Tlf.: <a");
1969 BeginWriteAttribute("href", " href=\"", 191063, "\"", 191102, 2);
1970 WriteAttributeValue("", 191070, "tel:", 191070, 4, true);
1971 WriteAttributeValue("", 191074, MyBroker.Broker.Telephone, 191074, 28, false);
1972 EndWriteAttribute();
1973 WriteLiteral(" class=\"my-broker-phone\">");
1974 Write(FormatPhoneNumber(MyBroker.Broker.Telephone));
1975 WriteLiteral("</a>");
1976
1977 }
1978 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\">");
1979 Write(bName);
1980 WriteLiteral("</b><br>\r\n <span class=\"my-broker-company-address\">");
1981 Write(MyBroker.Broker.Address);
1982 WriteLiteral("</span><br>\r\n <span class=\"my-broker-company-zip\">");
1983 Write(MyBroker.Broker.ZipCode);
1984 WriteLiteral("</span> <span class=\"my-broker-company-city\">");
1985 Write(MyBroker.Broker.City);
1986 WriteLiteral("</span><br>\r\n");
1987 if (!string.IsNullOrEmpty(bEmail))
1988 {
1989 WriteLiteral("Mail: <a");
1990 BeginWriteAttribute("href", " href=\"", 191891, "\"", 191914, 2);
1991 WriteAttributeValue("", 191898, "mailto:", 191898, 7, true);
1992 WriteAttributeValue("", 191905, bEmail, 191905, 9, false);
1993 EndWriteAttribute();
1994 WriteLiteral(" class=\"my-broker-broker-email\">");
1995 Write(bEmail);
1996 WriteLiteral("</a><br>");
1997
1998 }
1999 if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
2000 {
2001 WriteLiteral("Tlf.: <a");
2002 BeginWriteAttribute("href", " href=\"", 192179, "\"", 192218, 2);
2003 WriteAttributeValue("", 192186, "tel:", 192186, 4, true);
2004 WriteAttributeValue("", 192190, MyBroker.Broker.Telephone, 192190, 28, false);
2005 EndWriteAttribute();
2006 WriteLiteral(" class=\"my-broker-broker-phone\">");
2007 Write(FormatPhoneNumber(MyBroker.Broker.Telephone));
2008 WriteLiteral("</a>");
2009
2010 }
2011 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");
2012 BeginWriteAttribute("href", " href=\"", 192594, "\"", 192629, 2);
2013 WriteAttributeValue("", 192601, "/", 192601, 1, true);
2014 WriteAttributeValue("", 192602, medlemsnummer.Substring(1), 192602, 27, false);
2015 EndWriteAttribute();
2016 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");
2017 }
2018 WriteLiteral(" <footer>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n");
2019
2020 var navigationSettings = new NavigationSettings();
2021 navigationSettings.StartLevel = 1;
2022 navigationSettings.StopLevel = 3;
2023 navigationSettings.ExpandMode = ExpandMode.All;
2024 navigationSettings.RootAreaId = 1;
2025 navigationSettings.RootNavigationTag = "footer-nav";
2026
2027 WriteLiteral(" ");
2028 Write(Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings));
2029 WriteLiteral("\r\n </div>\r\n </div>\r\n </footer>\r\n\r\n");
2030 if (Model.CurrentUser?.ID <= 0)
2031 {
2032 WriteLiteral(" <div id=\"panel-login\" class=\"panel panel-form\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"panel-form\" aria-label=\"Close\">\r\n <b></b>\r\n </button>\r\n <div class=\"loginform login\">\r\n");
2033 if (loginParagraphId > 0)
2034 {
2035 WriteLiteral("\r\n ");
2036 Write(RenderParagraphContent(loginParagraphId));
2037 WriteLiteral("\r\n ");
2038
2039 }
2040 WriteLiteral(" </div>\r\n <div class=\"loginform register js-register-form-wrapper\" style=\"display: none;\">\r\n");
2041 if (createUserParagraphId > 0)
2042 {
2043 WriteLiteral("\r\n ");
2044 Write(RenderParagraphContent(createUserParagraphId));
2045 WriteLiteral("\r\n ");
2046
2047 }
2048 WriteLiteral(" </div>\r\n <div class=\"loginform forgotpw\" style=\"display: none;\">\r\n <h2 class=\"forgotpw-reg\">");
2049 Write(Translate("forgot-pw-reg-title", "Glemt adgangskode"));
2050 WriteLiteral("</h2>\r\n <h2 class=\"forgotpw-broker\">");
2051 Write(Translate("forgot-pw-broker-title", "Tilmeldt via. mægler"));
2052 WriteLiteral("</h2>\r\n <form id=\"forgotPwForm\" class=\"form-body\" method=\"post\"");
2053 BeginWriteAttribute("action", " action=\"", 194692, "\"", 194701, 0);
2054 EndWriteAttribute();
2055 WriteLiteral(">\r\n <input type=\"hidden\" id=\"AccessUserShopID\" name=\"AccessUserShopID\" value=\"SHOP6\" />\r\n <p class=\"forgotpw-reg\">");
2056 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."));
2057 WriteLiteral("</p>\r\n <p class=\"forgotpw-broker\">");
2058 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."));
2059 WriteLiteral(@"</p>
2060 <div class=""form-group"">
2061 <input id=""AccessUserEmail"" name=""AccessUserEmail"" type=""email"" pattern=""[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$"" placeholder=""E-mail"" class=""form-control"" required />
2062 </div>
2063 <button class=""btn btn-primary btn-block"" type=""submit"">");
2064 Write(Translate("forgot-pw-cta", "Nulstil adgangskode"));
2065 WriteLiteral("</button>\r\n <br />\r\n <div id=\"submitMessage\"></div>\r\n </form>\r\n </div>\r\n </div>\r\n");
2066 }
2067 WriteLiteral("\r\n");
2068 WriteLiteral("\r\n");
2069
2070 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");
2071 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>");
2072 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler"));
2073 WriteLiteral("</h2>\r\n <form id=\"form-koeberraadgivning\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>");
2074 Write(Translate("form-navn", "Navn"));
2075 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\" tabindex=\"1\"");
2076 BeginWriteAttribute("placeholder", " placeholder=\'", 196941, "\'", 197023, 1);
2077 WriteAttributeValue("", 196955, Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn"), 196955, 68, false);
2078 EndWriteAttribute();
2079 BeginWriteAttribute("value", " value=\'", 197024, "\'", 197063, 1);
2080 WriteAttributeValue("", 197032, UserContext.Current.User?.Name, 197032, 31, false);
2081 EndWriteAttribute();
2082 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2083 Write(Translate("form-email", "E-mail"));
2084 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\"");
2085 BeginWriteAttribute("placeholder", " placeholder=\'", 197340, "\'", 197425, 1);
2086 WriteAttributeValue("", 197354, Translate("Smartpage:Kontakt.Placeholder.Email", "Indtast din e-mail"), 197354, 71, false);
2087 EndWriteAttribute();
2088 BeginWriteAttribute("value", " value=\'", 197426, "\'", 197466, 1);
2089 WriteAttributeValue("", 197434, UserContext.Current.User?.Email, 197434, 32, false);
2090 EndWriteAttribute();
2091 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2092 Write(Translate("form-mobile", "Mobil nr."));
2093 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"3\" maxlength=\"20\" name=\"mobile\"");
2094 BeginWriteAttribute("placeholder", " placeholder=\'", 197777, "\'", 197862, 1);
2095 WriteAttributeValue("", 197791, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 197791, 71, false);
2096 EndWriteAttribute();
2097 BeginWriteAttribute("value", " value=\'", 197863, "\'", 197903, 1);
2098 WriteAttributeValue("", 197871, UserContext.Current.User?.Phone, 197871, 32, false);
2099 EndWriteAttribute();
2100 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2101 Write(Translate("form-telephone", "Telefon nr."));
2102 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"4\" maxlength=\"20\" name=\"telefonnummer\"");
2103 BeginWriteAttribute("placeholder", " placeholder=\'", 198186, "\'", 198270, 1);
2104 WriteAttributeValue("", 198200, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 198200, 70, false);
2105 EndWriteAttribute();
2106 BeginWriteAttribute("value", " value=\'", 198271, "\'", 198312, 1);
2107 WriteAttributeValue("", 198279, UserContext.Current?.User?.Phone, 198279, 33, false);
2108 EndWriteAttribute();
2109 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <h3>");
2110 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"));
2111 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2112 Write(Translate("form-zip", "Post nr"));
2113 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\" tabindex=\"5\"");
2114 BeginWriteAttribute("placeholder", " placeholder=\'", 198720, "\'", 198798, 1);
2115 WriteAttributeValue("", 198734, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 198734, 64, false);
2116 EndWriteAttribute();
2117 BeginWriteAttribute("value", " value=\"", 198799, "\"", 198815, 1);
2118 WriteAttributeValue("", 198807, userZip, 198807, 8, false);
2119 EndWriteAttribute();
2120 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2121 Write(Translate("form-city", "By"));
2122 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>");
2123 Write(Translate("form-adresse", "Adresse"));
2124 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\" tabindex=\"6\"");
2125 BeginWriteAttribute("placeholder", " placeholder=\'", 199382, "\'", 199472, 1);
2126 WriteAttributeValue("", 199396, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 199396, 76, false);
2127 EndWriteAttribute();
2128 WriteLiteral(" required />\r\n\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2129 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2130 WriteLiteral(@"</label>
2131 </div>
2132 <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"">
2133 <strong class=""f-12""><i class=""fas fa-plus""></i> ");
2134 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar"));
2135 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\"");
2136 BeginWriteAttribute("placeholder", " placeholder=\'", 200266, "\'", 200344, 1);
2137 WriteAttributeValue("", 200280, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 200280, 64, false);
2138 EndWriteAttribute();
2139 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\">");
2140 Write(Translate("KontaktMægler", "Kontakt Mægler"));
2141 WriteLiteral(@"</button>
2142 </div>
2143 </div>
2144 </div>
2145 <div class=""form-group mt-3"">
2146 <div class=""checkbox"">
2147 <label>
2148 <input type=""checkbox"" name=""kontaktmigok"" required />
2149
2150 <span>");
2151 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2152 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2153 Write(privacyPolicyText);
2154 WriteLiteral(" <a");
2155 BeginWriteAttribute("href", " href=\"", 201157, "\"", 201181, 2);
2156 WriteAttributeValue("", 201164, "mailto:", 201164, 7, true);
2157 WriteAttributeValue("", 201171, termsMail, 201171, 10, false);
2158 EndWriteAttribute();
2159 WriteLiteral(">");
2160 Write(termsMail);
2161 WriteLiteral("</a>.\r\n Læs mere på <a");
2162 BeginWriteAttribute("href", " href=\"", 201226, "\"", 201260, 1);
2163 WriteAttributeValue("", 201233, settings_Persondatapolitik, 201233, 27, false);
2164 EndWriteAttribute();
2165 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n\r\n <input type=\"hidden\" name=\"fn\" value=\"krk\" />\r\n <input type=\"hidden\" name=\"origin\"");
2166 BeginWriteAttribute("value", " value=\"", 201406, "\"", 201414, 0);
2167 EndWriteAttribute();
2168 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2169 BeginWriteAttribute("value", " value=\"", 201464, "\"", 201472, 0);
2170 EndWriteAttribute();
2171 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2172 BeginWriteAttribute("value", " value=\"", 201520, "\"", 201544, 1);
2173 WriteAttributeValue("", 201528, Pageview.AreaID, 201528, 16, false);
2174 EndWriteAttribute();
2175 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\"");
2176 BeginWriteAttribute("value", " value=\"", 201593, "\"", 201609, 1);
2177 WriteAttributeValue("", 201601, butikId, 201601, 8, false);
2178 EndWriteAttribute();
2179 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2180 BeginWriteAttribute("value", " value=\"", 201663, "\"", 201671, 0);
2181 EndWriteAttribute();
2182 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2183 BeginWriteAttribute("value", " value=\"", 201722, "\"", 201730, 0);
2184 EndWriteAttribute();
2185 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2186 BeginWriteAttribute("value", " value=\"", 201780, "\"", 201788, 0);
2187 EndWriteAttribute();
2188 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-advisor\" style=\"display:none;\">\r\n <h2>");
2189 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2190 WriteLiteral("</h2>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2191 BeginWriteAttribute("src", " src=\"", 202021, "\"", 202027, 0);
2192 EndWriteAttribute();
2193 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2194 </div>
2195 <div class=""col-6"">
2196 <p class=""js-maegler-name""></p>
2197 <p class=""js-maegler-address""></p>
2198 <p class=""js-maegler-phone""></p>
2199 <p class=""js-maegler-mail""></p>
2200 </div>
2201 </div>
2202 <p>");
2203 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2204 WriteLiteral(@"</p>
2205 </div>
2206 </div>
2207
2208 <!--ÅBENT HUS-->
2209 <div id=""panel-aabenthus"" class=""panel panel-form"">
2210 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2211 <b></b>
2212 </button>
2213
2214
2215 <form id=""form-aabenthus"" method=""POST"" action=""/InboxHandler"">
2216 <h2>");
2217 Write(Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus"));
2218 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>");
2219 Write(Translate("Smarptage:Adresse", "Adresse:"));
2220 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>");
2221 Write(Translate("Smarptage:Date", "Dato:"));
2222 WriteLiteral("</strong> <label class=\"js-aabenthus-date mb-0\"></label>\r\n </div>\r\n <div class=\"d-block mb-4\">\r\n <strong>");
2223 Write(Translate("Smarptage:Time", "Tidspunkt:"));
2224 WriteLiteral("</strong> <label class=\"js-aabenthus-time mb-0\"></label>\r\n </div>\r\n <h3>");
2225 Write(Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger"));
2226 WriteLiteral("</h3>\r\n <div class=\"form-group\">\r\n <label for=\"aabenthus-name\"><strong>");
2227 Write(Translate("form-navn", "Navn"));
2228 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2229 BeginWriteAttribute("placeholder", " placeholder=\'", 203645, "\'", 203729, 1);
2230 WriteAttributeValue("", 203659, Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn"), 203659, 70, false);
2231 EndWriteAttribute();
2232 BeginWriteAttribute("value", " value=\'", 203730, "\'", 203770, 1);
2233 WriteAttributeValue("", 203738, UserContext.Current?.User?.Name, 203738, 32, false);
2234 EndWriteAttribute();
2235 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2236 Write(Translate("form-email", "E-mail"));
2237 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2238 BeginWriteAttribute("placeholder", " placeholder=\'", 204034, "\'", 204121, 1);
2239 WriteAttributeValue("", 204048, Translate("Smartpage:Aabenthus.Placeholder.Email", "Indtast din e-mail"), 204048, 73, false);
2240 EndWriteAttribute();
2241 BeginWriteAttribute("value", " value=\'", 204122, "\'", 204162, 1);
2242 WriteAttributeValue("", 204130, UserContext.Current.User?.Email, 204130, 32, false);
2243 EndWriteAttribute();
2244 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2245 Write(Translate("form-mobile", "Mobil nr."));
2246 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2247 BeginWriteAttribute("placeholder", " placeholder=\'", 204455, "\'", 204542, 1);
2248 WriteAttributeValue("", 204469, Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr."), 204469, 73, false);
2249 EndWriteAttribute();
2250 BeginWriteAttribute("value", " value=\'", 204543, "\'", 204583, 1);
2251 WriteAttributeValue("", 204551, UserContext.Current.User?.Phone, 204551, 32, false);
2252 EndWriteAttribute();
2253 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2254 Write(Translate("form-telephone", "Telefon nr."));
2255 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2256 BeginWriteAttribute("placeholder", " placeholder=\'", 204853, "\'", 204939, 1);
2257 WriteAttributeValue("", 204867, Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr."), 204867, 72, false);
2258 EndWriteAttribute();
2259 BeginWriteAttribute("value", " value=\'", 204940, "\'", 204980, 1);
2260 WriteAttributeValue("", 204948, UserContext.Current.User?.Phone, 204948, 32, false);
2261 EndWriteAttribute();
2262 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\">");
2263 Write(Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus"));
2264 WriteLiteral(@"</button>
2265 </div>
2266 </div>
2267 </div>
2268 <div class=""form-group"">
2269 <div class=""checkbox"">
2270 <label>
2271 <input type=""checkbox"" name=""kontaktmigok"" required />
2272
2273 <span class=""base-color"">");
2274 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2275 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n ");
2276 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>"));
2277 WriteLiteral("\r\n\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"ah\" />\r\n <input type=\"hidden\" name=\"origin\"");
2278 BeginWriteAttribute("value", " value=\"", 206143, "\"", 206151, 0);
2279 EndWriteAttribute();
2280 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2281 BeginWriteAttribute("value", " value=\"", 206201, "\"", 206216, 1);
2282 WriteAttributeValue("", 206209, userID, 206209, 7, false);
2283 EndWriteAttribute();
2284 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2285 BeginWriteAttribute("value", " value=\"", 206264, "\"", 206288, 1);
2286 WriteAttributeValue("", 206272, Pageview.AreaID, 206272, 16, false);
2287 EndWriteAttribute();
2288 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\"");
2289 BeginWriteAttribute("value", " value=\"", 206337, "\"", 206353, 1);
2290 WriteAttributeValue("", 206345, butikId, 206345, 8, false);
2291 EndWriteAttribute();
2292 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsaddresse\"");
2293 BeginWriteAttribute("value", " value=\"", 206407, "\"", 206415, 0);
2294 EndWriteAttribute();
2295 WriteLiteral(" class=\"js-aabenthus-address-input\" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2296 BeginWriteAttribute("value", " value=\"", 206504, "\"", 206512, 0);
2297 EndWriteAttribute();
2298 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2299 BeginWriteAttribute("value", " value=\"", 206563, "\"", 206571, 0);
2300 EndWriteAttribute();
2301 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2302 BeginWriteAttribute("value", " value=\"", 206621, "\"", 206629, 0);
2303 EndWriteAttribute();
2304 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2305 BeginWriteAttribute("value", " value=\"", 206679, "\"", 206687, 0);
2306 EndWriteAttribute();
2307 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsnr\"");
2308 BeginWriteAttribute("value", " value=\"", 206735, "\"", 206743, 0);
2309 EndWriteAttribute();
2310 WriteLiteral(" class=\"js-sagsnr\" />\r\n <input type=\"hidden\" name=\"productId\"");
2311 BeginWriteAttribute("value", " value=\"", 206812, "\"", 206868, 1);
2312 WriteAttributeValue("", 206820, Dynamicweb.Context.Current.Request["ProductId"], 206820, 48, false);
2313 EndWriteAttribute();
2314 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"aftaleid\"");
2315 BeginWriteAttribute("value", " value=\"", 206918, "\"", 206926, 0);
2316 EndWriteAttribute();
2317 WriteLiteral(@" class=""js-aftaleid"" />
2318
2319 <input type=""hidden"" name=""dateMail"" class=""js-aabenthus-date-input"" />
2320 <input type=""hidden"" name=""timeMail"" class=""js-aabenthus-time-input"" />
2321 <input type=""hidden"" name=""brokerImageMail"" class=""property-broker-image-input"" />
2322 <input type=""hidden"" name=""employeeNameMail"" class=""js-maegler-employee-name-input"" />
2323 <input type=""hidden"" name=""employeeTitleMail"" class=""js-maegler-employee-title-input"" />
2324 <input type=""hidden"" name=""employeeMailMail"" class=""js-maegler-mail-input"" />
2325 <input type=""hidden"" name=""employeeMobileMail"" class=""js-maegler-mobile-input"" />
2326 <input type=""hidden"" name=""employeePhoneMail"" class=""js-maegler-phone-input"" />
2327
2328 <input type=""hidden"" name=""brokerNameMail"" class=""js-broker-name-input"" />
2329 <input type=""hidden"" name=""brokerAddressMail"" class=""js-broker-address-input"" />
2330 <input type=""hidden"" name=""brokerPhoneMail"" class=""js-broker-phone-input"" />
2331 </form>
2332 <di");
2333 WriteLiteral("v id=\"tak-aabenthus\" style=\"display:none;\">\r\n <h2>");
2334 Write(Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!"));
2335 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>");
2336 Write(Translate("Smarptage:Adresse", "Adresse:"));
2337 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>");
2338 Write(Translate("Smarptage:Date", "Dato:"));
2339 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>");
2340 Write(Translate("Smarptage:Time", "Tidspunkt:"));
2341 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>");
2342 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>"));
2343 WriteLiteral("</p>\r\n </div>\r\n <div class=\"js-not-employee\">\r\n <p>");
2344 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"));
2345 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\"");
2346 BeginWriteAttribute("style", " style=\"", 209318, "\"", 209326, 0);
2347 EndWriteAttribute();
2348 WriteLiteral(@"></div>
2349
2350 </div>
2351 </div>
2352 <div class=""col-12"">
2353 <div class=""bg-base"">
2354
2355 <div class=""js-employee"">
2356 <h4 class=""js-maegler-employee-name""></h4>
2357 <div class=""icon-container"">
2358 <i class=""fas fa-envelope""></i> <span class=""js-maegler-mail""></span>
2359 </div>
2360 <div class=""icon-container"">
2361 <i class=""fas fa-phone""></i> <span class=""js-maegler-mobile""></span>
2362 </div>
2363 </div>
2364
2365
2366 <h4 class=""js-maegler-name""></h4>
2367 <div class=""icon-container"">
2368 <i class=""fas fa-map-marker-alt""></i> <span class=""js-maegler-address""></span>
2369 </div>
2370 <div class=""icon-container"">
2371 <i class=""fas fa-phone""></i> <span class=""js-maegler-phone""></span>");
2372 WriteLiteral(@"
2373
2374 </div>
2375 <a class=""btn btn-border"" onclick=""panelKontaktmaeglerGuldkoeber()"">KONTAKT MÆGLER</a>
2376 </div>
2377 </div>
2378 </div>
2379 </div>
2380 </div>
2381
2382 <!-- KONTAKT GULDKØBER -->
2383 <div id=""panel-kontakt-guldkoeber"" class=""panel panel-form"">
2384 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2385 <b></b>
2386 </button>
2387 <h2>");
2388 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler"));
2389 WriteLiteral("</h2>\r\n <form id=\"form-kontaktmaegler\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>");
2390 Write(Translate("form-navn", "Navn"));
2391 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2392 BeginWriteAttribute("placeholder", " placeholder=\'", 211111, "\'", 211156, 1);
2393 WriteAttributeValue("", 211125, Translate("form-navn", "Navn"), 211125, 31, false);
2394 EndWriteAttribute();
2395 BeginWriteAttribute("value", " value=\'", 211157, "\'", 211196, 1);
2396 WriteAttributeValue("", 211165, UserContext.Current.User?.Name, 211165, 31, false);
2397 EndWriteAttribute();
2398 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2399 Write(Translate("form-email", "E-mail"));
2400 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2401 BeginWriteAttribute("placeholder", " placeholder=\'", 211460, "\'", 211508, 1);
2402 WriteAttributeValue("", 211474, Translate("form-email", "E-mail"), 211474, 34, false);
2403 EndWriteAttribute();
2404 BeginWriteAttribute("value", " value=\'", 211509, "\'", 211549, 1);
2405 WriteAttributeValue("", 211517, UserContext.Current.User?.Email, 211517, 32, false);
2406 EndWriteAttribute();
2407 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2408 Write(Translate("form-mobile", "Mobil nr."));
2409 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2410 BeginWriteAttribute("placeholder", " placeholder=\'", 211847, "\'", 211932, 1);
2411 WriteAttributeValue("", 211861, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 211861, 71, false);
2412 EndWriteAttribute();
2413 BeginWriteAttribute("value", " value=\'", 211933, "\'", 211973, 1);
2414 WriteAttributeValue("", 211941, UserContext.Current.User?.Phone, 211941, 32, false);
2415 EndWriteAttribute();
2416 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2417 Write(Translate("form-telephone", "Telefon nr."));
2418 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2419 BeginWriteAttribute("placeholder", " placeholder=\'", 212243, "\'", 212327, 1);
2420 WriteAttributeValue("", 212257, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 212257, 70, false);
2421 EndWriteAttribute();
2422 BeginWriteAttribute("value", " value=\'", 212328, "\'", 212368, 1);
2423 WriteAttributeValue("", 212336, UserContext.Current.User?.Phone, 212336, 32, false);
2424 EndWriteAttribute();
2425 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2426 Write(Translate("form-zip", "Post nr"));
2427 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\"");
2428 BeginWriteAttribute("placeholder", " placeholder=\'", 212684, "\'", 212762, 1);
2429 WriteAttributeValue("", 212698, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 212698, 64, false);
2430 EndWriteAttribute();
2431 BeginWriteAttribute("value", " value=\"", 212763, "\"", 212779, 1);
2432 WriteAttributeValue("", 212771, userZip, 212771, 8, false);
2433 EndWriteAttribute();
2434 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2435 Write(Translate("form-city", "By"));
2436 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>");
2437 Write(Translate("form-adresse", "Adresse"));
2438 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\"");
2439 BeginWriteAttribute("placeholder", " placeholder=\'", 213335, "\'", 213425, 1);
2440 WriteAttributeValue("", 213349, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 213349, 76, false);
2441 EndWriteAttribute();
2442 BeginWriteAttribute("value", " value=\"", 213426, "\"", 213446, 1);
2443 WriteAttributeValue("", 213434, userAddress, 213434, 12, false);
2444 EndWriteAttribute();
2445 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2446 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2447 WriteLiteral("</label>\r\n </div>\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\"");
2448 BeginWriteAttribute("placeholder", " placeholder=\'", 213772, "\'", 213850, 1);
2449 WriteAttributeValue("", 213786, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 213786, 64, false);
2450 EndWriteAttribute();
2451 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>");
2452 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2453 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\">");
2454 Write(Translate("KontaktMægler", "Kontakt Mægler"));
2455 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2456 Write(privacyPolicyText);
2457 WriteLiteral(" <a");
2458 BeginWriteAttribute("href", " href=\"", 214636, "\"", 214660, 2);
2459 WriteAttributeValue("", 214643, "mailto:", 214643, 7, true);
2460 WriteAttributeValue("", 214650, termsMail, 214650, 10, false);
2461 EndWriteAttribute();
2462 WriteLiteral(">");
2463 Write(termsMail);
2464 WriteLiteral("</a>.\r\n Læs mere på <a");
2465 BeginWriteAttribute("href", " href=\"", 214705, "\"", 214739, 1);
2466 WriteAttributeValue("", 214712, settings_Persondatapolitik, 214712, 27, false);
2467 EndWriteAttribute();
2468 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"gk\" />\r\n <input type=\"hidden\" name=\"origin\"");
2469 BeginWriteAttribute("value", " value=\"", 214882, "\"", 214890, 0);
2470 EndWriteAttribute();
2471 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2472 BeginWriteAttribute("value", " value=\"", 214940, "\"", 214955, 1);
2473 WriteAttributeValue("", 214948, userID, 214948, 7, false);
2474 EndWriteAttribute();
2475 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2476 BeginWriteAttribute("value", " value=\"", 215003, "\"", 215027, 1);
2477 WriteAttributeValue("", 215011, Pageview.AreaID, 215011, 16, false);
2478 EndWriteAttribute();
2479 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\"");
2480 BeginWriteAttribute("value", " value=\"", 215076, "\"", 215092, 1);
2481 WriteAttributeValue("", 215084, butikId, 215084, 8, false);
2482 EndWriteAttribute();
2483 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2484 BeginWriteAttribute("value", " value=\"", 215146, "\"", 215154, 0);
2485 EndWriteAttribute();
2486 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2487 BeginWriteAttribute("value", " value=\"", 215205, "\"", 215213, 0);
2488 EndWriteAttribute();
2489 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2490 BeginWriteAttribute("value", " value=\"", 215263, "\"", 215271, 0);
2491 EndWriteAttribute();
2492 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2493 BeginWriteAttribute("value", " value=\"", 215321, "\"", 215329, 0);
2494 EndWriteAttribute();
2495 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-maegler-guldkoeber\" style=\"display:none;\">\r\n <h2>");
2496 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2497 WriteLiteral("</h2>\r\n <p>");
2498 Write(Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:"));
2499 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2500 BeginWriteAttribute("src", " src=\"", 215691, "\"", 215697, 0);
2501 EndWriteAttribute();
2502 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2503 </div>
2504 <div class=""col-6"">
2505 <p class=""js-maegler-name""></p>
2506 <p class=""js-maegler-address""></p>
2507 <p class=""js-maegler-phone""></p>
2508 <p class=""js-maegler-mail""></p>
2509 </div>
2510 </div>
2511 <p>");
2512 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2513 WriteLiteral(@"</p>
2514 </div>
2515 </div>
2516
2517 <!-- BESTIL SALGSVURDERING -->
2518 <div id=""panel-salgsvurdering"" class=""panel panel-form"">
2519 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2520 <b></b>
2521 </button>
2522
2523 <form id=""bestil-salgsvurdering"" class=""buyer-advisor-form js-buyer-advisor-form"" method=""POST"" action=""/InboxHandler"">
2524 <h2 class=""js-buyer-advisor-header"">");
2525 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering"));
2526 WriteLiteral("</h2>\r\n <p>");
2527 Write(Translate("form-salgsvurdering-beskrivelse", ""));
2528 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>");
2529 Write(Translate("form-navn", "Navn"));
2530 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2531 BeginWriteAttribute("placeholder", " placeholder=\'", 216854, "\'", 216943, 1);
2532 WriteAttributeValue("", 216868, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 216868, 75, false);
2533 EndWriteAttribute();
2534 BeginWriteAttribute("value", " value=\'", 216944, "\'", 216983, 1);
2535 WriteAttributeValue("", 216952, UserContext.Current.User?.Name, 216952, 31, false);
2536 EndWriteAttribute();
2537 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2538 Write(Translate("form-email", "E-mail"));
2539 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2540 BeginWriteAttribute("placeholder", " placeholder=\'", 217247, "\'", 217339, 1);
2541 WriteAttributeValue("", 217261, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 217261, 78, false);
2542 EndWriteAttribute();
2543 BeginWriteAttribute("value", " value=\'", 217340, "\'", 217380, 1);
2544 WriteAttributeValue("", 217348, UserContext.Current.User?.Email, 217348, 32, false);
2545 EndWriteAttribute();
2546 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2547 Write(Translate("form-mobile", "Mobil nr."));
2548 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2549 BeginWriteAttribute("placeholder", " placeholder=\'", 217678, "\'", 217770, 1);
2550 WriteAttributeValue("", 217692, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 217692, 78, false);
2551 EndWriteAttribute();
2552 BeginWriteAttribute("value", " value=\'", 217771, "\'", 217811, 1);
2553 WriteAttributeValue("", 217779, UserContext.Current.User?.Phone, 217779, 32, false);
2554 EndWriteAttribute();
2555 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2556 Write(Translate("form-telephone", "Telefon nr."));
2557 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2558 BeginWriteAttribute("placeholder", " placeholder=\'", 218081, "\'", 218172, 1);
2559 WriteAttributeValue("", 218095, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 218095, 77, false);
2560 EndWriteAttribute();
2561 BeginWriteAttribute("value", " value=\'", 218173, "\'", 218213, 1);
2562 WriteAttributeValue("", 218181, UserContext.Current.User?.Phone, 218181, 32, false);
2563 EndWriteAttribute();
2564 WriteLiteral(" />\r\n </div>\r\n\r\n </div>\r\n\r\n <h3>");
2565 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"));
2566 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2567 Write(Translate("form-zip", "Post nr"));
2568 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\"");
2569 BeginWriteAttribute("placeholder", " placeholder=\'", 218633, "\'", 218711, 1);
2570 WriteAttributeValue("", 218647, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 218647, 64, false);
2571 EndWriteAttribute();
2572 BeginWriteAttribute("value", " value=\"", 218712, "\"", 218728, 1);
2573 WriteAttributeValue("", 218720, userZip, 218720, 8, false);
2574 EndWriteAttribute();
2575 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2576 Write(Translate("form-city", "By"));
2577 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>");
2578 Write(Translate("form-adresse", "Adresse"));
2579 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\"");
2580 BeginWriteAttribute("placeholder", " placeholder=\'", 219282, "\'", 219372, 1);
2581 WriteAttributeValue("", 219296, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 219296, 76, false);
2582 EndWriteAttribute();
2583 BeginWriteAttribute("value", " value=\"", 219373, "\"", 219393, 1);
2584 WriteAttributeValue("", 219381, userAddress, 219381, 12, false);
2585 EndWriteAttribute();
2586 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2587 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2588 WriteLiteral(@"</label>
2589 </div>
2590
2591 <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"">
2592 <strong class=""f-12""><i class=""fas fa-plus""></i> ");
2593 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar"));
2594 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\"");
2595 BeginWriteAttribute("placeholder", " placeholder=\'", 220163, "\'", 220241, 1);
2596 WriteAttributeValue("", 220177, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 220177, 64, false);
2597 EndWriteAttribute();
2598 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>");
2599 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:"));
2600 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\"");
2601 BeginWriteAttribute("id", " id=\"", 220687, "\"", 220692, 0);
2602 EndWriteAttribute();
2603 WriteLiteral(" name=\"choose-broker\"");
2604 BeginWriteAttribute("value", " value=\"", 220714, "\"", 220722, 0);
2605 EndWriteAttribute();
2606 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\"");
2607 BeginWriteAttribute("for", " for=\"", 220788, "\"", 220794, 0);
2608 EndWriteAttribute();
2609 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");
2610 BeginWriteAttribute("src", " src=\"", 221040, "\"", 221046, 0);
2611 EndWriteAttribute();
2612 WriteLiteral(@" class=""img-fluid js-broker-image"">
2613 </div>
2614 <div class=""col-6"">
2615 <span class=""d-block"">
2616 <strong class=""js-choose-broker-name""></strong>
2617 </span>
2618 <span class=""js-choose-broker-address""></span>
2619 <input type=""hidden"" class=""js-choose-broker-phone""");
2620 BeginWriteAttribute("value", " value=\"", 221458, "\"", 221466, 0);
2621 EndWriteAttribute();
2622 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\"");
2623 BeginWriteAttribute("value", " value=\"", 221547, "\"", 221555, 0);
2624 EndWriteAttribute();
2625 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\">");
2626 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler"));
2627 WriteLiteral(@"</h3>
2628 <div class=""js-choose-broker col-12"">
2629 </div>
2630
2631 </div>
2632
2633 <div class=""form-group mt-4"">
2634 <div class=""checkbox"">
2635 <label>
2636 <input type=""checkbox"" name=""kontaktmigok"" required />
2637
2638 <span class=""consent-checkbox"">");
2639 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2640 WriteLiteral(@"</span>
2641
2642 </label>
2643 </div>
2644 </div>
2645 <div class=""form-group"">
2646 <div class=""row"">
2647 <div class=""col-12"">
2648 <button type=""submit"" class=""btn btn-green btn-block js-buyer-advisor-button"">");
2649 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering"));
2650 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2651 Write(privacyPolicyText);
2652 WriteLiteral(" <a");
2653 BeginWriteAttribute("href", " href=\"", 222715, "\"", 222739, 2);
2654 WriteAttributeValue("", 222722, "mailto:", 222722, 7, true);
2655 WriteAttributeValue("", 222729, termsMail, 222729, 10, false);
2656 EndWriteAttribute();
2657 WriteLiteral(">");
2658 Write(termsMail);
2659 WriteLiteral("</a>.\r\n Læs mere på <a");
2660 BeginWriteAttribute("href", " href=\"", 222784, "\"", 222818, 1);
2661 WriteAttributeValue("", 222791, settings_Persondatapolitik, 222791, 27, false);
2662 EndWriteAttribute();
2663 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\"");
2664 BeginWriteAttribute("value", " value=\"", 222995, "\"", 223003, 0);
2665 EndWriteAttribute();
2666 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2667 BeginWriteAttribute("value", " value=\"", 223053, "\"", 223068, 1);
2668 WriteAttributeValue("", 223061, userID, 223061, 7, false);
2669 EndWriteAttribute();
2670 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2671 BeginWriteAttribute("value", " value=\"", 223116, "\"", 223140, 1);
2672 WriteAttributeValue("", 223124, Pageview.AreaID, 223124, 16, false);
2673 EndWriteAttribute();
2674 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning\" name=\"boligvisning\"");
2675 BeginWriteAttribute("value", " value=\"", 223212, "\"", 223220, 0);
2676 EndWriteAttribute();
2677 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-butikid\" name=\"butikId\"");
2678 BeginWriteAttribute("value", " value=\"", 223303, "\"", 223311, 0);
2679 EndWriteAttribute();
2680 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-sagsnr\" name=\"sagsnr\"");
2681 BeginWriteAttribute("value", " value=\"", 223392, "\"", 223400, 0);
2682 EndWriteAttribute();
2683 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\"");
2684 BeginWriteAttribute("value", " value=\"", 223451, "\"", 223507, 1);
2685 WriteAttributeValue("", 223459, Dynamicweb.Context.Current.Request["ProductId"], 223459, 48, false);
2686 EndWriteAttribute();
2687 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2688 BeginWriteAttribute("value", " value=\"", 223561, "\"", 223569, 0);
2689 EndWriteAttribute();
2690 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2691 BeginWriteAttribute("value", " value=\"", 223620, "\"", 223628, 0);
2692 EndWriteAttribute();
2693 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2694 BeginWriteAttribute("value", " value=\"", 223678, "\"", 223686, 0);
2695 EndWriteAttribute();
2696 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2697 BeginWriteAttribute("value", " value=\"", 223736, "\"", 223744, 0);
2698 EndWriteAttribute();
2699 WriteLiteral(" />\r\n <input class=\"js-value-check\" type=\"hidden\" name=\"valueCheck\"");
2700 BeginWriteAttribute("value", " value=\"", 223819, "\"", 223827, 0);
2701 EndWriteAttribute();
2702 WriteLiteral(" />\r\n <input class=\"js-green-appraisal\" type=\"hidden\" name=\"greenAppraisal\"");
2703 BeginWriteAttribute("value", " value=\"", 223910, "\"", 223918, 0);
2704 EndWriteAttribute();
2705 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>");
2706 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2707 WriteLiteral("</h2>\r\n <p>");
2708 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:"));
2709 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2710 BeginWriteAttribute("src", " src=\"", 224280, "\"", 224286, 0);
2711 EndWriteAttribute();
2712 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2713 </div>
2714 <div class=""col-6"">
2715 <p class=""js-maegler-name""></p>
2716 <p class=""js-maegler-address""></p>
2717 <p class=""js-maegler-phone""></p>
2718 <p class=""js-maegler-mail""></p>
2719 </div>
2720 </div>
2721 <p>");
2722 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2723 WriteLiteral(@"</p>
2724 </div>
2725 </div>
2726
2727 <!-- BESTIL SALGSVURDERING GULDKØBER -->
2728 <div id=""panel-salgsvurdering-guldkoeber"" class=""panel panel-form"">
2729 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2730 <b></b>
2731 </button>
2732
2733 <form id=""bestil-salgsvurdering-guldkoeber"" method=""POST"" action=""/InboxHandler"">
2734 <h2>");
2735 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering"));
2736 WriteLiteral("</h2>\r\n <p>");
2737 Write(Translate("form-salgsvurdering-beskrivelse", ""));
2738 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>");
2739 Write(Translate("form-navn", "Navn"));
2740 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2741 BeginWriteAttribute("placeholder", " placeholder=\'", 225394, "\'", 225483, 1);
2742 WriteAttributeValue("", 225408, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 225408, 75, false);
2743 EndWriteAttribute();
2744 BeginWriteAttribute("value", " value=\'", 225484, "\'", 225523, 1);
2745 WriteAttributeValue("", 225492, UserContext.Current.User?.Name, 225492, 31, false);
2746 EndWriteAttribute();
2747 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2748 Write(Translate("form-email", "E-mail"));
2749 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2750 BeginWriteAttribute("placeholder", " placeholder=\'", 225787, "\'", 225879, 1);
2751 WriteAttributeValue("", 225801, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 225801, 78, false);
2752 EndWriteAttribute();
2753 BeginWriteAttribute("value", " value=\'", 225880, "\'", 225920, 1);
2754 WriteAttributeValue("", 225888, UserContext.Current.User?.Email, 225888, 32, false);
2755 EndWriteAttribute();
2756 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2757 Write(Translate("form-telephone", "Telefon nr."));
2758 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2759 BeginWriteAttribute("placeholder", " placeholder=\'", 226229, "\'", 226320, 1);
2760 WriteAttributeValue("", 226243, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 226243, 77, false);
2761 EndWriteAttribute();
2762 BeginWriteAttribute("value", " value=\'", 226321, "\'", 226361, 1);
2763 WriteAttributeValue("", 226329, UserContext.Current.User?.Phone, 226329, 32, false);
2764 EndWriteAttribute();
2765 WriteLiteral(" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2766 Write(Translate("form-mobile", "Mobil nr."));
2767 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2768 BeginWriteAttribute("placeholder", " placeholder=\'", 226611, "\'", 226703, 1);
2769 WriteAttributeValue("", 226625, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 226625, 78, false);
2770 EndWriteAttribute();
2771 BeginWriteAttribute("value", " value=\'", 226704, "\'", 226744, 1);
2772 WriteAttributeValue("", 226712, UserContext.Current.User?.Phone, 226712, 32, false);
2773 EndWriteAttribute();
2774 WriteLiteral(" required />\r\n </div>\r\n </div>\r\n\r\n <h3>");
2775 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"));
2776 WriteLiteral("</h3>\r\n\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2777 Write(Translate("form-zip", "Post nr"));
2778 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\"");
2779 BeginWriteAttribute("placeholder", " placeholder=\'", 227173, "\'", 227251, 1);
2780 WriteAttributeValue("", 227187, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 227187, 64, false);
2781 EndWriteAttribute();
2782 BeginWriteAttribute("value", " value=\"", 227252, "\"", 227268, 1);
2783 WriteAttributeValue("", 227260, userZip, 227260, 8, false);
2784 EndWriteAttribute();
2785 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2786 Write(Translate("form-city", "By"));
2787 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>");
2788 Write(Translate("form-adresse", "Adresse"));
2789 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\"");
2790 BeginWriteAttribute("placeholder", " placeholder=\'", 227822, "\'", 227912, 1);
2791 WriteAttributeValue("", 227836, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 227836, 76, false);
2792 EndWriteAttribute();
2793 BeginWriteAttribute("value", " value=\"", 227913, "\"", 227933, 1);
2794 WriteAttributeValue("", 227921, userAddress, 227921, 12, false);
2795 EndWriteAttribute();
2796 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2797 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2798 WriteLiteral(@"</label>
2799 </div>
2800
2801 <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"">
2802 <strong class=""f-12""><i class=""fas fa-plus""></i> ");
2803 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar"));
2804 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\"");
2805 BeginWriteAttribute("placeholder", " placeholder=\'", 228703, "\'", 228781, 1);
2806 WriteAttributeValue("", 228717, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 228717, 64, false);
2807 EndWriteAttribute();
2808 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>");
2809 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:"));
2810 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\"");
2811 BeginWriteAttribute("id", " id=\"", 229225, "\"", 229230, 0);
2812 EndWriteAttribute();
2813 WriteLiteral(" name=\"choose-broker-gk\"");
2814 BeginWriteAttribute("value", " value=\"", 229255, "\"", 229263, 0);
2815 EndWriteAttribute();
2816 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\"");
2817 BeginWriteAttribute("for", " for=\"", 229329, "\"", 229335, 0);
2818 EndWriteAttribute();
2819 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");
2820 BeginWriteAttribute("src", " src=\"", 229581, "\"", 229587, 0);
2821 EndWriteAttribute();
2822 WriteLiteral(@" class=""img-fluid js-broker-image"">
2823 </div>
2824 <div class=""col-6"">
2825 <span class=""d-block"">
2826 <strong class=""js-choose-broker-name""></strong>
2827 </span>
2828 <span class=""js-choose-broker-address""></span>
2829 <input type=""hidden"" class=""js-choose-broker-phone""");
2830 BeginWriteAttribute("value", " value=\"", 229999, "\"", 230007, 0);
2831 EndWriteAttribute();
2832 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\"");
2833 BeginWriteAttribute("value", " value=\"", 230088, "\"", 230096, 0);
2834 EndWriteAttribute();
2835 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\">");
2836 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler"));
2837 WriteLiteral(@"</h3>
2838 <div class=""js-choose-broker col-12"">
2839 </div>
2840
2841 </div>
2842
2843
2844 <div class=""form-group"">
2845 <div class=""row"">
2846 <div class=""col-12"">
2847 <button type=""submit"" class=""btn btn-green btn-block"">");
2848 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering"));
2849 WriteLiteral(@"</button>
2850 </div>
2851 </div>
2852 </div>
2853 <div class=""form-group"">
2854 <div class=""checkbox"">
2855 <label>
2856 <input type=""checkbox"" name=""kontaktmigok"" required />
2857
2858 <span>");
2859 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2860 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2861 Write(privacyPolicyText);
2862 WriteLiteral(" <a");
2863 BeginWriteAttribute("href", " href=\"", 231204, "\"", 231228, 2);
2864 WriteAttributeValue("", 231211, "mailto:", 231211, 7, true);
2865 WriteAttributeValue("", 231218, termsMail, 231218, 10, false);
2866 EndWriteAttribute();
2867 WriteLiteral(">");
2868 Write(termsMail);
2869 WriteLiteral("</a>.\r\n Læs mere på <a");
2870 BeginWriteAttribute("href", " href=\"", 231273, "\"", 231307, 1);
2871 WriteAttributeValue("", 231280, settings_Persondatapolitik, 231280, 27, false);
2872 EndWriteAttribute();
2873 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\"");
2874 BeginWriteAttribute("value", " value=\"", 231484, "\"", 231492, 0);
2875 EndWriteAttribute();
2876 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2877 BeginWriteAttribute("value", " value=\"", 231542, "\"", 231557, 1);
2878 WriteAttributeValue("", 231550, userID, 231550, 7, false);
2879 EndWriteAttribute();
2880 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2881 BeginWriteAttribute("value", " value=\"", 231605, "\"", 231629, 1);
2882 WriteAttributeValue("", 231613, Pageview.AreaID, 231613, 16, false);
2883 EndWriteAttribute();
2884 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning-gk\" name=\"boligvisning\"");
2885 BeginWriteAttribute("value", " value=\"", 231704, "\"", 231712, 0);
2886 EndWriteAttribute();
2887 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-butikid\" name=\"butikId\"");
2888 BeginWriteAttribute("value", " value=\"", 231798, "\"", 231806, 0);
2889 EndWriteAttribute();
2890 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-sagsnr\" name=\"sagsnr\"");
2891 BeginWriteAttribute("value", " value=\"", 231890, "\"", 231898, 0);
2892 EndWriteAttribute();
2893 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\"");
2894 BeginWriteAttribute("value", " value=\"", 231949, "\"", 232005, 1);
2895 WriteAttributeValue("", 231957, Dynamicweb.Context.Current.Request["ProductId"], 231957, 48, false);
2896 EndWriteAttribute();
2897 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2898 BeginWriteAttribute("value", " value=\"", 232059, "\"", 232067, 0);
2899 EndWriteAttribute();
2900 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2901 BeginWriteAttribute("value", " value=\"", 232118, "\"", 232126, 0);
2902 EndWriteAttribute();
2903 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2904 BeginWriteAttribute("value", " value=\"", 232176, "\"", 232184, 0);
2905 EndWriteAttribute();
2906 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2907 BeginWriteAttribute("value", " value=\"", 232234, "\"", 232242, 0);
2908 EndWriteAttribute();
2909 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>");
2910 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2911 WriteLiteral("</h2>\r\n <p>");
2912 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:"));
2913 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2914 BeginWriteAttribute("src", " src=\"", 232604, "\"", 232610, 0);
2915 EndWriteAttribute();
2916 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2917 </div>
2918 <div class=""col-6"">
2919 <p class=""js-maegler-name""></p>
2920 <p class=""js-maegler-address""></p>
2921 <p class=""js-maegler-phone""></p>
2922 <p class=""js-maegler-mail""></p>
2923 </div>
2924 </div>
2925 <p>");
2926 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2927 WriteLiteral("</p>\r\n </div>\r\n</div>\r\n\r\n\r\n <div class=\"overlay-wrapper\"></div>\r\n <div class=\"dropdown-overlay\"></div>\r\n <div class=\"loader-inner ball-pulse\"></div>\r\n \r\n");
2928
2929 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js"));
2930 WriteLiteral(" <script type=\"text/javascript\"");
2931 BeginWriteAttribute("src", " src=\'", 233415, "\'", 233519, 3);
2932 WriteAttributeValue("", 233421, TemplateUrl, 233421, 14, false);
2933 WriteAttributeValue("", 233435, "assets/webpack/js/3rdparty/viamapstrap.js?", 233435, 42, true);
2934 WriteAttributeValue("", 233477, viamapstrapFileInfo.LastWriteTime.Ticks, 233477, 42, false);
2935 EndWriteAttribute();
2936 WriteLiteral(" async></script>\r\n");
2937
2938 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js"));
2939 WriteLiteral(" <script type=\"text/javascript\"");
2940 BeginWriteAttribute("src", " src=\'", 233722, "\'", 233809, 3);
2941 WriteAttributeValue("", 233728, TemplateUrl, 233728, 14, false);
2942 WriteAttributeValue("", 233742, "assets/dist/bundle.app.min.js?", 233742, 30, true);
2943 WriteAttributeValue("", 233772, bundleFileInfo.LastWriteTime.Ticks, 233772, 37, false);
2944 EndWriteAttribute();
2945 WriteLiteral(" async></script>\r\n");
2946 WriteLiteral("\r\n ");
2947 Write(RenderSnippet("JavaScriptBottom"));
2948 WriteLiteral("\r\n\r\n");
2949 if (Context.Current.Request.QueryString["ShowLogin"] == "true")
2950 {
2951 WriteLiteral(" <input class=\"js-showLogin\" value=\"true\" />\r\n");
2952 }
2953 WriteLiteral("\r\n");
2954 if (!string.IsNullOrEmpty(settings_ConduzeId))
2955 {
2956 WriteLiteral(" <script type=\"text/javascript\" id=\"conduze-sdk\"");
2957 BeginWriteAttribute("src", " src=\"", 234133, "\"", 234194, 3);
2958 WriteAttributeValue("", 234139, "https://cdn.conduze.com/", 234139, 24, true);
2959 WriteAttributeValue("", 234163, settings_ConduzeId, 234163, 19, false);
2960 WriteAttributeValue("", 234182, "/tracking.js", 234182, 12, true);
2961 EndWriteAttribute();
2962 WriteLiteral(" async></script>\r\n");
2963 }
2964 WriteLiteral("\r\n");
2965 if (!string.IsNullOrEmpty(settings_Weply))
2966 {
2967 WriteLiteral(" <script");
2968 BeginWriteAttribute("src", " src=\"", 234293, "\"", 234344, 2);
2969 WriteAttributeValue("", 234299, "https://app.weply.chat/widget/", 234299, 30, true);
2970 WriteAttributeValue("", 234329, settings_Weply, 234329, 15, false);
2971 EndWriteAttribute();
2972 WriteLiteral(" async></script>\r\n");
2973 }
2974 WriteLiteral("\r\n</body>\r\n</html>\r\n\r\n");
2975 }
2976 #pragma warning restore 1998
2977
2978 void RenderErhvervsTypeCheckboxes(string productGroupFilter)
2979 {
2980 WriteLiteral(@" <div class=""col-xs-6 col-md-4"">
2981 <div class=""checkbox"">
2982 <label>
2983 <input type=""checkbox"" name=""propertytype"" value=""bolig/erhverv, kombineret erhverv og bolig, byejendom (kontor, butik, beboelse)"" />
2984 <span>Bolig/erhverv</span>
2985 </label>
2986 </div>
2987 <div class=""checkbox"">
2988 <label>
2989 <input type=""checkbox"" name=""propertytype"" value=""erhvervsgrund"" />
2990 <span>Erhvervsgrund</span>
2991 </label>
2992 </div>
2993 <div class=""checkbox"">
2994 <label>
2995 <input type=""checkbox"" name=""propertytype"" value=""boligudlejning"" />
2996 <span>Boligudlejningsejendom</span>
2997 </label>
2998 </div>
2999 <div class=""checkbox"">
3000 <label>
3001 <input type=""checkbox"" name=""propertytype"" value=""kontor, klinik, kontorhotel, showroom, under");
3002 WriteLiteral(@"visningslokaler"" />
3003 <span>Kontor</span>
3004 </label>
3005 </div>
3006 </div>
3007 <div class=""col-xs-6 col-md-4"">
3008 <div class=""checkbox"">
3009 <label>
3010 <input type=""checkbox"" name=""propertytype"" value=""butik / detail, butik / detailhandel"" />
3011 <span>Butik/detailhandel</span>
3012 </label>
3013 </div>
3014 <div class=""checkbox"">
3015 <label>
3016 <input type=""checkbox"" name=""propertytype"" value=""industri / logistik, håndværk, industri, kontor / lager, logistik"" />
3017 <span>Produktion/lager</span>
3018 </label>
3019 </div>
3020 <div class=""checkbox"">
3021 <label>
3022 <input type=""checkbox"" name=""propertytype"" value=""hotel - kursusejendom, restaurant"" />
3023 <span>Hotel og restaurant</span>
3024 </label>
3025 </div>
3026 <div c");
3027 WriteLiteral(@"lass=""checkbox"">
3028 <label>
3029 <input type=""checkbox"" name=""propertytype"" value=""projekt ejendom"" />
3030 <span>Projektejendom</span>
3031 </label>
3032 </div>
3033 </div>
3034 <div class=""col-xs-6 col-md-4"">
3035 <div class=""checkbox"">
3036 <label>
3037 <input type=""checkbox"" name=""propertytype"" value=""andet"" />
3038 <span>Andet</span>
3039 </label>
3040 </div>
3041 </div>
3042 ");
3043 WriteLiteral(" <input type=\"hidden\" name=\"propertycategory\" value=\"erhverv, udlejning\" />\r\n <input type=\"hidden\" name=\"filtrering\"");
3044 BeginWriteAttribute("value", " value=\"", 3445, "\"", 3472, 1);
3045 WriteAttributeValue("", 3453, productGroupFilter, 3453, 19, false);
3046 EndWriteAttribute();
3047 WriteLiteral(" />\r\n");
3048 }
3049 void RenderBoligtypeCheckboxes()
3050 {
3051 WriteLiteral(@" <div class=""col-6 col-md-4"">
3052 <div class=""checkbox"">
3053 <label>
3054 <input type=""checkbox"" name=""propertytype"" value=""villa"" />
3055 <span>Villa</span>
3056 </label>
3057 </div>
3058 <div class=""checkbox"">
3059 <label>
3060 <input type=""checkbox"" name=""propertytype"" value=""rækkehus"" />
3061 <span>Rækkehus</span>
3062 </label>
3063 </div>
3064 <div class=""checkbox"">
3065 <label>
3066 <input type=""checkbox"" name=""propertytype"" value=""villalejlighed"" />
3067 <span>Villalejlighed</span>
3068 </label>
3069 </div>
3070 <div class=""checkbox"">
3071 <label>
3072 <input type=""checkbox"" name=""propertytype"" value=""andelsbolig"" />
3073 <span>Andelsbolig</span>
3074 </label>
3075 </div>
3076 </div>
3077 <div class=""co");
3078 WriteLiteral(@"l-6 col-md-4"">
3079 <div class=""checkbox"">
3080 <label>
3081 <input type=""checkbox"" name=""propertytype"" value=""fritidshus"" />
3082 <span>Fritidsbolig</span>
3083 </label>
3084 </div>
3085 <div class=""checkbox"">
3086 <label>
3087 <input type=""checkbox"" name=""propertytype"" value=""ejerlejlighed"" class=""specialOption"" data-disable-slider=""#grundareal"" data-disable-slider-ranges=""#grundarealmin,#grundarealmax"" />
3088 <span>Ejerlejlighed</span>
3089 </label>
3090 </div>
3091 <div class=""checkbox"">
3092 <label>
3093 <input type=""checkbox"" name=""propertytype"" value=""helårsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" />
3094 <span>Helårsgrund</span>
3095 </label>
3096 </div>
3097 <div class=""checkbo");
3098 WriteLiteral(@"x"">
3099 <label>
3100 <input type=""checkbox"" name=""propertytype"" value=""fritidsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" />
3101 <span>Fritidsgrund</span>
3102 </label>
3103 </div>
3104 </div>
3105 <div class=""col-6 col-md-4"">
3106 <div class=""checkbox"">
3107 <label>
3108 <input type=""checkbox"" name=""propertytype"" value=""landejendom, lystejendom"" class=""specialOption"" data-disable-checkbox=""true"" />
3109 <span>Landejendom</span>
3110 </label>
3111 </div>
3112 <div class=""checkbox"">
3113 <label>
3114 <input type=""checkbox"" name=""propertytype"" value=""erhverv"" class=""specialOption"" data-disable-checkbox=""true"" data-disable-slider=""#roomsslider"" data-disable-slider-ranges=""#roomsmin"" />
3115 <span>Erhverv</span>
3116 ");
3117 WriteLiteral(" </label>\r\n </div>\r\n </div>\r\n");
3118 }
3119
3120 void RenderChecked(string queryString)
3121 {
3122 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString)
3123 {
3124 Write("checked");
3125
3126 }
3127 }
3128
3129 void RenderBoligtypeCheckboxesDropdown()
3130 {
3131 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){
3132 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" },
3133 { "Andelsbolig", "andelsbolig" }
3134 };
3135 foreach (KeyValuePair<string, string> type in propertyTypes)
3136 {
3137 bool ischecked = false;
3138 string[] propertytypeSplit = new string[0];
3139 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
3140 {
3141 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
3142 }
3143 foreach (var propertytypeParams in propertytypeSplit)
3144 {
3145 if (propertytypeParams == type.Value)
3146 {
3147 ischecked = true;
3148 }
3149 }
3150 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3151 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3152 WriteLiteral("\r\n <input type=\"checkbox\" name=\"propertytype\"");
3153 BeginWriteAttribute("value", " value=\"", 8054, "\"", 8073, 1);
3154 WriteAttributeValue("", 8062, type.Value, 8062, 11, false);
3155 EndWriteAttribute();
3156 WriteLiteral(" class=\"js-input-check datavalue js-datavalue js-count\" data-val=\"");
3157 Write(type.Key);
3158 WriteLiteral("\" onchange=\"submitFilter()\"");
3159 BeginWriteAttribute("checked", " checked=\"", 8176, "\"", 8196, 1);
3160 WriteAttributeValue("", 8186, ischecked, 8186, 10, false);
3161 EndWriteAttribute();
3162 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3163 }
3164
3165 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3166 Write(Translate("Smartpage:Search.DropDown.Blandet Bolig/Erhverv", "Blandet Bolig/Erhverv"));
3167 WriteLiteral("\r\n");
3168
3169 bool blboligcheck = false;
3170 if (Dynamicweb.Context.Current.Request.QueryString["propertycategory"] == "Blandet Bolig/Erhverv")
3171 {
3172 blboligcheck = true;
3173 }
3174 WriteLiteral(" <input type=\"checkbox\" name=\"propertycategory\" value=\"Blandet Bolig/Erhverv\" class=\"specialOption js-input-check js-datavalue js-count\" data-disable-checkbox=\"true\" data-disable-slider=\"#roomsslider\" data-disable-slider-ranges=\"#roomsmin\"");
3175 BeginWriteAttribute("checked", " checked=\"", 9029, "\"", 9052, 1);
3176 WriteAttributeValue("", 9039, blboligcheck, 9039, 13, false);
3177 EndWriteAttribute();
3178 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3179
3180 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){
3181 { "Fritidsbolig", "fritidshus" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" },
3182 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" }
3183 };
3184 foreach (KeyValuePair<string, string> type in propertyTypes2)
3185 {
3186 bool ischecked = false;
3187 string[] propertytypeSplit2 = new string[0];
3188 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
3189 {
3190 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
3191 }
3192 foreach (var propertytypeParams in propertytypeSplit2)
3193 {
3194 if (propertytypeParams == type.Value)
3195 {
3196 ischecked = true;
3197 }
3198 }
3199 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3200 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3201 WriteLiteral("\r\n");
3202 if (type.Value == "ejerlejlighed")
3203 {
3204 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3205 BeginWriteAttribute("value", " value=\"", 10439, "\"", 10458, 1);
3206 WriteAttributeValue("", 10447, type.Value, 10447, 11, false);
3207 EndWriteAttribute();
3208 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#grundareal\" data-disable-slider-ranges=\"#grundarealmin,#grundarealmax\" data-val=\"");
3209 Write(type.Key);
3210 WriteLiteral("\" onchange=\"submitFilter()\"");
3211 BeginWriteAttribute("checked", " checked=\"", 10632, "\"", 10652, 1);
3212 WriteAttributeValue("", 10642, ischecked, 10642, 10, false);
3213 EndWriteAttribute();
3214 WriteLiteral(" />\r\n");
3215 }
3216 else if (type.Value == "helårsgrund")
3217 {
3218 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3219 BeginWriteAttribute("value", " value=\"", 10829, "\"", 10848, 1);
3220 WriteAttributeValue("", 10837, type.Value, 10837, 11, false);
3221 EndWriteAttribute();
3222 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\"");
3223 Write(type.Key);
3224 WriteLiteral("\" onchange=\"submitFilter()\"");
3225 BeginWriteAttribute("checked", " checked=\"", 11045, "\"", 11065, 1);
3226 WriteAttributeValue("", 11055, ischecked, 11055, 10, false);
3227 EndWriteAttribute();
3228 WriteLiteral(" />\r\n");
3229 }
3230 else if (type.Value == "fritidsgrund")
3231 {
3232 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3233 BeginWriteAttribute("value", " value=\"", 11243, "\"", 11262, 1);
3234 WriteAttributeValue("", 11251, type.Value, 11251, 11, false);
3235 EndWriteAttribute();
3236 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\"");
3237 Write(type.Key);
3238 WriteLiteral("\" onchange=\"submitFilter()\"");
3239 BeginWriteAttribute("checked", " checked=\"", 11459, "\"", 11479, 1);
3240 WriteAttributeValue("", 11469, ischecked, 11469, 10, false);
3241 EndWriteAttribute();
3242 WriteLiteral(" />\r\n");
3243 }
3244 else
3245 {
3246 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3247 BeginWriteAttribute("value", " value=\"", 11623, "\"", 11642, 1);
3248 WriteAttributeValue("", 11631, type.Value, 11631, 11, false);
3249 EndWriteAttribute();
3250 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\"");
3251 Write(type.Key);
3252 WriteLiteral("\" onchange=\"submitFilter()\"");
3253 BeginWriteAttribute("checked", " checked=\"", 11723, "\"", 11743, 1);
3254 WriteAttributeValue("", 11733, ischecked, 11733, 10, false);
3255 EndWriteAttribute();
3256 WriteLiteral(" />\r\n");
3257 }
3258 WriteLiteral(" <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3259 }
3260 }
3261
3262 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false)
3263 {
3264 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3265 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" },
3266 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" }
3267 };
3268 var submitonchange = "";
3269 if (submitOnChange)
3270 {
3271 submitonchange = "onchange='submitFilter()'";
3272 }
3273
3274 foreach (KeyValuePair<string, string> type in erhverType)
3275 {
3276 string ischecked = "";
3277 string[] olineParamsSplit = new string[0];
3278 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
3279 {
3280 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
3281 }
3282 foreach (var olineParams in olineParamsSplit)
3283 {
3284 if (olineParams == type.Value)
3285 {
3286 ischecked = "checked";
3287 }
3288 }
3289
3290 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3291 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3292 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\"");
3293 BeginWriteAttribute("value", " value=\"", 13387, "\"", 13406, 1);
3294 WriteAttributeValue("", 13395, type.Value, 13395, 11, false);
3295 EndWriteAttribute();
3296 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\"");
3297 Write(type.Key);
3298 WriteLiteral("\" ");
3299 Write(submitonchange);
3300 WriteLiteral(" ");
3301 Write(ischecked);
3302 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3303 }
3304
3305
3306 bool ischeckedpropertycat = false;
3307 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertycategory"]))
3308 {
3309 if (Dynamicweb.Context.Current.Request.QueryString["propertycategory"] == "Blandet Bolig/Erhverv")
3310 {
3311 ischeckedpropertycat = true;
3312 }
3313 }
3314 WriteLiteral(" <li>\r\n <label class=\"checkbox-container\">\r\n ");
3315 Write(Translate("Smartpage:Search.DropDown.Blandet Bolig/Erhverv", "Blandet Bolig/Erhverv"));
3316 WriteLiteral("\r\n <input type=\"checkbox\" name=\"propertycategory\" value=\"Blandet Bolig/Erhverv\" class=\"js-input-check datavalue\" data-val=\"Blandet Bolig/Erhverv\" onchange=\"submitFilter()\"");
3317 BeginWriteAttribute("checked", " checked=\"", 14319, "\"", 14350, 1);
3318 WriteAttributeValue("", 14329, ischeckedpropertycat, 14329, 21, false);
3319 EndWriteAttribute();
3320 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3321 }
3322
3323 void RenderBoligTypeErhvervInvest(bool submitOnChange = false)
3324 {
3325 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3326 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" },
3327 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" }
3328 };
3329
3330 foreach (KeyValuePair<string, string> type in erhverType)
3331 {
3332 bool ischecked = false;
3333 string[] olineParamsSplit = new string[0];
3334 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
3335 {
3336 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
3337 }
3338 foreach (var olineParams in olineParamsSplit)
3339 {
3340 if (olineParams == type.Value)
3341 {
3342 ischecked = true;
3343 }
3344 }
3345
3346 WriteLiteral(" <li>\r\n <label class=\"checkbox-container\">\r\n ");
3347 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3348 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\"");
3349 BeginWriteAttribute("value", " value=\"", 15837, "\"", 15856, 1);
3350 WriteAttributeValue("", 15845, type.Value, 15845, 11, false);
3351 EndWriteAttribute();
3352 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\"");
3353 Write(type.Key);
3354 WriteLiteral("\" onchange=\"submitFilter()\"");
3355 BeginWriteAttribute("checked", " checked=\"", 15937, "\"", 15957, 1);
3356 WriteAttributeValue("", 15947, ischecked, 15947, 10, false);
3357 EndWriteAttribute();
3358 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3359 }
3360 }
3361 int GetWebsiteSettingsPageId(string pageSysName)
3362 {
3363 int sideId = 0;
3364
3365 var pw = Dynamicweb.Frontend.PageView.Current();
3366
3367 string settingsItemId = "1";
3368
3369 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true")
3370 {
3371 settingsItemId = "2";
3372 }
3373
3374 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId);
3375
3376 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName))
3377 {
3378 return sideId;
3379 }
3380
3381 string boligsideLink = settingsItem[pageSysName] as String;
3382 string linkPrefix = "Default.aspx?ID=";
3383
3384 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
3385 {
3386 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
3387 }
3388
3389 return sideId;
3390 }
3391
3392 int GetPageSettingsPageId(string pageSysName)
3393 {
3394 int sideId = 0;
3395
3396 var pw = Dynamicweb.Frontend.PageView.Current();
3397
3398 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName))
3399 {
3400 return sideId;
3401 }
3402
3403 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String;
3404 string linkPrefix = "Default.aspx?ID=";
3405
3406 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
3407 {
3408 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
3409 }
3410
3411 return sideId;
3412 }
3413 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname)
3414 {
3415 WriteLiteral(" <select");
3416 BeginWriteAttribute("class", " class=\"", 17900, "\"", 17955, 5);
3417 WriteAttributeValue("", 17908, "form-control", 17908, 12, true);
3418 WriteAttributeValue(" ", 17920, "d-block", 17921, 8, true);
3419 WriteAttributeValue(" ", 17928, "d-lg-none", 17929, 10, true);
3420 WriteAttributeValue(" ", 17938, "mb-10", 17939, 6, true);
3421 WriteAttributeValue(" ", 17944, className, 17945, 10, false);
3422 EndWriteAttribute();
3423 WriteLiteral(" onchange=\"submitFilter()\"");
3424 BeginWriteAttribute("name", " name=\"", 17982, "\"", 17999, 1);
3425 WriteAttributeValue("", 17989, inputname, 17989, 10, false);
3426 EndWriteAttribute();
3427 WriteLiteral(">\r\n <option selected=\"true\" disabled=\"disabled\">");
3428 Write(Translate("Smartpage:Search.Placeholder." + name + "", "" + name + ""));
3429 WriteLiteral("</option>\r\n\r\n");
3430 for (var i = 0; i <= max; i += step)
3431 {
3432 var selected = string.Empty;
3433 var current = string.Empty;
3434 if (i == max)
3435 {
3436 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
3437 {
3438 WriteLiteral(" <option");
3439 BeginWriteAttribute("value", " value=\"", 18595, "\"", 18605, 1);
3440 WriteAttributeValue("", 18603, i, 18603, 2, false);
3441 EndWriteAttribute();
3442 WriteLiteral(" data-value=\'");
3443 Write(Convert.ToInt32(i).ToString("N0"));
3444 WriteLiteral("\' selected=\"selected\">");
3445 Write(Convert.ToInt32(i).ToString("N0"));
3446 WriteLiteral("+</option>\r\n");
3447 }
3448 else
3449 {
3450 WriteLiteral(" <option");
3451 BeginWriteAttribute("value", " value=\"", 18824, "\"", 18834, 1);
3452 WriteAttributeValue("", 18832, i, 18832, 2, false);
3453 EndWriteAttribute();
3454 WriteLiteral(" data-value=\'");
3455 Write(Convert.ToInt32(i).ToString("N0"));
3456 WriteLiteral("\'>");
3457 Write(Convert.ToInt32(i).ToString("N0"));
3458 WriteLiteral("+</option>\r\n");
3459 }
3460 }
3461 else
3462 {
3463 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
3464 {
3465 WriteLiteral(" <option");
3466 BeginWriteAttribute("value", " value=\"", 19258, "\"", 19268, 1);
3467 WriteAttributeValue("", 19266, i, 19266, 2, false);
3468 EndWriteAttribute();
3469 WriteLiteral(" data-value=\'");
3470 Write(Convert.ToInt32(i).ToString("N0"));
3471 WriteLiteral("\' selected=\"selected\">");
3472 Write(Convert.ToInt32(i).ToString("N0"));
3473 WriteLiteral("</option>\r\n");
3474 }
3475 else
3476 {
3477 WriteLiteral(" <option");
3478 BeginWriteAttribute("value", " value=\"", 19486, "\"", 19496, 1);
3479 WriteAttributeValue("", 19494, i, 19494, 2, false);
3480 EndWriteAttribute();
3481 WriteLiteral(" data-value=\'");
3482 Write(Convert.ToInt32(i).ToString("N0"));
3483 WriteLiteral("\'>");
3484 Write(Convert.ToInt32(i).ToString("N0"));
3485 WriteLiteral("</option>\r\n");
3486 }
3487 }
3488 }
3489 WriteLiteral(" </select>\r\n");
3490 }
3491
3492 void RenderTopFilter(string parameter)
3493 {
3494 if (parameter == "pricemin" || parameter == "pricemax")
3495 {
3496 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"]))
3497 {
3498 if (parameter == "pricemin")
3499 {
3500 Write("<div class='search-terms' id='priceFilter'>");
3501 Write("Pris ");
3502 Write(Dynamicweb.Context.Current.Request[parameter]);
3503
3504 }
3505
3506 else
3507 {
3508 Write(" - ");
3509 Write(Dynamicweb.Context.Current.Request[parameter]);
3510 Write(" kr.");
3511 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"pricemin,pricemax\"></i>\r\n");
3512 Write("</div>");
3513
3514 }
3515 }
3516 }
3517
3518 else if (parameter == "subsidymin" || parameter == "subsidymax")
3519 {
3520 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"]))
3521 {
3522 if (parameter == "subsidymin")
3523 {
3524 Write("<div class='search-terms' id='subsidyFilter'>");
3525 Write("Årlig leje ");
3526 Write(Dynamicweb.Context.Current.Request[parameter]);
3527
3528 }
3529
3530 else
3531 {
3532 Write(" - ");
3533 Write(Dynamicweb.Context.Current.Request[parameter]);
3534 Write(" kr.");
3535 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidymin,subsidymax\"></i>\r\n");
3536 Write("</div>");
3537
3538 }
3539 }
3540 }
3541 else if (parameter == "etagearealmin" || parameter == "etagearealmax")
3542 {
3543 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"]))
3544 {
3545 if (parameter == "etagearealmin")
3546 {
3547 Write("<div class='search-terms' id='etagearealFilter'>");
3548 Write("Etageareal ");
3549 Write(Dynamicweb.Context.Current.Request[parameter]);
3550
3551 }
3552
3553 else
3554 {
3555 Write(" - ");
3556 Write(Dynamicweb.Context.Current.Request[parameter]);
3557 Write(" kvm.");
3558 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"etagearealmin,etagearealmax\"></i>\r\n");
3559 Write("</div>");
3560
3561 }
3562 }
3563 }
3564
3565 else if (parameter == "grundarealmin" || parameter == "grundarealmax")
3566 {
3567 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"]))
3568 {
3569 if (parameter == "grundarealmin")
3570 {
3571 Write("<div class='search-terms' id='grundarealFilter'>");
3572 Write("Grundareal ");
3573 Write(Dynamicweb.Context.Current.Request[parameter]);
3574
3575 }
3576
3577 else
3578 {
3579 Write(" - ");
3580 Write(Dynamicweb.Context.Current.Request[parameter]);
3581 Write(" kvm.");
3582 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"grundarealmin,grundarealmax\"></i>\r\n");
3583 Write("</div>");
3584
3585 }
3586 }
3587 }
3588
3589 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax")
3590 {
3591 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"]))
3592 {
3593 if (parameter == "subsidykvmmin")
3594 {
3595 Write("<div class='search-terms' id='subsidykvmFilter'>");
3596 Write("Årlig leje kvm ");
3597 Write(Dynamicweb.Context.Current.Request[parameter]);
3598
3599 }
3600
3601 else
3602 {
3603 Write(" - ");
3604 Write(Dynamicweb.Context.Current.Request[parameter]);
3605 Write(" kr.");
3606 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidykvmmin,subsidykvmmax\"></i>\r\n");
3607 Write("</div>");
3608
3609 }
3610 }
3611 }
3612
3613 else if (parameter == "olinecategory")
3614 {
3615
3616 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"]))
3617 {
3618 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3619 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" },
3620 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"},
3621 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" },
3622 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" }
3623 };
3624
3625
3626 foreach (var er in erhverType)
3627 {
3628 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
3629 {
3630 WriteLiteral(" <div class=\"search-terms\"");
3631 BeginWriteAttribute("id", " id=\"", 24666, "\"", 24681, 1);
3632 WriteAttributeValue("", 24671, parameter, 24671, 10, false);
3633 EndWriteAttribute();
3634 WriteLiteral(">\r\n ");
3635 Write(er.Value);
3636 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3637 Write(parameter);
3638 WriteLiteral("\" data-val=\"");
3639 Write(er.Key);
3640 WriteLiteral("\"></i>\r\n </div>\r\n");
3641 }
3642 }
3643 }
3644 }
3645 else if (parameter == "propertycategory")
3646 {
3647
3648 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["propertycategory"]))
3649 {
3650 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3651 { "propertycategory", "Blandet Bolig/Erhverv" }
3652 };
3653
3654 foreach (var er in erhverType)
3655 {
3656 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]) && Dynamicweb.Context.Current.Request[parameter] == er.Value)
3657 {
3658 WriteLiteral(" <div class=\"search-terms\"");
3659 BeginWriteAttribute("id", " id=\"", 25587, "\"", 25602, 1);
3660 WriteAttributeValue("", 25592, parameter, 25592, 10, false);
3661 EndWriteAttribute();
3662 WriteLiteral(">\r\n ");
3663 Write(er.Value);
3664 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3665 Write(parameter);
3666 WriteLiteral("\" data-val=\"");
3667 Write(er.Key);
3668 WriteLiteral("\"></i>\r\n </div>\r\n");
3669 }
3670 }
3671 }
3672 }
3673 else if (parameter == "search")
3674 {
3675 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"]))
3676 {
3677 WriteLiteral(" <div class=\"search-terms\"");
3678 BeginWriteAttribute("id", " id=\"", 26050, "\"", 26065, 1);
3679 WriteAttributeValue("", 26055, parameter, 26055, 10, false);
3680 EndWriteAttribute();
3681 WriteLiteral(">\r\n ");
3682 Write(Dynamicweb.Context.Current.Request[parameter]);
3683 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3684 Write(parameter);
3685 WriteLiteral("\"></i>\r\n </div>\r\n");
3686 }
3687 }
3688 else
3689 {
3690 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]))
3691 {
3692 Dictionary<string, string>
3693 ubudsform = new Dictionary<string, string>
3694 (){
3695 {"salg", "Salg" }, { "leje","Leje" }
3696 };
3697
3698 foreach (var er in ubudsform)
3699 {
3700 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
3701 {
3702 WriteLiteral(" <div class=\"search-terms\"");
3703 BeginWriteAttribute("id", " id=\"", 27214, "\"", 27229, 1);
3704 WriteAttributeValue("", 27219, parameter, 27219, 10, false);
3705 EndWriteAttribute();
3706 WriteLiteral(">\r\n ");
3707 Write(er.Value);
3708 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3709 Write(parameter);
3710 WriteLiteral("\" data-val=\"");
3711 Write(er.Key);
3712 WriteLiteral("\"></i>\r\n </div>\r\n");
3713 }
3714 }
3715
3716
3717 }
3718 }
3719 }
3720
3721 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString)
3722 {
3723 var selected = "";
3724 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue)
3725 {
3726 selected = "selected";
3727 }
3728
3729 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected);
3730
3731 Write(current);
3732
3733 }
3734
3735 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "")
3736 {
3737 WriteLiteral(" <div");
3738 BeginWriteAttribute("class", " class=\"", 28233, "\"", 28279, 3);
3739 WriteAttributeValue("", 28241, "main-search-form", 28241, 16, true);
3740 WriteAttributeValue(" ", 28257, "frontpage", 28258, 10, true);
3741 WriteAttributeValue(" ", 28267, cssClasses, 28268, 11, false);
3742 EndWriteAttribute();
3743 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>");
3744 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
3745 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>");
3746 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg"));
3747 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\"");
3748 BeginWriteAttribute("value", " value=\'", 28994, "\'", 29015, 1);
3749 WriteAttributeValue("", 29002, searchPageId, 29002, 13, false);
3750 EndWriteAttribute();
3751 WriteLiteral(@" id=""searchPageId-frontpage"" disabled=""disabled"" />
3752 <div class=""row form-wrapper no-gutters"">
3753
3754 <div class=""col-xs-12 col-md-5 col-searchbar"">
3755 <div class=""searchbar"">
3756 <input type=""text""");
3757 BeginWriteAttribute("name", " name=\"", 29293, "\"", 29320, 1);
3758 WriteAttributeValue("", 29300, querySearchNameAttr, 29300, 20, false);
3759 EndWriteAttribute();
3760 WriteLiteral(" id=\"searchfield-frontpage\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\"");
3761 BeginWriteAttribute("value", " value=\"", 29433, "\"", 29511, 1);
3762 WriteAttributeValue("", 29441, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 29441, 70, false);
3763 EndWriteAttribute();
3764 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom-frontpage\" name=\"zipcodefrom\"");
3765 BeginWriteAttribute("value", " value=\"", 29611, "\"", 29694, 1);
3766 WriteAttributeValue("", 29619, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 29619, 75, false);
3767 EndWriteAttribute();
3768 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto-frontpage\" name=\"zipcodeto\"");
3769 BeginWriteAttribute("value", " value=\"", 29790, "\"", 29871, 1);
3770 WriteAttributeValue("", 29798, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 29798, 73, false);
3771 EndWriteAttribute();
3772 WriteLiteral(@" />
3773 </div>
3774 </div>
3775 <div class=""col-xs-12 col-md-5"">
3776 <div class=""row no-gutters"">
3777 <div class=""col-xs-12 col-md-6 input-col"">
3778 <div class=""dropdown w-overlay"">
3779 <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"">
3780 ");
3781 Write(Translate("Smartpage:Search.Boligtype", "Boligtype"));
3782 WriteLiteral(@"
3783 </button>
3784 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
3785 <ul class=""bolig-dropdown list-unstyled"">
3786 ");
3787
3788 RenderBoligtypeCheckboxesDropdown();
3789 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">");
3790 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
3791 WriteLiteral(@"</button>
3792 </div>
3793
3794 </div>
3795
3796 </div>
3797 <div class=""col-xs-12 col-md-6 input-col"">
3798 <div class=""dropdown w-overlay"">
3799 <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"">
3800 ");
3801 Write(Translate("Smartpage:Search.Pris", "Pris"));
3802 WriteLiteral(@"
3803 </button>
3804 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris"">
3805 <input type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input""");
3806 BeginWriteAttribute("placeholder", " placeholder=\'", 32050, "\'", 32126, 1);
3807 WriteAttributeValue("", 32064, Translate("Smartpage:Search.Placeholder.MinPris","Min. pris"), 32064, 62, false);
3808 EndWriteAttribute();
3809 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3810 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"));
3811 WriteLiteral("</option>\r\n");
3812 for (var i = 0; i <= 10000000; i += 100000)
3813 {
3814 if (i == 10000000)
3815 {
3816 WriteLiteral(" <option");
3817 BeginWriteAttribute("value", " value=\"", 32735, "\"", 32745, 1);
3818 WriteAttributeValue("", 32743, i, 32743, 2, false);
3819 EndWriteAttribute();
3820 WriteLiteral(" data-value=\'");
3821 Write(Convert.ToInt32(i).ToString("N0"));
3822 WriteLiteral("+\'>");
3823 Write(Convert.ToInt32(i).ToString("N0"));
3824 WriteLiteral("+</option>\r\n");
3825 }
3826 else
3827 {
3828 WriteLiteral(" <option");
3829 BeginWriteAttribute("value", " value=\"", 33057, "\"", 33067, 1);
3830 WriteAttributeValue("", 33065, i, 33065, 2, false);
3831 EndWriteAttribute();
3832 WriteLiteral(" data-value=\'");
3833 Write(Convert.ToInt32(i).ToString("N0"));
3834 WriteLiteral("\'>");
3835 Write(Convert.ToInt32(i).ToString("N0"));
3836 WriteLiteral("</option>\r\n");
3837 }
3838 }
3839 WriteLiteral(@" </select>
3840 <input type=""hidden"" id=""pricemin-frontpage"" name=""pricemin"" />
3841
3842 <input type=""text"" class=""form-control js-auto-thousand js-pricemax-frontpage-input""");
3843 BeginWriteAttribute("placeholder", " placeholder=\'", 33542, "\'", 33618, 1);
3844 WriteAttributeValue("", 33556, Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris"), 33556, 62, false);
3845 EndWriteAttribute();
3846 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3847 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"));
3848 WriteLiteral("</option>\r\n");
3849 for (var i = 0; i <= 10000000; i += 100000)
3850 {
3851 if (i == 10000000)
3852 {
3853 WriteLiteral(" <option");
3854 BeginWriteAttribute("value", " value=\"", 34221, "\"", 34231, 1);
3855 WriteAttributeValue("", 34229, i, 34229, 2, false);
3856 EndWriteAttribute();
3857 WriteLiteral(" data-value=\'");
3858 Write(Convert.ToInt32(i).ToString("N0"));
3859 WriteLiteral("+\'>");
3860 Write(Convert.ToInt32(i).ToString("N0"));
3861 WriteLiteral("+</option>\r\n");
3862 }
3863 else
3864 {
3865 WriteLiteral(" <option");
3866 BeginWriteAttribute("value", " value=\"", 34543, "\"", 34553, 1);
3867 WriteAttributeValue("", 34551, i, 34551, 2, false);
3868 EndWriteAttribute();
3869 WriteLiteral(" data-value=\'");
3870 Write(Convert.ToInt32(i).ToString("N0"));
3871 WriteLiteral("\'>");
3872 Write(Convert.ToInt32(i).ToString("N0"));
3873 WriteLiteral("</option>\r\n");
3874 }
3875 }
3876 WriteLiteral(" </select>\r\n <input type=\"hidden\" id=\"pricemax-frontpage\" name=\"pricemax\" />\r\n <button class=\"btn btn-primary js-close-dropdown mt-3\">");
3877 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
3878 WriteLiteral(@"</button>
3879 </div>
3880 </div>
3881 </div>
3882 </div>
3883 </div>
3884 <div class=""col-xs-12 col-md-2 d-none d-md-block"">
3885 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
3886 Write(Translate("Smartpage:Search.Søg", "Søg"));
3887 WriteLiteral(@"</button>
3888 </div>
3889 </div>
3890
3891 <div class=""row moresearch-btn no-gutters"">
3892 <div class=""col-sm-12"">
3893 <div class=""row align-items-center no-gutters"">
3894 <div class=""col-12 col-md-4"">
3895 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch"" aria-expanded=""false"" aria-controls=""moreSearch"">
3896 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open"">");
3897 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder"));
3898 WriteLiteral("</span> <span class=\"open\"><span class=\"js-filter-count\">0</span> ");
3899 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt"));
3900 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\">");
3901 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg"));
3902 WriteLiteral("</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"collapse\" id=\"moreSearch\">\r\n <h4 class=\"mt-20\"><b>");
3903 Write(Translate("Smartpage:Search.Bolig", "Bolig"));
3904 WriteLiteral(@"</b></h4>
3905 <div class=""row align-items-end mb-30"">
3906 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
3907 <div class=""filter-container row"">
3908 <label class=""d-block col-12"">");
3909 Write(Translate("Smartpage:Search.Boligareal", "Boligareal"));
3910 WriteLiteral(@"</label>
3911 <div class=""col-6 pr-sm-0 pr-2"">
3912 <input type=""text"" name=""boligarealmin"" id=""boligarealmin-frontpage"" class=""form-control js-boligarealmin-frontpage-input js-count""");
3913 BeginWriteAttribute("placeholder", " placeholder=\'", 37419, "\'", 37491, 1);
3914 WriteAttributeValue("", 37433, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 37433, 58, false);
3915 EndWriteAttribute();
3916 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3917 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
3918 WriteLiteral("</option>\r\n");
3919 for (var i = 0; i <= 300; i += 10)
3920 {
3921 if (i == 300)
3922 {
3923 WriteLiteral(" <option");
3924 BeginWriteAttribute("value", " value=\"", 38098, "\"", 38108, 1);
3925 WriteAttributeValue("", 38106, i, 38106, 2, false);
3926 EndWriteAttribute();
3927 WriteLiteral(">");
3928 Write(i);
3929 WriteLiteral("+</option>\r\n");
3930 }
3931 else
3932 {
3933 WriteLiteral(" <option");
3934 BeginWriteAttribute("value", " value=\"", 38355, "\"", 38365, 1);
3935 WriteAttributeValue("", 38363, i, 38363, 2, false);
3936 EndWriteAttribute();
3937 WriteLiteral(">");
3938 Write(i);
3939 WriteLiteral("</option>\r\n");
3940 }
3941 }
3942 WriteLiteral(@" </select>
3943 </div>
3944 <div class=""col-6 pl-sm-0 pl-2"">
3945 <input type=""text"" name=""boligarealmax"" id=""boligarealmax-frontpage"" class=""form-control js-boligarealmax-frontpage-input js-count""");
3946 BeginWriteAttribute("placeholder", " placeholder=\'", 38838, "\'", 38910, 1);
3947 WriteAttributeValue("", 38852, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 38852, 58, false);
3948 EndWriteAttribute();
3949 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3950 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
3951 WriteLiteral("</option>\r\n");
3952 for (var i = 0; i <= 300; i += 10)
3953 {
3954 if (i == 300)
3955 {
3956 WriteLiteral(" <option");
3957 BeginWriteAttribute("value", " value=\"", 39517, "\"", 39527, 1);
3958 WriteAttributeValue("", 39525, i, 39525, 2, false);
3959 EndWriteAttribute();
3960 WriteLiteral(">");
3961 Write(i);
3962 WriteLiteral("+</option>\r\n");
3963 }
3964 else
3965 {
3966 WriteLiteral(" <option");
3967 BeginWriteAttribute("value", " value=\"", 39774, "\"", 39784, 1);
3968 WriteAttributeValue("", 39782, i, 39782, 2, false);
3969 EndWriteAttribute();
3970 WriteLiteral(">");
3971 Write(i);
3972 WriteLiteral("</option>\r\n");
3973 }
3974 }
3975 WriteLiteral(@" </select>
3976 </div>
3977 </div>
3978 </div>
3979 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
3980 <div class=""filter-container row"">
3981 <label class=""d-block col-12"">");
3982 Write(Translate("Smartpage:Search.Grundareal", "Grundareal"));
3983 WriteLiteral(@"</label>
3984 <div class=""col-6 pr-sm-0 pr-2"">
3985 <input type=""text"" name=""grundarealmin"" id=""grundarealmin-frontpage"" class=""form-control js-grundarealmin-frontpage-input js-count""");
3986 BeginWriteAttribute("placeholder", " placeholder=\'", 40633, "\'", 40705, 1);
3987 WriteAttributeValue("", 40647, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 40647, 58, false);
3988 EndWriteAttribute();
3989 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3990 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
3991 WriteLiteral("</option>\r\n");
3992 for (var i = 0; i <= 10000; i += 100)
3993 {
3994 if (i == 10000)
3995 {
3996 WriteLiteral(" <option");
3997 BeginWriteAttribute("value", " value=\"", 41317, "\"", 41327, 1);
3998 WriteAttributeValue("", 41325, i, 41325, 2, false);
3999 EndWriteAttribute();
4000 WriteLiteral(">");
4001 Write(i);
4002 WriteLiteral("+</option>\r\n");
4003 }
4004 else
4005 {
4006 WriteLiteral(" <option");
4007 BeginWriteAttribute("value", " value=\"", 41574, "\"", 41584, 1);
4008 WriteAttributeValue("", 41582, i, 41582, 2, false);
4009 EndWriteAttribute();
4010 WriteLiteral(">");
4011 Write(i);
4012 WriteLiteral("</option>\r\n");
4013 }
4014 }
4015 WriteLiteral(@" </select>
4016 </div>
4017 <div class=""col-6 pl-sm-0 pl-2"">
4018 <input type=""text"" name=""grundarealmax"" id=""grundarealmax-frontpage"" class=""form-control js-grundarealmax-frontpage-input js-count""");
4019 BeginWriteAttribute("placeholder", " placeholder=\'", 42057, "\'", 42129, 1);
4020 WriteAttributeValue("", 42071, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 42071, 58, false);
4021 EndWriteAttribute();
4022 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4023 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
4024 WriteLiteral("</option>\r\n");
4025 for (var i = 0; i <= 10000; i += 100)
4026 {
4027 if (i == 10000)
4028 {
4029 WriteLiteral(" <option");
4030 BeginWriteAttribute("value", " value=\"", 42741, "\"", 42751, 1);
4031 WriteAttributeValue("", 42749, i, 42749, 2, false);
4032 EndWriteAttribute();
4033 WriteLiteral(">");
4034 Write(i);
4035 WriteLiteral("+</option>\r\n");
4036 }
4037 else
4038 {
4039 WriteLiteral(" <option");
4040 BeginWriteAttribute("value", " value=\"", 42998, "\"", 43008, 1);
4041 WriteAttributeValue("", 43006, i, 43006, 2, false);
4042 EndWriteAttribute();
4043 WriteLiteral(">");
4044 Write(i);
4045 WriteLiteral("</option>\r\n");
4046 }
4047 }
4048 WriteLiteral(@" </select>
4049 </div>
4050 </div>
4051 </div>
4052 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
4053 <div class=""filter-container row"">
4054 <label class=""d-block col-12"">Antal rum</label>
4055
4056 <div class=""col-6 pr-sm-0 pr-2"">
4057 <select name=""roomsmin"" id=""roomsmin-frontpage"" class=""form-control reverse js-count"">
4058 <option selected=""true"" disabled=""disabled"">");
4059 Write(Translate("Smartpage:Search.Placeholder.Min", "Min"));
4060 WriteLiteral(@"</option>
4061 <option value=""1"">1</option>
4062 <option value=""2"">2</option>
4063 <option value=""3"">3</option>
4064 <option value=""4"">4</option>
4065 <option value=""5+"">5+</option>
4066 </select>
4067 </div>
4068 <div class=""col-6 pl-sm-0 pl-2"">
4069 <select name=""roomsmax"" id=""roomsmax-frontpage"" class=""form-control reverse js-count"">
4070 <option selected=""true"" disabled=""disabled"">");
4071 Write(Translate("Smartpage:Search.Placeholder.Max", "Max"));
4072 WriteLiteral(@"</option>
4073 <option value=""1"">1</option>
4074 <option value=""2"">2</option>
4075 <option value=""3"">3</option>
4076 <option value=""4"">4</option>
4077 <option value=""5+"">");
4078 Write(Translate("Smartpage:Rooms.5", "5"));
4079 WriteLiteral(@"</option>
4080 </select>
4081 </div>
4082 </div>
4083 </div>
4084 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
4085 <div class=""row"">
4086 <div class=""col-12"">
4087 <div class=""filter-container"">
4088 <label class=""d-block"">Energimærke</label>
4089 <select name=""energylabel"" id=""energylabel-frontpage"" class=""form-control reverse js-count"">
4090 <option disabled selected=""selected"">");
4091 Write(Translate("Smartpage:Search.Vælg", "Vælg"));
4092 WriteLiteral(@"</option>
4093 <option value=""01"">G</option>
4094 <option value=""02"">F</option>
4095 <option value=""03"">E</option>
4096 <option value=""04"">D</option>
4097 <option value=""05"">C</option>
4098 <option value=""06"">B</option>
4099 <option value=""07"">A</option>
4100 <option value=""08"">A2010</option>
4101 <option value=""09"">A2015</option>
4102 <option value=""10"">A2020+</option>
4103 </select>
4104 </div>
4105 </div>
4106 ");
4107 WriteLiteral(" </div>\r\n </div>\r\n <div class=\"col-12 col-sm-6 col-lg-3 mt-3\">\r\n <h4");
4108 BeginWriteAttribute("class", " class=\"", 47253, "\"", 47261, 0);
4109 EndWriteAttribute();
4110 WriteLiteral("><b>");
4111 Write(Translate("Smartpage:Search.Økonomi", "Økonomi"));
4112 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">");
4113 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned"));
4114 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\"");
4115 BeginWriteAttribute("placeholder", " placeholder=\'", 47817, "\'", 47891, 1);
4116 WriteAttributeValue("", 47831, Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK"), 47831, 60, false);
4117 EndWriteAttribute();
4118 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4119 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"));
4120 WriteLiteral("</option>\r\n");
4121 for (var i = 0; i <= 25000; i += 1250)
4122 {
4123 if (i == 25000)
4124 {
4125 WriteLiteral(" <option>");
4126 Write(Convert.ToInt32(i).ToString("N0"));
4127 WriteLiteral("+</option>\r\n");
4128 }
4129 else
4130 {
4131 WriteLiteral(" <option>");
4132 Write(Convert.ToInt32(i).ToString("N0"));
4133 WriteLiteral("</option>\r\n");
4134 }
4135 }
4136 WriteLiteral(@" </select>
4137 </div>
4138 <div class=""col-6 pl-sm-0 pl-2"">
4139 <input type=""text"" name=""subsidymax"" id=""subsidymax-frontpage"" class=""form-control js-subsidymax-frontpage-input js-count""");
4140 BeginWriteAttribute("placeholder", " placeholder=\'", 49276, "\'", 49350, 1);
4141 WriteAttributeValue("", 49290, Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK"), 49290, 60, false);
4142 EndWriteAttribute();
4143 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4144 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"));
4145 WriteLiteral("</option>\r\n");
4146 for (var i = 0; i <= 25000; i += 1250)
4147 {
4148 if (i == 25000)
4149 {
4150 WriteLiteral(" <option");
4151 BeginWriteAttribute("value", " value=\"", 49962, "\"", 49989, 1);
4152 WriteAttributeValue("", 49970, Convert.ToInt32(i), 49970, 19, false);
4153 EndWriteAttribute();
4154 WriteLiteral(">");
4155 Write(Convert.ToInt32(i).ToString("N0"));
4156 WriteLiteral("+</option>\r\n");
4157 }
4158 else
4159 {
4160 WriteLiteral(" <option");
4161 BeginWriteAttribute("value", " value=\"", 50268, "\"", 50295, 1);
4162 WriteAttributeValue("", 50276, Convert.ToInt32(i), 50276, 19, false);
4163 EndWriteAttribute();
4164 WriteLiteral(">");
4165 Write(Convert.ToInt32(i).ToString("N0"));
4166 WriteLiteral("</option>\r\n");
4167 }
4168 }
4169 WriteLiteral(@" </select>
4170 </div>
4171 </div>
4172 </div>
4173 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0"">
4174 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
4175 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre"));
4176 WriteLiteral(@"</button>
4177 </div>
4178 </div>
4179 </div>
4180 </div>
4181 </div>
4182
4183 <div class=""row d-block d-md-none form-wrapper no-gutters"">
4184 <div class=""col-xs-12 col-md-2"">
4185 <button type=""submit"" class=""btn btn-block btn-search btn-mobile-search"">");
4186 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig"));
4187 WriteLiteral(@"<i class=""fa fa-search cta-icon""></i></button>
4188 </div>
4189 </div>
4190 </form>
4191 <div class=""front-page-actions d-md-none"">
4192 <div>
4193 <button class=""btn btn-block btn-search btn-mobile-search js-search-mobile"">");
4194 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig"));
4195 WriteLiteral("<i class=\"fa fa-search cta-icon\"></i></button>\r\n </div>\r\n <div>\r\n");
4196
4197 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : "";
4198 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER");
4199 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\">\r\n <input name=\"id\"");
4200 BeginWriteAttribute("value", " value=\"", 52238, "\"", 52261, 1);
4201 WriteAttributeValue("", 52246, brokerSearchId, 52246, 15, false);
4202 EndWriteAttribute();
4203 WriteLiteral(@" type=""hidden"" />
4204 <div class=""icon-wrapper-wclick"">
4205 <i class=""fas fa-search ta-submit-on-icon-click""></i>
4206 <input class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" name=""q"" type=""text""");
4207 BeginWriteAttribute("placeholder", " placeholder=\"", 52565, "\"", 52587, 1);
4208 WriteAttributeValue("", 52579, ctaText, 52579, 8, false);
4209 EndWriteAttribute();
4210 WriteLiteral(" onfocus=\"this.placeholder = \'\'\"");
4211 BeginWriteAttribute("onblur", " onblur=\"", 52620, "\"", 52656, 3);
4212 WriteAttributeValue("", 52629, "this.placeholder=\'", 52629, 18, true);
4213 WriteAttributeValue("", 52647, ctaText, 52647, 8, false);
4214 WriteAttributeValue("", 52655, "\'", 52655, 1, true);
4215 EndWriteAttribute();
4216 WriteLiteral(" />\r\n </div>\r\n </form>\r\n");
4217 WriteLiteral(" </div>\r\n <div>\r\n <a href=\"javascript:panelSalgsvurdering(\'Hovedmenu\')\" class=\"btn btn-orange btn-block\">");
4218 Write(Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING"));
4219 WriteLiteral("<i class=\"cta-icon fa fa-angle-right\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n");
4220
4221 }
4222
4223 void RenderSlideMenu(bool erhverv, string maeglersoegning)
4224 {
4225 WriteLiteral(@" <div id=""menu"" class=""main-menu-slide "">
4226 <div class=""container"">
4227 <div class=""row"">
4228 <div class=""col-12"">
4229 <span class=""menu-headline"">MENU</span>
4230 </div>
4231 <div class=""menu-slide"">
4232 <b></b>
4233 </div>
4234
4235 <div class=""col-12 main-slidemenu"">
4236 ");
4237
4238 var navigationSettings = new NavigationSettings();
4239 navigationSettings.StartLevel = 1;
4240 navigationSettings.StopLevel = 2;
4241 navigationSettings.ExpandMode = ExpandMode.All;
4242 navigationSettings.RootAreaId = Pageview.Area.ID;
4243
4244 Write(Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings));
4245 WriteLiteral(" </div>\r\n <div class=\"col-12 bottom-btns\">\r\n\r\n");
4246
4247 string[] maeglerid;
4248 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0";
4249
4250 if (erhverv)
4251 {
4252 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None);
4253 }
4254 else
4255 {
4256 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None);
4257 }
4258
4259 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\">\r\n <input name=\"id\"");
4260 BeginWriteAttribute("value", " value=\"", 55270, "\"", 55291, 1);
4261 WriteAttributeValue("", 55278, maeglerid[1], 55278, 13, false);
4262 EndWriteAttribute();
4263 WriteLiteral(@" type=""hidden"" />
4264 <div class=""icon-wrapper-wclick"">
4265 <i class=""fas fa-search ta-submit-on-icon-click""></i>
4266 <input class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" name=""q"" type=""text""");
4267 BeginWriteAttribute("placeholder", " placeholder=\'", 55607, "\'", 55680, 1);
4268 WriteAttributeValue("", 55621, Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER"), 55621, 59, false);
4269 EndWriteAttribute();
4270 WriteLiteral(" onfocus=\"this.placeholder = \'FIND MÆGLER\'\" />\r\n </div>\r\n </form>\r\n");
4271 WriteLiteral(" <br />\r\n");
4272
4273 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + "";
4274 WriteLiteral(" <a");
4275 BeginWriteAttribute("href", " href=\"", 56046, "\"", 56117, 5);
4276 WriteAttributeValue("", 56053, "javascript:panelSalgsvurdering(\'", 56053, 32, true);
4277 WriteAttributeValue("", 56085, dpmaegler, 56085, 10, false);
4278 WriteAttributeValue("", 56095, "\',\'", 56095, 3, true);
4279 WriteAttributeValue("", 56098, Pageview.AreaID, 56098, 16, false);
4280 WriteAttributeValue("", 56114, "\');", 56114, 3, true);
4281 EndWriteAttribute();
4282 WriteLiteral(" class=\"btn btn-block btn-default-invert js-close-menu\">Gratis salgsvurdering <i class=\"cta-icon fa fa-angle-right\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n");
4283 }
4284
4285 void RenderBlockList(List<Block> blocks)
4286 {
4287 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
4288 blocks = blocks.OrderBy(item => item.SortId).ToList();
4289
4290 foreach (Block item in blocks)
4291 {
4292 if (debug) {
4293 WriteLiteral(" <!-- Block START: ");
4294 Write(item.Id);
4295 WriteLiteral(" -->\r\n");
4296 }
4297
4298 if (item.Design == null)
4299 {
4300 RenderBlock(item);
4301 }
4302 else if (item.Design.RenderType == RenderType.None) {
4303 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
4304
4305 WriteLiteral(" <div");
4306 BeginWriteAttribute("class", " class=\"", 57408, "\"", 57432, 2);
4307 WriteAttributeValue("", 57416, cssClass, 57416, 9, false);
4308 WriteAttributeValue(" ", 57425, "dw-mod", 57426, 7, true);
4309 EndWriteAttribute();
4310 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4311 }
4312 else if (item.Design.RenderType != RenderType.Hide)
4313 {
4314 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
4315
4316 if (!item.SkipRenderBlocksList) {
4317 if (item.Design.RenderType == RenderType.Row)
4318 {
4319 WriteLiteral(" <div");
4320 BeginWriteAttribute("class", " class=\"", 57859, "\"", 57914, 4);
4321 WriteAttributeValue("", 57867, "grid", 57867, 4, true);
4322 WriteAttributeValue(" ", 57871, "grid--align-content-start", 57872, 26, true);
4323 WriteAttributeValue(" ", 57897, cssClass, 57898, 9, false);
4324 WriteAttributeValue(" ", 57907, "dw-mod", 57908, 7, true);
4325 EndWriteAttribute();
4326 BeginWriteAttribute("id", " id=\"", 57915, "\"", 57935, 2);
4327 WriteAttributeValue("", 57920, "Block__", 57920, 7, true);
4328 WriteAttributeValue("", 57927, item.Id, 57927, 8, false);
4329 EndWriteAttribute();
4330 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4331 }
4332
4333 if (item.Design.RenderType == RenderType.Column)
4334 {
4335 string hidePadding = item.Design.HidePadding ? "u-no-padding" : "";
4336 string size = item.Design.Size ?? "12";
4337 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size;
4338
4339 WriteLiteral(" <div");
4340 BeginWriteAttribute("class", " class=\"", 58431, "\"", 58562, 9);
4341 WriteAttributeValue("", 58439, "grid__col-lg-", 58439, 13, true);
4342 WriteAttributeValue("", 58452, item.Design.Size, 58452, 17, false);
4343 WriteAttributeValue(" ", 58469, "grid__col-md-", 58470, 14, true);
4344 WriteAttributeValue("", 58483, item.Design.Size, 58483, 17, false);
4345 WriteAttributeValue(" ", 58500, "grid__col-sm-12", 58501, 16, true);
4346 WriteAttributeValue(" ", 58516, "grid__col-xs-12", 58517, 16, true);
4347 WriteAttributeValue(" ", 58532, hidePadding, 58533, 12, false);
4348 WriteAttributeValue(" ", 58545, cssClass, 58546, 9, false);
4349 WriteAttributeValue(" ", 58555, "dw-mod", 58556, 7, true);
4350 EndWriteAttribute();
4351 BeginWriteAttribute("id", " id=\"", 58563, "\"", 58583, 2);
4352 WriteAttributeValue("", 58568, "Block__", 58568, 7, true);
4353 WriteAttributeValue("", 58575, item.Id, 58575, 8, false);
4354 EndWriteAttribute();
4355 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4356 }
4357
4358 if (item.Design.RenderType == RenderType.Table)
4359 {
4360 WriteLiteral(" <table");
4361 BeginWriteAttribute("class", " class=\"", 58814, "\"", 58844, 3);
4362 WriteAttributeValue("", 58822, "table", 58822, 5, true);
4363 WriteAttributeValue(" ", 58827, cssClass, 58828, 9, false);
4364 WriteAttributeValue(" ", 58837, "dw-mod", 58838, 7, true);
4365 EndWriteAttribute();
4366 BeginWriteAttribute("id", " id=\"", 58845, "\"", 58865, 2);
4367 WriteAttributeValue("", 58850, "Block__", 58850, 7, true);
4368 WriteAttributeValue("", 58857, item.Id, 58857, 8, false);
4369 EndWriteAttribute();
4370 WriteLiteral(">\r\n RenderBlock(item);\r\n </table>\r\n");
4371 }
4372
4373 if (item.Design.RenderType == RenderType.TableRow)
4374 {
4375 WriteLiteral(" <tr");
4376 BeginWriteAttribute("class", " class=\"", 59098, "\"", 59122, 2);
4377 WriteAttributeValue("", 59106, cssClass, 59106, 9, false);
4378 WriteAttributeValue(" ", 59115, "dw-mod", 59116, 7, true);
4379 EndWriteAttribute();
4380 BeginWriteAttribute("id", " id=\"", 59123, "\"", 59143, 2);
4381 WriteAttributeValue("", 59128, "Block__", 59128, 7, true);
4382 WriteAttributeValue("", 59135, item.Id, 59135, 8, false);
4383 EndWriteAttribute();
4384 WriteLiteral(">\r\n RenderBlock(item);\r\n </tr>\r\n");
4385 }
4386
4387 if (item.Design.RenderType == RenderType.TableColumn)
4388 {
4389 WriteLiteral(" <td");
4390 BeginWriteAttribute("class", " class=\"", 59376, "\"", 59400, 2);
4391 WriteAttributeValue("", 59384, cssClass, 59384, 9, false);
4392 WriteAttributeValue(" ", 59393, "dw-mod", 59394, 7, true);
4393 EndWriteAttribute();
4394 BeginWriteAttribute("id", " id=\"", 59401, "\"", 59421, 2);
4395 WriteAttributeValue("", 59406, "Block__", 59406, 7, true);
4396 WriteAttributeValue("", 59413, item.Id, 59413, 8, false);
4397 EndWriteAttribute();
4398 WriteLiteral(">\r\n RenderBlock(item);\r\n </td>\r\n");
4399 }
4400
4401 if (item.Design.RenderType == RenderType.CardHeader)
4402 {
4403 WriteLiteral(" <div");
4404 BeginWriteAttribute("class", " class=\"", 59654, "\"", 59690, 3);
4405 WriteAttributeValue("", 59662, "card-header", 59662, 11, true);
4406 WriteAttributeValue(" ", 59673, cssClass, 59674, 9, false);
4407 WriteAttributeValue(" ", 59683, "dw-mod", 59684, 7, true);
4408 EndWriteAttribute();
4409 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4410 }
4411
4412 if (item.Design.RenderType == RenderType.CardBody)
4413 {
4414 WriteLiteral(" <div");
4415 BeginWriteAttribute("class", " class=\"", 59922, "\"", 59951, 3);
4416 WriteAttributeValue("", 59930, "card", 59930, 4, true);
4417 WriteAttributeValue(" ", 59934, cssClass, 59935, 9, false);
4418 WriteAttributeValue(" ", 59944, "dw-mod", 59945, 7, true);
4419 EndWriteAttribute();
4420 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4421 }
4422
4423 if (item.Design.RenderType == RenderType.CardFooter)
4424 {
4425 WriteLiteral(" <div");
4426 BeginWriteAttribute("class", " class=\"", 60185, "\"", 60221, 3);
4427 WriteAttributeValue("", 60193, "card-footer", 60193, 11, true);
4428 WriteAttributeValue(" ", 60204, cssClass, 60205, 9, false);
4429 WriteAttributeValue(" ", 60214, "dw-mod", 60215, 7, true);
4430 EndWriteAttribute();
4431 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4432 }
4433 }
4434 else
4435 {
4436 RenderBlock(item);
4437 }
4438 }
4439
4440 if (debug) {
4441 WriteLiteral(" <!-- Block END: ");
4442 Write(item.Id);
4443 WriteLiteral(" -->\r\n");
4444 }
4445 }
4446 }
4447
4448 void RenderBlock(Block item)
4449 {
4450 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
4451
4452 if (item.Template != null)
4453 {
4454 Write(BlocksPage.RenderTemplate(item.Template));
4455
4456 }
4457
4458 if (item.Component != null)
4459 {
4460 string customSufix = "Custom";
4461 string methodName = item.Component.HelperName;
4462
4463 ComponentBase[] methodParameters = new ComponentBase[1];
4464 methodParameters[0] = item.Component;
4465 Type methodType = this.GetType();
4466
4467 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix);
4468 MethodInfo generalMethod = methodType.GetMethod(methodName);
4469
4470 try {
4471 if (debug) {
4472 WriteLiteral(" <!-- Component: ");
4473 Write(methodName.Replace("Render", ""));
4474 WriteLiteral(" -->\r\n");
4475 }
4476 Write(customMethod.Invoke(this, methodParameters).ToString());
4477 ;
4478 } catch {
4479 try {
4480 Write(generalMethod.Invoke(this, methodParameters).ToString());
4481
4482 ;
4483 } catch(Exception ex) {
4484 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex);
4485 }
4486 }
4487 }
4488
4489 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList)
4490 {
4491 RenderBlockList(item.BlocksList);
4492 }
4493 }
4494
4495 void Render(ComponentBase component)
4496 {
4497 if (component != null)
4498 {
4499 Write(component.Render(this));
4500
4501 }
4502 }
4503
4504 void RenderIcon(Icon settings)
4505 {
4506 if (settings != null)
4507 {
4508 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
4509
4510 if (settings.Name != null)
4511 {
4512 if (string.IsNullOrEmpty(settings.Label))
4513 {
4514 WriteLiteral(" <i");
4515 BeginWriteAttribute("class", " class=\"", 63117, "\"", 63175, 3);
4516 WriteAttributeValue("", 63125, settings.Prefix, 63125, 16, false);
4517 WriteAttributeValue(" ", 63141, settings.Name, 63142, 14, false);
4518 WriteAttributeValue(" ", 63156, settings.CssClass, 63157, 18, false);
4519 EndWriteAttribute();
4520 WriteLiteral(" ");
4521 Write(color);
4522 WriteLiteral("></i>\r\n");
4523 }
4524 else
4525 {
4526 if (settings.LabelPosition == IconLabelPosition.Before)
4527 {
4528 WriteLiteral(" <div");
4529 BeginWriteAttribute("class", " class=\"", 63378, "\"", 63438, 3);
4530 WriteAttributeValue("", 63386, "u-flex", 63386, 6, true);
4531 WriteAttributeValue(" ", 63392, "u-flex--align-items-center", 63393, 27, true);
4532 WriteAttributeValue(" ", 63419, settings.CssClass, 63420, 18, false);
4533 EndWriteAttribute();
4534 WriteLiteral(">");
4535 Write(settings.Label);
4536 WriteLiteral(" <i");
4537 BeginWriteAttribute("class", " class=\"", 63458, "\"", 63511, 3);
4538 WriteAttributeValue("", 63466, settings.Prefix, 63466, 16, false);
4539 WriteAttributeValue(" ", 63482, settings.Name, 63483, 14, false);
4540 WriteAttributeValue(" ", 63497, "u-margin-left", 63498, 14, true);
4541 EndWriteAttribute();
4542 WriteLiteral(" ");
4543 Write(color);
4544 WriteLiteral("></i></div>\r\n");
4545 }
4546 else
4547 {
4548 WriteLiteral(" <div");
4549 BeginWriteAttribute("class", " class=\"", 63632, "\"", 63692, 3);
4550 WriteAttributeValue("", 63640, "u-flex", 63640, 6, true);
4551 WriteAttributeValue(" ", 63646, "u-flex--align-items-center", 63647, 27, true);
4552 WriteAttributeValue(" ", 63673, settings.CssClass, 63674, 18, false);
4553 EndWriteAttribute();
4554 WriteLiteral("><i");
4555 BeginWriteAttribute("class", " class=\"", 63696, "\"", 63762, 4);
4556 WriteAttributeValue("", 63704, settings.Prefix, 63704, 16, false);
4557 WriteAttributeValue(" ", 63720, settings.Name, 63721, 14, false);
4558 WriteAttributeValue(" ", 63735, "u-margin-right--lg", 63736, 19, true);
4559 WriteAttributeValue(" ", 63754, "u-w20px", 63755, 8, true);
4560 EndWriteAttribute();
4561 WriteLiteral(" ");
4562 Write(color);
4563 WriteLiteral("></i>");
4564 Write(settings.Label);
4565 WriteLiteral("</div>\r\n");
4566 }
4567 }
4568 }
4569 else if (!string.IsNullOrEmpty(settings.Label))
4570 {
4571 Write(settings.Label);
4572
4573 }
4574 }
4575 }
4576
4577 void RenderButton(Button settings)
4578 {
4579 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
4580 {
4581 Dictionary<string, string> attributes = new Dictionary<string, string>();
4582 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
4583 if (settings.Disabled) {
4584 attributes.Add("disabled", "true");
4585 classList.Add("disabled");
4586 }
4587
4588 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle))
4589 {
4590 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
4591 RenderConfirmDialog(settings);
4592 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true";
4593 }
4594
4595 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
4596 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
4597 if (!string.IsNullOrEmpty(settings.AltText))
4598 {
4599 attributes.Add("title", settings.AltText);
4600 }
4601 else if (!string.IsNullOrEmpty(settings.Title))
4602 {
4603 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty);
4604 cleanTitle = cleanTitle.Replace(" ", " ");
4605 attributes.Add("title", cleanTitle);
4606 }
4607
4608 var onClickEvents = new List<string>();
4609 if (!string.IsNullOrEmpty(settings.OnClick))
4610 {
4611 onClickEvents.Add(settings.OnClick);
4612 }
4613 if (!string.IsNullOrEmpty(settings.Href))
4614 {
4615 if (settings.Href.Contains("javascript"))
4616 {
4617 settings.Href = settings.Href.Replace("http://", "");
4618 }
4619 onClickEvents.Add("location.href='" + settings.Href + "'");
4620 }
4621 if (onClickEvents.Count > 0)
4622 {
4623 attributes.Add("onClick", string.Join(";", onClickEvents));
4624 }
4625
4626 if (settings.ButtonLayout != ButtonLayout.None)
4627 {
4628 classList.Add("btn");
4629 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
4630 if (btnLayout == "linkclean")
4631 {
4632 btnLayout = "link-clean"; //fix
4633 }
4634 classList.Add("btn--" + btnLayout);
4635 }
4636
4637 if (settings.Icon == null)
4638 {
4639 settings.Icon = new Icon();
4640 }
4641
4642 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : "";
4643 settings.Icon.Label = settings.Title;
4644
4645 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower());
4646
4647 WriteLiteral(" <button");
4648 BeginWriteAttribute("class", " class=\"", 67355, "\"", 67398, 2);
4649 WriteAttributeValue("", 67363, string.Join(" ", classList), 67363, 28, false);
4650 WriteAttributeValue(" ", 67391, "dw-mod", 67392, 7, true);
4651 EndWriteAttribute();
4652 WriteLiteral(" ");
4653 Write(ComponentMethods.AddAttributes(attributes));
4654 WriteLiteral(" ");
4655 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
4656 WriteLiteral(">");
4657 RenderIcon(settings.Icon);WriteLiteral("</button>\r\n");
4658 }
4659 }
4660
4661 void RenderConfirmDialog(Button settings)
4662 {
4663 Modal confirmDialog = new Modal {
4664 Id = settings.Id,
4665 Width = ModalWidth.Sm,
4666 Heading = new Heading
4667 {
4668 Level = 2,
4669 Title = settings.ConfirmTitle
4670 },
4671 BodyText = settings.ConfirmText
4672 };
4673
4674 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"});
4675 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick });
4676
4677 RenderModal(confirmDialog);
4678 }
4679
4680 void RenderLink(Link settings)
4681 {
4682 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
4683 {
4684 Dictionary<string, string> attributes = new Dictionary<string, string>();
4685 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
4686 if (settings.Disabled)
4687 {
4688 attributes.Add("disabled", "true");
4689 classList.Add("disabled");
4690 }
4691
4692 if (!string.IsNullOrEmpty(settings.AltText))
4693 {
4694 attributes.Add("title", settings.AltText);
4695 }
4696 else if (!string.IsNullOrEmpty(settings.Title))
4697 {
4698 attributes.Add("title", settings.Title);
4699 }
4700
4701 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
4702 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
4703 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); }
4704 attributes.Add("href", settings.Href);
4705
4706 if (settings.ButtonLayout != ButtonLayout.None)
4707 {
4708 classList.Add("btn");
4709 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
4710 if (btnLayout == "linkclean")
4711 {
4712 btnLayout = "link-clean"; //fix
4713 }
4714 classList.Add("btn--" + btnLayout);
4715 }
4716
4717 if (settings.Icon == null)
4718 {
4719 settings.Icon = new Icon();
4720 }
4721 settings.Icon.Label = settings.Title;
4722
4723 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None)
4724 {
4725 settings.Rel = LinkRelType.Noopener;
4726 }
4727 if (settings.Target != LinkTargetType.None)
4728 {
4729 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower());
4730 }
4731 if (settings.Download)
4732 {
4733 attributes.Add("download", "true");
4734 }
4735 if (settings.Rel != LinkRelType.None)
4736 {
4737 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower());
4738 }
4739
4740 WriteLiteral(" <a");
4741 BeginWriteAttribute("class", " class=\"", 71130, "\"", 71173, 2);
4742 WriteAttributeValue("", 71138, string.Join(" ", classList), 71138, 28, false);
4743 WriteAttributeValue(" ", 71166, "dw-mod", 71167, 7, true);
4744 EndWriteAttribute();
4745 WriteLiteral(" ");
4746 Write(ComponentMethods.AddAttributes(attributes));
4747 WriteLiteral(" ");
4748 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
4749 WriteLiteral(">Render(settings.Icon);</a>\r\n");
4750 }
4751 }
4752
4753 void RenderRating(Rating settings)
4754 {
4755 if (settings.Score > 0)
4756 {
4757 int rating = settings.Score;
4758 string iconType = "fa-star";
4759
4760 switch (settings.Type.ToString()) {
4761 case "Stars":
4762 iconType = "fa-star";
4763 break;
4764 case "Hearts":
4765 iconType = "fa-heart";
4766 break;
4767 case "Lemons":
4768 iconType = "fa-lemon";
4769 break;
4770 case "Bombs":
4771 iconType = "fa-bomb";
4772 break;
4773 }
4774
4775 WriteLiteral(" <div class=\"u-ta-right\">\r\n");
4776 for (int i = 0; i < settings.OutOf; i++)
4777 {
4778 WriteLiteral(" <i");
4779 BeginWriteAttribute("class", " class=\"", 72307, "\"", 72354, 2);
4780 WriteAttributeValue("", 72315, rating > i ? "fas" : "far", 72315, 29, false);
4781 WriteAttributeValue(" ", 72344, iconType, 72345, 9, false);
4782 EndWriteAttribute();
4783 WriteLiteral("></i>\r\n");
4784 }
4785 WriteLiteral(" </div>\r\n");
4786 }
4787 }
4788
4789 void RenderNavigation(Navigation settings) {
4790 RenderNavigation(new
4791 {
4792 id = settings.Id,
4793 cssclass = settings.CssClass,
4794 startLevel = settings.StartLevel,
4795 endlevel = settings.EndLevel,
4796 expandmode = settings.Expandmode,
4797 sitemapmode = settings.SitemapMode,
4798 template = settings.Template
4799 });
4800 }
4801
4802 void RenderLeftNavigation(LeftNavigation settings) {
4803 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id;
4804 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template;
4805 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel;
4806 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel;
4807 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode;
4808
4809 WriteLiteral(" <div class=\"grid__cell\">\r\n RenderNavigation(settings);\r\n </div> \r\n");
4810 }
4811
4812 void RenderHeading(Heading settings)
4813 {
4814 if (settings != null && !string.IsNullOrEmpty(settings.Title))
4815 {
4816 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
4817 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div";
4818
4819 Write("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">");
4820
4821 if (!string.IsNullOrEmpty(settings.Link))
4822 {
4823 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None });
4824 }
4825 else
4826 {
4827 if (settings.Icon == null)
4828 {
4829 settings.Icon = new Icon();
4830 }
4831 settings.Icon.Label = settings.Title;
4832 RenderIcon(settings.Icon);
4833 }
4834 Write("</" + tagName + ">");
4835 ;
4836 }
4837 }
4838
4839 void RenderImage(Image settings)
4840 {
4841 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None)
4842 {
4843 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
4844 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); }
4845
4846 if (settings.Caption != null)
4847 {
4848 WriteLiteral(" ");
4849 WriteLiteral("<div>\r\n");
4850 }
4851
4852 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower();
4853 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower();
4854
4855 WriteLiteral(" <div");
4856 BeginWriteAttribute("class", " class=\"", 75835, "\"", 75916, 5);
4857 WriteAttributeValue("", 75843, "image-filter", 75843, 12, true);
4858 WriteAttributeValue(" ", 75855, "image-filter--", 75856, 15, true);
4859 WriteAttributeValue("", 75870, primaryFilterClass, 75870, 19, false);
4860 WriteAttributeValue(" ", 75889, "u-position-relative", 75890, 20, true);
4861 WriteAttributeValue(" ", 75909, "dw-mod", 75910, 7, true);
4862 EndWriteAttribute();
4863 WriteLiteral(" ");
4864 Write(ComponentMethods.AddAttributes(optionalAttributes));
4865 WriteLiteral(">\r\n <div");
4866 BeginWriteAttribute("class", " class=\"", 75996, "\"", 76059, 4);
4867 WriteAttributeValue("", 76004, "image-filter", 76004, 12, true);
4868 WriteAttributeValue(" ", 76016, "image-filter--", 76017, 15, true);
4869 WriteAttributeValue("", 76031, secondaryFilterClass, 76031, 21, false);
4870 WriteAttributeValue(" ", 76052, "dw-mod", 76053, 7, true);
4871 EndWriteAttribute();
4872 WriteLiteral(">\r\n");
4873 if (settings.Link != null)
4874 {
4875 WriteLiteral(" <a");
4876 BeginWriteAttribute("href", " href=\"", 76173, "\"", 76194, 1);
4877 WriteAttributeValue("", 76180, settings.Link, 76180, 14, false);
4878 EndWriteAttribute();
4879 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n");
4880 }
4881 else
4882 {
4883 RenderTheImage(settings);
4884 }
4885 WriteLiteral(" </div>\r\n </div>\r\n");
4886
4887 if (settings.Caption != null)
4888 {
4889 WriteLiteral(" <span class=\"image-caption dw-mod\">");
4890 Write(settings.Caption);
4891 WriteLiteral("</span>\r\n ");
4892 WriteLiteral("</div>\r\n");
4893 }
4894 }
4895 else
4896 {
4897 if (settings.Caption != null)
4898 {
4899 WriteLiteral(" ");
4900 WriteLiteral("<div>\r\n");
4901 }
4902 if (!string.IsNullOrEmpty(settings.Link))
4903 {
4904 WriteLiteral(" <a");
4905 BeginWriteAttribute("href", " href=\"", 76937, "\"", 76958, 1);
4906 WriteAttributeValue("", 76944, settings.Link, 76944, 14, false);
4907 EndWriteAttribute();
4908 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n");
4909 }
4910 else
4911 {
4912 RenderTheImage(settings);
4913 }
4914
4915 if (settings.Caption != null)
4916 {
4917 WriteLiteral(" <span class=\"image-caption dw-mod\">");
4918 Write(settings.Caption);
4919 WriteLiteral("</span>\r\n ");
4920 WriteLiteral("</div>\r\n");
4921 }
4922 }
4923 }
4924
4925 void RenderTheImage(Image settings)
4926 {
4927 if (settings != null)
4928 {
4929 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg";
4930 string placeholderImage = "/Files/Images/placeholder.gif";
4931 string imageEngine = "/Admin/Public/GetImage.ashx?";
4932
4933 string imageStyle = "";
4934
4935 switch (settings.Style)
4936 {
4937 case ImageStyle.Ball:
4938 imageStyle = "grid__cell-img--ball";
4939 break;
4940
4941 case ImageStyle.Triangle:
4942 imageStyle = "grid__cell-img--triangle";
4943 break;
4944 }
4945
4946 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle)
4947 {
4948 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop;
4949
4950 if (settings.ImageDefault != null)
4951 {
4952 settings.ImageDefault.Height = settings.ImageDefault.Width;
4953 }
4954 if (settings.ImageMedium != null)
4955 {
4956 settings.ImageMedium.Height = settings.ImageMedium.Width;
4957 }
4958 if (settings.ImageSmall != null)
4959 {
4960 settings.ImageSmall.Height = settings.ImageSmall.Width;
4961 }
4962 }
4963
4964 string defaultImage = imageEngine;
4965 string imageSmall = "";
4966 string imageMedium = "";
4967
4968 if (settings.DisableImageEngine)
4969 {
4970 defaultImage = settings.Path;
4971 }
4972 else
4973 {
4974 if (settings.ImageDefault != null)
4975 {
4976 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault);
4977
4978 if (settings.Path.GetType() != typeof(string))
4979 {
4980 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
4981 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
4982 }
4983 else
4984 {
4985 defaultImage += settings.Path != null ? "Image=" + settings.Path : "";
4986 }
4987
4988 defaultImage += "&AlternativeImage=" + alternativeImage;
4989 }
4990
4991 if (settings.ImageSmall != null)
4992 {
4993 imageSmall = "data-src-small=\"" + imageEngine;
4994 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall);
4995
4996 if (settings.Path.GetType() != typeof(string))
4997 {
4998 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
4999 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
5000 }
5001 else
5002 {
5003 imageSmall += settings.Path != null ? "Image=" + settings.Path : "";
5004 }
5005
5006 imageSmall += "&alternativeImage=" + alternativeImage;
5007
5008 imageSmall += "\"";
5009 }
5010
5011 if (settings.ImageMedium != null)
5012 {
5013 imageMedium = "data-src-medium=\"" + imageEngine;
5014 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium);
5015
5016 if (settings.Path.GetType() != typeof(string))
5017 {
5018 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
5019 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
5020 }
5021 else
5022 {
5023 imageMedium += settings.Path != null ? "Image=" + settings.Path : "";
5024 }
5025
5026 imageMedium += "&alternativeImage=" + alternativeImage;
5027
5028 imageMedium += "\"";
5029 }
5030 }
5031
5032 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
5033 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); }
5034 if (!string.IsNullOrEmpty(settings.Title))
5035 {
5036 optionalAttributes.Add("alt", settings.Title);
5037 optionalAttributes.Add("title", settings.Title);
5038 }
5039
5040 if (settings.DisableLazyLoad)
5041 {
5042 WriteLiteral(" <img");
5043 BeginWriteAttribute("id", " id=\"", 82437, "\"", 82454, 1);
5044 WriteAttributeValue("", 82442, settings.Id, 82442, 12, false);
5045 EndWriteAttribute();
5046 BeginWriteAttribute("class", " class=\"", 82455, "\"", 82500, 3);
5047 WriteAttributeValue("", 82463, imageStyle, 82463, 11, false);
5048 WriteAttributeValue(" ", 82474, settings.CssClass, 82475, 18, false);
5049 WriteAttributeValue(" ", 82493, "dw-mod", 82494, 7, true);
5050 EndWriteAttribute();
5051 BeginWriteAttribute("src", " src=\"", 82501, "\"", 82520, 1);
5052 WriteAttributeValue("", 82507, defaultImage, 82507, 13, false);
5053 EndWriteAttribute();
5054 WriteLiteral(" ");
5055 Write(ComponentMethods.AddAttributes(optionalAttributes));
5056 WriteLiteral(" ");
5057 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5058 WriteLiteral(" />\r\n");
5059 }
5060 else
5061 {
5062
5063 WriteLiteral(" <img");
5064 BeginWriteAttribute("id", " id=\"", 82718, "\"", 82735, 1);
5065 WriteAttributeValue("", 82723, settings.Id, 82723, 12, false);
5066 EndWriteAttribute();
5067 BeginWriteAttribute("class", " class=\"", 82736, "\"", 82781, 3);
5068 WriteAttributeValue("", 82744, imageStyle, 82744, 11, false);
5069 WriteAttributeValue(" ", 82755, settings.CssClass, 82756, 18, false);
5070 WriteAttributeValue(" ", 82774, "dw-mod", 82775, 7, true);
5071 EndWriteAttribute();
5072 WriteLiteral(" loading=\"lazy\"");
5073 BeginWriteAttribute("src", " src=\"", 82797, "\"", 82816, 1);
5074 WriteAttributeValue("", 82803, defaultImage, 82803, 13, false);
5075 EndWriteAttribute();
5076 WriteLiteral(" ");
5077 Write(ComponentMethods.AddAttributes(optionalAttributes));
5078 WriteLiteral(" ");
5079 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5080 WriteLiteral(" />\r\n");
5081 }
5082 }
5083 }
5084
5085 void RenderHiddenField(HiddenField settings) {
5086 var attributes = new Dictionary<string, string>();
5087 attributes.Add("type", "hidden");
5088 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5089 if (settings.Value != null) { attributes.Add("value", settings.Value); }
5090 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
5091
5092 WriteLiteral(" <input ");
5093 Write(ComponentMethods.AddAttributes(attributes));
5094 WriteLiteral(" ");
5095 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5096 WriteLiteral("/>\r\n");
5097 }
5098
5099 void RenderRadioButtonField(RadioButtonField settings)
5100 {
5101 var attributes = new Dictionary<string, string>();
5102 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id))
5103 {
5104 settings.Id = Guid.NewGuid().ToString("N");
5105 }
5106
5107 /*base settings*/
5108 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5109 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); }
5110 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); }
5111 if (settings.Disabled) { attributes.Add("disabled", "true"); }
5112 if (settings.Required) { attributes.Add("required", "true"); }
5113 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
5114 /*end*/
5115
5116 attributes.Add("type", "radio");
5117 if (settings.Checked) { attributes.Add("checked", "true"); }
5118 settings.CssClass = "form__control " + settings.CssClass;
5119 if (settings.Value != null) { attributes.Add("value", settings.Value); }
5120
5121 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value);
5122
5123 WriteLiteral(" <div");
5124 BeginWriteAttribute("class", " class=\"", 85136, "\"", 85194, 3);
5125 WriteAttributeValue("", 85144, "form__field-group", 85144, 17, true);
5126 WriteAttributeValue(" ", 85161, settings.WrapperCssClass, 85162, 25, false);
5127 WriteAttributeValue(" ", 85187, "dw-mod", 85188, 7, true);
5128 EndWriteAttribute();
5129 WriteLiteral(">\r\n <input ");
5130 Write(ComponentMethods.AddAttributes(resultAttributes));
5131 WriteLiteral(" class=\"");
5132 Write(settings.CssClass);
5133 WriteLiteral(" dw-mod\" />\r\n");
5134 if (!string.IsNullOrEmpty(settings.Label))
5135 {
5136 WriteLiteral(" <label");
5137 BeginWriteAttribute("for", " for=\"", 85399, "\"", 85417, 1);
5138 WriteAttributeValue("", 85405, settings.Id, 85405, 12, false);
5139 EndWriteAttribute();
5140 WriteLiteral(" class=\"dw-mod\">");
5141 Write(settings.Label);
5142 WriteLiteral("</label>\r\n");
5143 }
5144 if (!string.IsNullOrEmpty(settings.HelpText))
5145 {
5146 WriteLiteral(" <small class=\"form__help-text\">");
5147 Write(settings.HelpText);
5148 WriteLiteral("</small>\r\n");
5149 }
5150 WriteLiteral(" Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n");
5151 }
5152
5153 void RenderRadioButtonListField(RadioButtonListField settings)
5154 {
5155 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; }
5156
5157 WriteLiteral(" <div");
5158 BeginWriteAttribute("class", " class=\"", 86132, "\"", 86206, 4);
5159 WriteAttributeValue("", 86140, "form__field-group", 86140, 17, true);
5160 WriteAttributeValue(" ", 86157, settings.WrapperCssClass, 86158, 25, false);
5161 WriteAttributeValue(" ", 86183, "u-margin-bottom", 86184, 16, true);
5162 WriteAttributeValue(" ", 86199, "dw-mod", 86200, 7, true);
5163 EndWriteAttribute();
5164 WriteLiteral(" ");
5165 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5166 WriteLiteral(">\r\n");
5167 if (!string.IsNullOrEmpty(settings.Label))
5168 {
5169 WriteLiteral(" <label>");
5170 Write(settings.Label);
5171 WriteLiteral("</label>\r\n");
5172 }
5173 if (!string.IsNullOrEmpty(settings.HelpText))
5174 {
5175 WriteLiteral(" <small class=\"form__help-text\">");
5176 Write(settings.HelpText);
5177 WriteLiteral("</small>\r\n");
5178 }
5179 WriteLiteral("\r\n");
5180 foreach (var item in settings.Options)
5181 {
5182 if (settings.Required)
5183 {
5184 item.Required = true;
5185 }
5186 if (settings.Disabled)
5187 {
5188 item.Disabled = true;
5189 }
5190 if (!string.IsNullOrEmpty(settings.Name))
5191 {
5192 item.Name = settings.Name;
5193 }
5194 if (settings.Value != null && settings.Value == item.Value)
5195 {
5196 item.Checked = true;
5197 }
5198 if (!string.IsNullOrEmpty(settings.OnClick))
5199 {
5200 item.OnClick += settings.OnClick;
5201 }
5202 if (!string.IsNullOrEmpty(settings.OnChange))
5203 {
5204 item.OnChange += settings.OnChange;
5205 }
5206 if (!string.IsNullOrEmpty(settings.CssClass))
5207 {
5208 item.CssClass += settings.CssClass;
5209 }
5210 Render(item);
5211 }
5212 WriteLiteral("\r\n Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n");
5213 }
5214
5215 void RenderForm(Form settings) {
5216 if (settings != null)
5217 {
5218 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
5219 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); };
5220 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); };
5221 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); };
5222 var enctypes = new Dictionary<string, string>
5223 {
5224 { "multipart", "multipart/form-data" },
5225 { "text", "text/plain" },
5226 { "application", "application/x-www-form-urlencoded" }
5227 };
5228 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); };
5229 optionalAttributes.Add("method", settings.Method.ToString());
5230
5231 if (!string.IsNullOrEmpty(settings.FormStartMarkup))
5232 {
5233 Write(settings.FormStartMarkup);
5234
5235 }
5236 else
5237 {
5238 WriteLiteral(" ");
5239 WriteLiteral("<form class=\"");
5240 Write(settings.CssClass);
5241 WriteLiteral(" u-no-margin dw-mod\" ");
5242 Write(ComponentMethods.AddAttributes(optionalAttributes));
5243 WriteLiteral(" ");
5244 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5245 WriteLiteral(">\r\n");
5246 }
5247
5248 foreach (var field in settings.GetFields())
5249 {
5250 Render(field);
5251 }
5252
5253 WriteLiteral(" ");
5254 WriteLiteral("</form>\r\n");
5255 }
5256 }
5257
5258 void RenderText(Text settings)
5259 {
5260 Write(settings.Content);
5261
5262 }
5263
5264 void RenderContentModule(ContentModule settings) {
5265 if (!string.IsNullOrEmpty(settings.Content))
5266 {
5267 Write(settings.Content);
5268
5269 }
5270 }
5271
5272 void RenderModal(Modal settings) {
5273 if (settings != null)
5274 {
5275 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
5276
5277 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : "";
5278
5279 WriteLiteral(" <input type=\"checkbox\"");
5280 BeginWriteAttribute("id", " id=\"", 90602, "\"", 90629, 2);
5281 WriteAttributeValue("", 90607, modalId, 90607, 10, false);
5282 WriteAttributeValue("", 90617, "ModalTrigger", 90617, 12, true);
5283 EndWriteAttribute();
5284 WriteLiteral(" class=\"modal-trigger\" ");
5285 Write(onchange);
5286 WriteLiteral(" />\r\n");
5287 WriteLiteral(" <div class=\"modal-container\">\r\n");
5288 if (!settings.DisableDarkOverlay)
5289 {
5290 WriteLiteral(" <label");
5291 BeginWriteAttribute("for", " for=\"", 90809, "\"", 90837, 2);
5292 WriteAttributeValue("", 90815, modalId, 90815, 10, false);
5293 WriteAttributeValue("", 90825, "ModalTrigger", 90825, 12, true);
5294 EndWriteAttribute();
5295 BeginWriteAttribute("id", " id=\"", 90838, "\"", 90865, 2);
5296 WriteAttributeValue("", 90843, modalId, 90843, 10, false);
5297 WriteAttributeValue("", 90853, "ModalOverlay", 90853, 12, true);
5298 EndWriteAttribute();
5299 WriteLiteral(" class=\"modal-overlay\"></label>\r\n");
5300 }
5301 WriteLiteral(" <div");
5302 BeginWriteAttribute("class", " class=\"", 90938, "\"", 91047, 5);
5303 WriteAttributeValue("", 90946, "modal", 90946, 5, true);
5304 WriteAttributeValue(" ", 90951, "modal--", 90952, 8, true);
5305 WriteAttributeValue("", 90959, settings.Width.ToString().ToLower(), 90959, 36, false);
5306 WriteAttributeValue(" ", 90995, "modal-height--", 90996, 15, true);
5307 WriteAttributeValue("", 91010, settings.Height.ToString().ToLower(), 91010, 37, false);
5308 EndWriteAttribute();
5309 BeginWriteAttribute("id", " id=\"", 91048, "\"", 91068, 2);
5310 WriteAttributeValue("", 91053, modalId, 91053, 10, false);
5311 WriteAttributeValue("", 91063, "Modal", 91063, 5, true);
5312 EndWriteAttribute();
5313 WriteLiteral(">\r\n");
5314 if (settings.Heading != null)
5315 {
5316 if (!string.IsNullOrEmpty(settings.Heading.Title))
5317 {
5318 WriteLiteral(" <div class=\"modal__header\">\r\n RenderHeading(settings.Heading);\r\n </div>\r\n");
5319 }
5320 }
5321 WriteLiteral(" <div");
5322 BeginWriteAttribute("class", " class=\"", 91483, "\"", 91578, 2);
5323 WriteAttributeValue("", 91491, "modal__body", 91491, 11, true);
5324 WriteAttributeValue(" ", 91502, settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "", 91503, 75, false);
5325 EndWriteAttribute();
5326 WriteLiteral(">\r\n");
5327 if (!string.IsNullOrEmpty(settings.BodyText))
5328 {
5329 Write(settings.BodyText);
5330
5331 }
5332 if (settings.BodyTemplate != null)
5333 {
5334 Write(settings.BodyTemplate);
5335
5336 }
5337
5338 var actions = settings.GetActions();
5339 WriteLiteral(" </div>\r\n");
5340 if (actions.Length > 0)
5341 {
5342 WriteLiteral(" <div class=\"modal__footer\">\r\n");
5343 foreach (var action in actions)
5344 {
5345 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") {
5346 action.CssClass += " u-no-margin";
5347 } else {
5348 action.CssClass += " u-full-width u-margin-bottom";
5349 }
5350
5351 Render(action);
5352 }
5353 WriteLiteral(" </div>\r\n");
5354 }
5355 WriteLiteral(" <label class=\"modal__close-btn\"");
5356 BeginWriteAttribute("for", " for=\"", 92822, "\"", 92850, 2);
5357 WriteAttributeValue("", 92828, modalId, 92828, 10, false);
5358 WriteAttributeValue("", 92838, "ModalTrigger", 92838, 12, true);
5359 EndWriteAttribute();
5360 WriteLiteral("></label>\r\n </div>\r\n </div>\r\n");
5361 }
5362 }
5363
5364 void RenderMediaListItem(MediaListItem settings)
5365 {
5366 WriteLiteral(" <div");
5367 BeginWriteAttribute("class", " class=\"", 93088, "\"", 93137, 3);
5368 WriteAttributeValue("", 93096, "media-list-item", 93096, 15, true);
5369 WriteAttributeValue(" ", 93111, settings.CssClass, 93112, 18, false);
5370 WriteAttributeValue(" ", 93130, "dw-mod", 93131, 7, true);
5371 EndWriteAttribute();
5372 WriteLiteral(" ");
5373 Write(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : "");
5374 WriteLiteral(">\r\n");
5375 if (!string.IsNullOrEmpty(settings.Label))
5376 {
5377 if (!string.IsNullOrEmpty(settings.Link))
5378 {
5379 Render(new Link
5380 {
5381 Href = settings.Link,
5382 CssClass = "media-list-item__sticker dw-mod",
5383 ButtonLayout = ButtonLayout.None,
5384 Title = settings.Label,
5385 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
5386 });
5387 }
5388 else if (!string.IsNullOrEmpty(settings.OnClick))
5389 {
5390 WriteLiteral(" <span class=\"media-list-item__sticker dw-mod\"");
5391 BeginWriteAttribute("onclick", " onclick=\"", 93945, "\"", 93974, 1);
5392 WriteAttributeValue("", 93955, settings.OnClick, 93955, 19, false);
5393 EndWriteAttribute();
5394 WriteLiteral(">\r\n <span class=\"u-uppercase\">");
5395 Write(settings.Label);
5396 WriteLiteral("</span>\r\n </span>\r\n");
5397 }
5398 else
5399 {
5400 WriteLiteral(" <span class=\"media-list-item__sticker media-list-item__sticker--no-link dw-mod\">\r\n <span class=\"u-uppercase\">");
5401 Write(settings.Label);
5402 WriteLiteral("</span>\r\n </span>\r\n");
5403 }
5404 }
5405 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");
5406 if (!string.IsNullOrEmpty(settings.Title))
5407 {
5408 if (!string.IsNullOrEmpty(settings.Link))
5409 {
5410 Render(new Link
5411 {
5412 Href = settings.Link,
5413 CssClass = "media-list-item__name dw-mod",
5414 ButtonLayout = ButtonLayout.None,
5415 Title = settings.Title,
5416 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
5417 });
5418 }
5419 else if (!string.IsNullOrEmpty(settings.OnClick))
5420 {
5421 WriteLiteral(" <span class=\"media-list-item__name dw-mod\"");
5422 BeginWriteAttribute("onclick", " onclick=\"", 95471, "\"", 95500, 1);
5423 WriteAttributeValue("", 95481, settings.OnClick, 95481, 19, false);
5424 EndWriteAttribute();
5425 WriteLiteral(">");
5426 Write(settings.Title);
5427 WriteLiteral("</span>\r\n");
5428 }
5429 else
5430 {
5431 WriteLiteral(" <span class=\"media-list-item__name media-list-item__name--no-link dw-mod\">");
5432 Write(settings.Title);
5433 WriteLiteral("</span>\r\n");
5434 }
5435 }
5436 WriteLiteral("\r\n");
5437 if (!string.IsNullOrEmpty(settings.Status))
5438 {
5439 WriteLiteral(" <div class=\"media-list-item__state dw-mod\">");
5440 Write(settings.Status);
5441 WriteLiteral("</div>\r\n");
5442 }
5443 WriteLiteral(" </div>\r\n");
5444
5445 settings.InfoTable.CssClass += " media-list-item__parameters-table";
5446 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");
5447
5448 var actions = settings.GetActions();
5449
5450 foreach (ButtonBase action in actions)
5451 {
5452 action.ButtonLayout = ButtonLayout.None;
5453 action.CssClass += " media-list-item__action link";
5454
5455 Render(action);
5456 }
5457 WriteLiteral(" </div>\r\n\r\n");
5458 if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title))
5459 {
5460 settings.SelectButton.CssClass += " u-no-margin";
5461
5462 WriteLiteral(" <div class=\"media-list-item__action-button\">\r\n Render(settings.SelectButton);\r\n </div>\r\n");
5463 }
5464 WriteLiteral(" </div>\r\n </div>\r\n </div>\r\n");
5465 }
5466
5467 void RenderTable(Table settings)
5468 {
5469 Dictionary<string, string> attributes = new Dictionary<string, string>();
5470 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5471
5472 var enumToClasses = new Dictionary<TableDesign, string>
5473 {
5474 { TableDesign.Clean, "table--clean" },
5475 { TableDesign.Bordered, "table--bordered" },
5476 { TableDesign.Striped, "table--striped" },
5477 { TableDesign.Hover, "table--hover" },
5478 { TableDesign.Compact, "table--compact" },
5479 { TableDesign.Condensed, "table--condensed" },
5480 { TableDesign.NoTopBorder, "table--no-top-border" }
5481 };
5482 string tableDesignClass = "";
5483 if (settings.Design != TableDesign.None)
5484 {
5485 tableDesignClass = enumToClasses[settings.Design];
5486 }
5487
5488 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); }
5489
5490 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
5491
5492 WriteLiteral(" <table ");
5493 Write(ComponentMethods.AddAttributes(resultAttributes));
5494 WriteLiteral(">\r\n");
5495 if (settings.Header != null)
5496 {
5497 WriteLiteral(" <thead>\r\n Render(settings.Header);\r\n </thead>\r\n");
5498 }
5499 WriteLiteral(" <tbody>\r\n");
5500 foreach (var row in settings.Rows)
5501 {
5502 Render(row);
5503 }
5504 WriteLiteral(" </tbody>\r\n");
5505 if (settings.Footer != null)
5506 {
5507 WriteLiteral(" <tfoot>\r\n Render(settings.Footer);\r\n </tfoot>\r\n");
5508 }
5509 WriteLiteral(" </table>\r\n");
5510 }
5511
5512 void RenderTableRow(TableRow settings)
5513 {
5514 Dictionary<string, string> attributes = new Dictionary<string, string>();
5515 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5516
5517 var enumToClasses = new Dictionary<TableRowDesign, string>
5518 {
5519 { TableRowDesign.NoBorder, "table__row--no-border" },
5520 { TableRowDesign.Border, "table__row--border" },
5521 { TableRowDesign.TopBorder, "table__row--top-line" },
5522 { TableRowDesign.BottomBorder, "table__row--bottom-line" },
5523 { TableRowDesign.Solid, "table__row--solid" }
5524 };
5525
5526 string tableRowDesignClass = "";
5527 if (settings.Design != TableRowDesign.None)
5528 {
5529 tableRowDesignClass = enumToClasses[settings.Design];
5530 }
5531
5532 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); }
5533
5534 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
5535
5536 WriteLiteral(" <tr ");
5537 Write(ComponentMethods.AddAttributes(resultAttributes));
5538 WriteLiteral(">\r\n");
5539 foreach (var cell in settings.Cells)
5540 {
5541 if (settings.IsHeaderRow)
5542 {
5543 cell.IsHeader = true;
5544 }
5545 Render(cell);
5546 }
5547 WriteLiteral(" </tr>\r\n");
5548 }
5549
5550 void RenderTableCell(TableCell settings)
5551 {
5552 Dictionary<string, string> attributes = new Dictionary<string, string>();
5553 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5554 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); }
5555 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); }
5556 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); }
5557
5558 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
5559
5560 string tagName = settings.IsHeader ? "th" : "td";
5561
5562 Write("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">");
5563 Write(settings.Content);
5564 Write("</" + tagName + ">");
5565 ;
5566 }
5567
5568 BlocksPage articleListPage = BlocksPage.GetBlockPage("ArticleListPage");
5569 }
5570 }
5571 #pragma warning restore 1591
5572
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" />
118 <span>Fritidsbolig</span>
119 </label>
120 </div>
121 <div class="checkbox">
122 <label>
123 <input type="checkbox" name="propertytype" value="ejerlejlighed" class="specialOption" data-disable-slider="#grundareal" data-disable-slider-ranges="#grundarealmin,#grundarealmax" />
124 <span>Ejerlejlighed</span>
125 </label>
126 </div>
127 <div class="checkbox">
128 <label>
129 <input type="checkbox" name="propertytype" value="helårsgrund" class="specialOption" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" />
130 <span>Helårsgrund</span>
131 </label>
132 </div>
133 <div class="checkbox">
134 <label>
135 <input type="checkbox" name="propertytype" value="fritidsgrund" class="specialOption" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" />
136 <span>Fritidsgrund</span>
137 </label>
138 </div>
139 </div>
140 <div class="col-6 col-md-4">
141 <div class="checkbox">
142 <label>
143 <input type="checkbox" name="propertytype" value="landejendom, lystejendom" class="specialOption" data-disable-checkbox="true" />
144 <span>Landejendom</span>
145 </label>
146 </div>
147 <div class="checkbox">
148 <label>
149 <input type="checkbox" name="propertytype" value="erhverv" class="specialOption" data-disable-checkbox="true" data-disable-slider="#roomsslider" data-disable-slider-ranges="#roomsmin" />
150 <span>Erhverv</span>
151 </label>
152 </div>
153 </div>
154 }
155
156 void RenderChecked(string queryString)
157 {
158 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString)
159 {
160 @("checked")
161 }
162 }
163
164 void RenderBoligtypeCheckboxesDropdown()
165 {
166 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){
167 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" },
168 { "Andelsbolig", "andelsbolig" }
169 };
170 foreach (KeyValuePair<string, string> type in propertyTypes)
171 {
172 bool ischecked = false;
173 string[] propertytypeSplit = new string[0];
174 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
175 {
176 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
177 }
178 foreach (var propertytypeParams in propertytypeSplit)
179 {
180 if (propertytypeParams == type.Value)
181 {
182 ischecked = true;
183 }
184 }
185 <li>
186 <label class="checkbox-container d-flex">
187 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
188 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue js-datavalue js-count" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
189 <span class="checkmark grey"></span>
190 </label>
191 </li>
192 }
193
194 <li>
195 <label class="checkbox-container d-flex">
196 @Translate("Smartpage:Search.DropDown.Blandet Bolig/Erhverv", "Blandet Bolig/Erhverv")
197 @{
198 bool blboligcheck = false;
199 }
200 @if (Dynamicweb.Context.Current.Request.QueryString["propertycategory"] == "Blandet Bolig/Erhverv")
201 {
202 blboligcheck = true;
203 }
204 <input type="checkbox" name="propertycategory" value="Blandet Bolig/Erhverv" class="specialOption js-input-check js-datavalue js-count" data-disable-checkbox="true" data-disable-slider="#roomsslider" data-disable-slider-ranges="#roomsmin" checked="@blboligcheck" />
205 <span class="checkmark grey"></span>
206 </label>
207 </li>
208
209 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){
210 { "Fritidsbolig", "fritidshus" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" },
211 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" }
212 };
213 foreach (KeyValuePair<string, string> type in propertyTypes2)
214 {
215 bool ischecked = false;
216 string[] propertytypeSplit2 = new string[0];
217 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
218 {
219 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
220 }
221 foreach (var propertytypeParams in propertytypeSplit2)
222 {
223 if (propertytypeParams == type.Value)
224 {
225 ischecked = true;
226 }
227 }
228 <li>
229 <label class="checkbox-container d-flex">
230 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
231 @if (type.Value == "ejerlejlighed")
232 {
233 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-disable-slider="#grundareal" data-disable-slider-ranges="#grundarealmin,#grundarealmax" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
234 }
235 else if (type.Value == "helårsgrund")
236 {
237 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
238 }
239 else if (type.Value == "fritidsgrund")
240 {
241 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
242 }
243 else
244 {
245 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
246 }
247 <span class="checkmark grey"></span>
248 </label>
249 </li>
250 }
251 }
252
253 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false)
254 {
255 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
256 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" },
257 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" }
258 };
259 var submitonchange = "";
260 if (submitOnChange)
261 {
262 submitonchange = "onchange='submitFilter()'";
263 }
264
265 foreach (KeyValuePair<string, string> type in erhverType)
266 {
267 string ischecked = "";
268 string[] olineParamsSplit = new string[0];
269 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
270 {
271 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
272 }
273 foreach (var olineParams in olineParamsSplit)
274 {
275 if (olineParams == type.Value)
276 {
277 ischecked = "checked";
278 }
279 }
280
281 <li>
282 <label class="checkbox-container d-flex">
283 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
284 <input type="checkbox" name="olinecategory" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" @submitonchange @ischecked />
285 <span class="checkmark grey"></span>
286 </label>
287 </li>
288 }
289
290
291 bool ischeckedpropertycat = false;
292 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertycategory"]))
293 {
294 if (Dynamicweb.Context.Current.Request.QueryString["propertycategory"] == "Blandet Bolig/Erhverv")
295 {
296 ischeckedpropertycat = true;
297 }
298 }
299 <li>
300 <label class="checkbox-container">
301 @Translate("Smartpage:Search.DropDown.Blandet Bolig/Erhverv", "Blandet Bolig/Erhverv")
302 <input type="checkbox" name="propertycategory" value="Blandet Bolig/Erhverv" class="js-input-check datavalue" data-val="Blandet Bolig/Erhverv" onchange="submitFilter()" checked="@ischeckedpropertycat" />
303 <span class="checkmark grey"></span>
304 </label>
305 </li>
306 }
307
308 void RenderBoligTypeErhvervInvest(bool submitOnChange = false)
309 {
310 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
311 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" },
312 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" }
313 };
314
315 foreach (KeyValuePair<string, string> type in erhverType)
316 {
317 bool ischecked = false;
318 string[] olineParamsSplit = new string[0];
319 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
320 {
321 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
322 }
323 foreach (var olineParams in olineParamsSplit)
324 {
325 if (olineParams == type.Value)
326 {
327 ischecked = true;
328 }
329 }
330
331 <li>
332 <label class="checkbox-container">
333 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
334 <input type="checkbox" name="olinecategory" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
335 <span class="checkmark grey"></span>
336 </label>
337 </li>
338 }
339 }
340 int GetWebsiteSettingsPageId(string pageSysName)
341 {
342 int sideId = 0;
343
344 var pw = Dynamicweb.Frontend.PageView.Current();
345
346 string settingsItemId = "1";
347
348 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true")
349 {
350 settingsItemId = "2";
351 }
352
353 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId);
354
355 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName))
356 {
357 return sideId;
358 }
359
360 string boligsideLink = settingsItem[pageSysName] as String;
361 string linkPrefix = "Default.aspx?ID=";
362
363 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
364 {
365 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
366 }
367
368 return sideId;
369 }
370
371 int GetPageSettingsPageId(string pageSysName)
372 {
373 int sideId = 0;
374
375 var pw = Dynamicweb.Frontend.PageView.Current();
376
377 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName))
378 {
379 return sideId;
380 }
381
382 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String;
383 string linkPrefix = "Default.aspx?ID=";
384
385 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
386 {
387 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
388 }
389
390 return sideId;
391 }
392 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname)
393 {
394 <select class="form-control d-block d-lg-none mb-10 @className" onchange="submitFilter()" name="@inputname">
395 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder." + name + "", "" + name + "")</option>
396
397 @for (var i = 0; i <= max; i += step)
398 {
399 var selected = string.Empty;
400 var current = string.Empty;
401 if (i == max)
402 {
403 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
404 {
405 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")' selected="selected">@Convert.ToInt32(i).ToString("N0")+</option>
406 }
407 else
408 {
409 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")+</option>
410 }
411 }
412 else
413 {
414 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
415 {
416 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")' selected="selected">@Convert.ToInt32(i).ToString("N0")</option>
417 }
418 else
419 {
420 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
421 }
422 }
423 }
424 </select>
425 }
426
427 void RenderTopFilter(string parameter)
428 {
429 if (parameter == "pricemin" || parameter == "pricemax")
430 {
431 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"]))
432 {
433 if (parameter == "pricemin")
434 {
435 @("<div class='search-terms' id='priceFilter'>")
436 @("Pris ") @Dynamicweb.Context.Current.Request[parameter]
437 }
438
439 else
440 {
441 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="pricemin,pricemax"></i>
442 @("</div>")
443 }
444 }
445 }
446
447 else if (parameter == "subsidymin" || parameter == "subsidymax")
448 {
449 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"]))
450 {
451 if (parameter == "subsidymin")
452 {
453 @("<div class='search-terms' id='subsidyFilter'>")
454 @("Årlig leje ") @Dynamicweb.Context.Current.Request[parameter]
455 }
456
457 else
458 {
459 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="subsidymin,subsidymax"></i>
460 @("</div>")
461 }
462 }
463 }
464 else if (parameter == "etagearealmin" || parameter == "etagearealmax")
465 {
466 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"]))
467 {
468 if (parameter == "etagearealmin")
469 {
470 @("<div class='search-terms' id='etagearealFilter'>")
471 @("Etageareal ") @Dynamicweb.Context.Current.Request[parameter]
472 }
473
474 else
475 {
476 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kvm.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="etagearealmin,etagearealmax"></i>
477 @("</div>")
478 }
479 }
480 }
481
482 else if (parameter == "grundarealmin" || parameter == "grundarealmax")
483 {
484 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"]))
485 {
486 if (parameter == "grundarealmin")
487 {
488 @("<div class='search-terms' id='grundarealFilter'>")
489 @("Grundareal ") @Dynamicweb.Context.Current.Request[parameter]
490 }
491
492 else
493 {
494 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kvm.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="grundarealmin,grundarealmax"></i>
495 @("</div>")
496 }
497 }
498 }
499
500 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax")
501 {
502 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"]))
503 {
504 if (parameter == "subsidykvmmin")
505 {
506 @("<div class='search-terms' id='subsidykvmFilter'>")
507 @("Årlig leje kvm ") @Dynamicweb.Context.Current.Request[parameter]
508 }
509
510 else
511 {
512 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="subsidykvmmin,subsidykvmmax"></i>
513 @("</div>")
514 }
515 }
516 }
517
518 else if (parameter == "olinecategory")
519 {
520
521 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"]))
522 {
523 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
524 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" },
525 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"},
526 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" },
527 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" }
528 };
529
530
531 foreach (var er in erhverType)
532 {
533 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
534 {
535 <div class="search-terms" id="@parameter">
536 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i>
537 </div>
538 }
539 }
540 }
541 }
542 else if (parameter == "propertycategory")
543 {
544
545 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["propertycategory"]))
546 {
547 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
548 { "propertycategory", "Blandet Bolig/Erhverv" }
549 };
550
551 foreach (var er in erhverType)
552 {
553 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]) && Dynamicweb.Context.Current.Request[parameter] == er.Value)
554 {
555 <div class="search-terms" id="@parameter">
556 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i>
557 </div>
558 }
559 }
560 }
561 }
562 else if (parameter == "search")
563 {
564 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"]))
565 {
566 <div class="search-terms" id="@parameter">
567 @Dynamicweb.Context.Current.Request[parameter] <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter"></i>
568 </div>
569 }
570 }
571 else
572 {
573 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]))
574 {
575 Dictionary<string, string>
576 ubudsform = new Dictionary<string, string>
577 (){
578 {"salg", "Salg" }, { "leje","Leje" }
579 };
580
581 foreach (var er in ubudsform)
582 {
583 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
584 {
585 <div class="search-terms" id="@parameter">
586 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i>
587 </div>
588 }
589 }
590
591
592 }
593 }
594 }
595
596 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString)
597 {
598 var selected = "";
599 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue)
600 {
601 selected = "selected";
602 }
603
604 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected);
605
606 @current
607 }
608
609 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "")
610 {
611 <div class="main-search-form frontpage @cssClasses">
612 <div class="dropdown-overlay"></div>
613 <div class="row mb-3 align-items-center">
614 <div class="col-xs-12 col-md-3 border-right">
615 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
616 </div>
617 <div class="col-xs-12 col-md-9 home-count d-none d-md-block">
618 <span class="search-count" id="searchCounter">0</span> <span>@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")</span>
619 </div>
620 </div>
621
622 <form id="main-search-frontpage" class="searchbar-wrapper" action="/Default.aspx" method="GET">
623 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId-frontpage" disabled="disabled" />
624 <div class="row form-wrapper no-gutters">
625
626 <div class="col-xs-12 col-md-5 col-searchbar">
627 <div class="searchbar">
628 <input type="text" name="@querySearchNameAttr" id="searchfield-frontpage" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch)" />
629 <input type="hidden" id="zipcodefrom-frontpage" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" />
630 <input type="hidden" id="zipcodeto-frontpage" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" />
631 </div>
632 </div>
633 <div class="col-xs-12 col-md-5">
634 <div class="row no-gutters">
635 <div class="col-xs-12 col-md-6 input-col">
636 <div class="dropdown w-overlay">
637 <button class="btn btn-dropdown dropdown-toggle reverse position-absolute-md" type="button" id="Boligtype-frontpage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
638 @Translate("Smartpage:Search.Boligtype", "Boligtype")
639 </button>
640 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
641 <ul class="bolig-dropdown list-unstyled">
642 @{
643 RenderBoligtypeCheckboxesDropdown();
644 }
645 </ul>
646 <span class="border-fat"></span>
647 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
648 </div>
649
650 </div>
651
652 </div>
653 <div class="col-xs-12 col-md-6 input-col">
654 <div class="dropdown w-overlay">
655 <button class="btn btn-dropdown dropdown-toggle reverse position-absolute-md" type="button" id="Pris-frontpage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
656 @Translate("Smartpage:Search.Pris", "Pris")
657 </button>
658 <div class="dropdown-menu box-shadow dropdown-price" aria-labelledby="Pris">
659 <input type="text" class="form-control mb-10 js-auto-thousand js-pricemin-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MinPris","Min. pris")' />
660 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
661 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
662 @for (var i = 0; i <= 10000000; i += 100000)
663 {
664 if (i == 10000000)
665 {
666 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
667 }
668 else
669 {
670 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
671 }
672 }
673 </select>
674 <input type="hidden" id="pricemin-frontpage" name="pricemin" />
675
676 <input type="text" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris")' />
677 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
678 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
679 @for (var i = 0; i <= 10000000; i += 100000)
680 {
681 if (i == 10000000)
682 {
683 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
684 }
685 else
686 {
687 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
688 }
689 }
690 </select>
691 <input type="hidden" id="pricemax-frontpage" name="pricemax" />
692 <button class="btn btn-primary js-close-dropdown mt-3">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
693 </div>
694 </div>
695 </div>
696 </div>
697 </div>
698 <div class="col-xs-12 col-md-2 d-none d-md-block">
699 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
700 </div>
701 </div>
702
703 <div class="row moresearch-btn no-gutters">
704 <div class="col-sm-12">
705 <div class="row align-items-center no-gutters">
706 <div class="col-12 col-md-4">
707 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch" aria-expanded="false" aria-controls="moreSearch">
708 <span class="moreSearch-text"><i class="fas fa-plus open-close"></i> <span class="not-open">@Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")</span> <span class="open"><span class="js-filter-count">0</span> @Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt") </span></span>
709 </button>
710 </div>
711 <div class="col-6 col-md-2 mb-xs-4">
712 <a class="js-reset reset-btn">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
713 </div>
714 </div>
715
716 <div class="collapse" id="moreSearch">
717 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
718 <div class="row align-items-end mb-30">
719 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
720 <div class="filter-container row">
721 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
722 <div class="col-6 pr-sm-0 pr-2">
723 <input type="text" name="boligarealmin" id="boligarealmin-frontpage" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2","Min. m2")' />
724 <select class="form-control js-boligarealmin-frontpage-select js-count">
725 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
726 @for (var i = 0; i <= 300; i += 10)
727 {
728 if (i == 300)
729 {
730 <option value="@i">@i+</option>
731 }
732 else
733 {
734 <option value="@i">@i</option>
735 }
736 }
737 </select>
738 </div>
739 <div class="col-6 pl-sm-0 pl-2">
740 <input type="text" name="boligarealmax" id="boligarealmax-frontpage" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2")' />
741 <select class="form-control js-boligarealmax-frontpage-select js-count">
742 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
743 @for (var i = 0; i <= 300; i += 10)
744 {
745 if (i == 300)
746 {
747 <option value="@i">@i+</option>
748 }
749 else
750 {
751 <option value="@i">@i</option>
752 }
753 }
754 </select>
755 </div>
756 </div>
757 </div>
758 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
759 <div class="filter-container row">
760 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
761 <div class="col-6 pr-sm-0 pr-2">
762 <input type="text" name="grundarealmin" id="grundarealmin-frontpage" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2","Min. m2")' />
763 <select class="form-control js-grundarealmin-frontpage-select js-count">
764 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
765 @for (var i = 0; i <= 10000; i += 100)
766 {
767 if (i == 10000)
768 {
769 <option value="@i">@i+</option>
770 }
771 else
772 {
773 <option value="@i">@i</option>
774 }
775 }
776 </select>
777 </div>
778 <div class="col-6 pl-sm-0 pl-2">
779 <input type="text" name="grundarealmax" id="grundarealmax-frontpage" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2")' />
780 <select class="form-control js-grundarealmax-frontpage-select js-count">
781 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
782 @for (var i = 0; i <= 10000; i += 100)
783 {
784 if (i == 10000)
785 {
786 <option value="@i">@i+</option>
787 }
788 else
789 {
790 <option value="@i">@i</option>
791 }
792 }
793 </select>
794 </div>
795 </div>
796 </div>
797 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
798 <div class="filter-container row">
799 <label class="d-block col-12">Antal rum</label>
800
801 <div class="col-6 pr-sm-0 pr-2">
802 <select name="roomsmin" id="roomsmin-frontpage" class="form-control reverse js-count">
803 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
804 <option value="1">1</option>
805 <option value="2">2</option>
806 <option value="3">3</option>
807 <option value="4">4</option>
808 <option value="5+">5+</option>
809 </select>
810 </div>
811 <div class="col-6 pl-sm-0 pl-2">
812 <select name="roomsmax" id="roomsmax-frontpage" class="form-control reverse js-count">
813 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
814 <option value="1">1</option>
815 <option value="2">2</option>
816 <option value="3">3</option>
817 <option value="4">4</option>
818 <option value="5+">@Translate("Smartpage:Rooms.5", "5")</option>
819 </select>
820 </div>
821 </div>
822 </div>
823 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
824 <div class="row">
825 <div class="col-12">
826 <div class="filter-container">
827 <label class="d-block">Energimærke</label>
828 <select name="energylabel" id="energylabel-frontpage" class="form-control reverse js-count">
829 <option disabled selected="selected">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
830 <option value="01">G</option>
831 <option value="02">F</option>
832 <option value="03">E</option>
833 <option value="04">D</option>
834 <option value="05">C</option>
835 <option value="06">B</option>
836 <option value="07">A</option>
837 <option value="08">A2010</option>
838 <option value="09">A2015</option>
839 <option value="10">A2020+</option>
840 </select>
841 </div>
842 </div>
843 </div>
844 </div>
845 <div class="col-12 col-sm-6 col-lg-3 mt-3">
846 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
847 <div class="filter-container row">
848 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
849 <div class="col-6 pr-sm-0 pr-2">
850 <input type="text" name="subsidymin" id="subsidymin-frontpage" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK")' />
851 <select class="form-control js-subsidymin-frontpage-select js-count">
852 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
853 @for (var i = 0; i <= 25000; i += 1250)
854 {
855 if (i == 25000)
856 {
857 <option>@Convert.ToInt32(i).ToString("N0")+</option>
858 }
859 else
860 {
861 <option>@Convert.ToInt32(i).ToString("N0")</option>
862 }
863 }
864 </select>
865 </div>
866 <div class="col-6 pl-sm-0 pl-2">
867 <input type="text" name="subsidymax" id="subsidymax-frontpage" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK")' />
868 <select class="form-control js-subsidymax-frontpage-select js-count">
869 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
870 @for (var i = 0; i <= 25000; i += 1250)
871 {
872 if (i == 25000)
873 {
874 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
875 }
876 else
877 {
878 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
879 }
880 }
881 </select>
882 </div>
883 </div>
884 </div>
885 <div class="col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0">
886 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
887 </div>
888 </div>
889 </div>
890 </div>
891 </div>
892
893 <div class="row d-block d-md-none form-wrapper no-gutters">
894 <div class="col-xs-12 col-md-2">
895 <button type="submit" class="btn btn-block btn-search btn-mobile-search">@Translate("Smartpage:Search.SøgBolig", "Søg Bolig")<i class="fa fa-search cta-icon"></i></button>
896 </div>
897 </div>
898 </form>
899 <div class="front-page-actions d-md-none">
900 <div>
901 <button class="btn btn-block btn-search btn-mobile-search js-search-mobile">@Translate("Smartpage:Search.SøgBolig", "Søg Bolig")<i class="fa fa-search cta-icon"></i></button>
902 </div>
903 <div>
904 @{
905 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : "";
906 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER");
907 <form method="GET" action="/Default.aspx">
908 <input name="id" value="@brokerSearchId" type="hidden" />
909 <div class="icon-wrapper-wclick">
910 <i class="fas fa-search ta-submit-on-icon-click"></i>
911 <input class="box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter" name="q" type="text" placeholder="@ctaText" onfocus="this.placeholder = ''" onblur="this.placeholder='@ctaText'" />
912 </div>
913 </form>
914 }
915 </div>
916 <div>
917 <a href="javascript:panelSalgsvurdering('Hovedmenu')" class="btn btn-orange btn-block">@Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING")<i class="cta-icon fa fa-angle-right"></i></a>
918 </div>
919 </div>
920 </div>
921
922 }
923 }
924 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel>
925 @using Dynamicweb.Frontend.Navigation
926 @using Dynamicweb.Core
927 @using Dynamicweb
928
929 @functions {
930 void RenderSlideMenu(bool erhverv, string maeglersoegning)
931 {
932 <div id="menu" class="main-menu-slide ">
933 <div class="container">
934 <div class="row">
935 <div class="col-12">
936 <span class="menu-headline">MENU</span>
937 </div>
938 <div class="menu-slide">
939 <b></b>
940 </div>
941
942 <div class="col-12 main-slidemenu">
943 @{
944 var navigationSettings = new NavigationSettings();
945 navigationSettings.StartLevel = 1;
946 navigationSettings.StopLevel = 2;
947 navigationSettings.ExpandMode = ExpandMode.All;
948 navigationSettings.RootAreaId = Pageview.Area.ID;
949
950 @Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings)
951 }
952 </div>
953 <div class="col-12 bottom-btns">
954
955 @{
956 string[] maeglerid;
957 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0";
958
959 if (erhverv)
960 {
961 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None);
962 }
963 else
964 {
965 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None);
966 }
967
968 <form method="GET" action="/Default.aspx">
969 <input name="id" value="@maeglerid[1]" type="hidden" />
970 <div class="icon-wrapper-wclick">
971 <i class="fas fa-search ta-submit-on-icon-click"></i>
972 <input class="box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter" name="q" type="text" placeholder='@Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER")' onfocus="this.placeholder = 'FIND MÆGLER'" />
973 </div>
974 </form>
975 }
976 <br />
977 @{
978 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + "";
979 }
980 <a href="javascript:panelSalgsvurdering('@dpmaegler','@Pageview.AreaID');" class="btn btn-block btn-default-invert js-close-menu">Gratis salgsvurdering <i class="cta-icon fa fa-angle-right"></i></a>
981 </div>
982 </div>
983 </div>
984 </div>
985 }
986 }
987 @using System.Text.RegularExpressions
988 @using System.Collections.Generic
989 @using System.Reflection
990 @using Dynamicweb.Rapido.Blocks.Components
991 @using Dynamicweb.Rapido.Blocks.Components.Articles
992 @using Dynamicweb.Rapido.Blocks.Components.Documentation
993 @using Dynamicweb.Rapido.Blocks
994 @using Dynamicweb;
995
996 @functions {
997 void RenderBlockList(List<Block> blocks)
998 {
999 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
1000 blocks = blocks.OrderBy(item => item.SortId).ToList();
1001
1002 foreach (Block item in blocks)
1003 {
1004 if (debug) {
1005 <!-- Block START: @item.Id -->
1006 }
1007
1008 if (item.Design == null)
1009 {
1010 RenderBlock(item);
1011 }
1012 else if (item.Design.RenderType == RenderType.None) {
1013 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
1014
1015 <div class="@cssClass dw-mod">
1016 RenderBlock(item);
1017 </div>
1018 }
1019 else if (item.Design.RenderType != RenderType.Hide)
1020 {
1021 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
1022
1023 if (!item.SkipRenderBlocksList) {
1024 if (item.Design.RenderType == RenderType.Row)
1025 {
1026 <div class="grid grid--align-content-start @cssClass dw-mod" id="Block__@item.Id">
1027 RenderBlock(item);
1028 </div>
1029 }
1030
1031 if (item.Design.RenderType == RenderType.Column)
1032 {
1033 string hidePadding = item.Design.HidePadding ? "u-no-padding" : "";
1034 string size = item.Design.Size ?? "12";
1035 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size;
1036
1037 <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">
1038 RenderBlock(item);
1039 </div>
1040 }
1041
1042 if (item.Design.RenderType == RenderType.Table)
1043 {
1044 <table class="table @cssClass dw-mod" id="Block__@item.Id">
1045 RenderBlock(item);
1046 </table>
1047 }
1048
1049 if (item.Design.RenderType == RenderType.TableRow)
1050 {
1051 <tr class="@cssClass dw-mod" id="Block__@item.Id">
1052 RenderBlock(item);
1053 </tr>
1054 }
1055
1056 if (item.Design.RenderType == RenderType.TableColumn)
1057 {
1058 <td class="@cssClass dw-mod" id="Block__@item.Id">
1059 RenderBlock(item);
1060 </td>
1061 }
1062
1063 if (item.Design.RenderType == RenderType.CardHeader)
1064 {
1065 <div class="card-header @cssClass dw-mod">
1066 RenderBlock(item);
1067 </div>
1068 }
1069
1070 if (item.Design.RenderType == RenderType.CardBody)
1071 {
1072 <div class="card @cssClass dw-mod">
1073 RenderBlock(item);
1074 </div>
1075 }
1076
1077 if (item.Design.RenderType == RenderType.CardFooter)
1078 {
1079 <div class="card-footer @cssClass dw-mod">
1080 RenderBlock(item);
1081 </div>
1082 }
1083 }
1084 else
1085 {
1086 RenderBlock(item);
1087 }
1088 }
1089
1090 if (debug) {
1091 <!-- Block END: @item.Id -->
1092 }
1093 }
1094 }
1095
1096 void RenderBlock(Block item)
1097 {
1098 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
1099
1100 if (item.Template != null)
1101 {
1102 @BlocksPage.RenderTemplate(item.Template)
1103 }
1104
1105 if (item.Component != null)
1106 {
1107 string customSufix = "Custom";
1108 string methodName = item.Component.HelperName;
1109
1110 ComponentBase[] methodParameters = new ComponentBase[1];
1111 methodParameters[0] = item.Component;
1112 Type methodType = this.GetType();
1113
1114 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix);
1115 MethodInfo generalMethod = methodType.GetMethod(methodName);
1116
1117 try {
1118 if (debug) {
1119 <!-- Component: @methodName.Replace("Render", "") -->
1120 }
1121 @customMethod.Invoke(this, methodParameters).ToString();
1122 } catch {
1123 try {
1124 @generalMethod.Invoke(this, methodParameters).ToString()
1125 ;
1126 } catch(Exception ex) {
1127 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex);
1128 }
1129 }
1130 }
1131
1132 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList)
1133 {
1134 RenderBlockList(item.BlocksList);
1135 }
1136 }
1137 }
1138
1139
1140
1141 @* Include the components *@
1142 @using Dynamicweb.Rapido.Blocks.Components
1143 @using Dynamicweb.Rapido.Blocks.Components.General
1144 @using Dynamicweb.Rapido.Blocks
1145 @using System.IO
1146
1147 @* Required *@
1148 @using Dynamicweb.Rapido.Blocks.Components
1149 @using Dynamicweb.Rapido.Blocks.Components.General
1150 @using Dynamicweb.Rapido.Blocks
1151
1152 @functions {
1153 void Render(ComponentBase component)
1154 {
1155 if (component != null)
1156 {
1157 @component.Render(this)
1158 }
1159 }
1160 }
1161
1162 @* Components *@
1163 @using System.Reflection
1164 @using Dynamicweb.Rapido.Blocks.Components.General
1165
1166 @* Component *@
1167
1168 @functions {
1169 void RenderIcon(Icon settings)
1170 {
1171 if (settings != null)
1172 {
1173 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
1174
1175 if (settings.Name != null)
1176 {
1177 if (string.IsNullOrEmpty(settings.Label))
1178 {
1179 <i class="@settings.Prefix @settings.Name @settings.CssClass" @color></i>
1180 }
1181 else
1182 {
1183 if (settings.LabelPosition == IconLabelPosition.Before)
1184 {
1185 <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>
1186 }
1187 else
1188 {
1189 <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>
1190 }
1191 }
1192 }
1193 else if (!string.IsNullOrEmpty(settings.Label))
1194 {
1195 @settings.Label
1196 }
1197 }
1198 }
1199 }
1200
1201 @using System.Reflection
1202 @using Dynamicweb.Rapido.Blocks.Components.General
1203 @using Dynamicweb.Rapido.Blocks.Components
1204 @using Dynamicweb.Core
1205 @using System.Text.RegularExpressions
1206
1207 @* Component *@
1208
1209 @functions {
1210 void RenderButton(Button settings)
1211 {
1212 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
1213 {
1214 Dictionary<string, string> attributes = new Dictionary<string, string>();
1215 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
1216 if (settings.Disabled) {
1217 attributes.Add("disabled", "true");
1218 classList.Add("disabled");
1219 }
1220
1221 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle))
1222 {
1223 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
1224 RenderConfirmDialog(settings);
1225 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true";
1226 }
1227
1228 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
1229 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
1230 if (!string.IsNullOrEmpty(settings.AltText))
1231 {
1232 attributes.Add("title", settings.AltText);
1233 }
1234 else if (!string.IsNullOrEmpty(settings.Title))
1235 {
1236 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty);
1237 cleanTitle = cleanTitle.Replace(" ", " ");
1238 attributes.Add("title", cleanTitle);
1239 }
1240
1241 var onClickEvents = new List<string>();
1242 if (!string.IsNullOrEmpty(settings.OnClick))
1243 {
1244 onClickEvents.Add(settings.OnClick);
1245 }
1246 if (!string.IsNullOrEmpty(settings.Href))
1247 {
1248 if (settings.Href.Contains("javascript"))
1249 {
1250 settings.Href = settings.Href.Replace("http://", "");
1251 }
1252 onClickEvents.Add("location.href='" + settings.Href + "'");
1253 }
1254 if (onClickEvents.Count > 0)
1255 {
1256 attributes.Add("onClick", string.Join(";", onClickEvents));
1257 }
1258
1259 if (settings.ButtonLayout != ButtonLayout.None)
1260 {
1261 classList.Add("btn");
1262 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
1263 if (btnLayout == "linkclean")
1264 {
1265 btnLayout = "link-clean"; //fix
1266 }
1267 classList.Add("btn--" + btnLayout);
1268 }
1269
1270 if (settings.Icon == null)
1271 {
1272 settings.Icon = new Icon();
1273 }
1274
1275 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : "";
1276 settings.Icon.Label = settings.Title;
1277
1278 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower());
1279
1280 <button class="@string.Join(" ", classList) dw-mod" @ComponentMethods.AddAttributes(attributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)>@{RenderIcon(settings.Icon);}</button>
1281 }
1282 }
1283
1284 void RenderConfirmDialog(Button settings)
1285 {
1286 Modal confirmDialog = new Modal {
1287 Id = settings.Id,
1288 Width = ModalWidth.Sm,
1289 Heading = new Heading
1290 {
1291 Level = 2,
1292 Title = settings.ConfirmTitle
1293 },
1294 BodyText = settings.ConfirmText
1295 };
1296
1297 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"});
1298 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick });
1299
1300 RenderModal(confirmDialog);
1301 }
1302 }
1303 @using System.Reflection
1304 @using Dynamicweb.Rapido.Blocks.Components.General
1305 @using Dynamicweb.Rapido.Blocks.Components
1306 @using Dynamicweb.Core
1307
1308 @* Component *@
1309
1310 @functions{
1311 void RenderLink(Link settings)
1312 {
1313 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
1314 {
1315 Dictionary<string, string> attributes = new Dictionary<string, string>();
1316 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
1317 if (settings.Disabled)
1318 {
1319 attributes.Add("disabled", "true");
1320 classList.Add("disabled");
1321 }
1322
1323 if (!string.IsNullOrEmpty(settings.AltText))
1324 {
1325 attributes.Add("title", settings.AltText);
1326 }
1327 else if (!string.IsNullOrEmpty(settings.Title))
1328 {
1329 attributes.Add("title", settings.Title);
1330 }
1331
1332 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
1333 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
1334 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); }
1335 attributes.Add("href", settings.Href);
1336
1337 if (settings.ButtonLayout != ButtonLayout.None)
1338 {
1339 classList.Add("btn");
1340 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
1341 if (btnLayout == "linkclean")
1342 {
1343 btnLayout = "link-clean"; //fix
1344 }
1345 classList.Add("btn--" + btnLayout);
1346 }
1347
1348 if (settings.Icon == null)
1349 {
1350 settings.Icon = new Icon();
1351 }
1352 settings.Icon.Label = settings.Title;
1353
1354 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None)
1355 {
1356 settings.Rel = LinkRelType.Noopener;
1357 }
1358 if (settings.Target != LinkTargetType.None)
1359 {
1360 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower());
1361 }
1362 if (settings.Download)
1363 {
1364 attributes.Add("download", "true");
1365 }
1366 if (settings.Rel != LinkRelType.None)
1367 {
1368 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower());
1369 }
1370
1371 <a class="@string.Join(" ", classList) dw-mod" @ComponentMethods.AddAttributes(attributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)>Render(settings.Icon);</a>
1372 }
1373 }
1374 }
1375
1376 @using System.Reflection
1377 @using Dynamicweb.Rapido.Blocks.Components
1378 @using Dynamicweb.Rapido.Blocks.Components.General
1379 @using Dynamicweb.Rapido.Blocks
1380
1381 @* Component *@
1382
1383 @functions{
1384 void RenderRating(Rating settings)
1385 {
1386 if (settings.Score > 0)
1387 {
1388 int rating = settings.Score;
1389 string iconType = "fa-star";
1390
1391 switch (settings.Type.ToString()) {
1392 case "Stars":
1393 iconType = "fa-star";
1394 break;
1395 case "Hearts":
1396 iconType = "fa-heart";
1397 break;
1398 case "Lemons":
1399 iconType = "fa-lemon";
1400 break;
1401 case "Bombs":
1402 iconType = "fa-bomb";
1403 break;
1404 }
1405
1406 <div class="u-ta-right">
1407 @for (int i = 0; i < settings.OutOf; i++)
1408 {
1409 <i class="@(rating > i ? "fas" : "far") @iconType"></i>
1410 }
1411 </div>
1412 }
1413 }
1414 }
1415 @using System.Reflection
1416 @using Dynamicweb.Rapido.Blocks.Components.General
1417 @using Dynamicweb.Rapido.Blocks.Components
1418
1419
1420 @* Component *@
1421
1422 @functions{
1423 void RenderNavigation(Navigation settings) {
1424 RenderNavigation(new
1425 {
1426 id = settings.Id,
1427 cssclass = settings.CssClass,
1428 startLevel = settings.StartLevel,
1429 endlevel = settings.EndLevel,
1430 expandmode = settings.Expandmode,
1431 sitemapmode = settings.SitemapMode,
1432 template = settings.Template
1433 });
1434 }
1435 }
1436
1437 @using Dynamicweb.Rapido.Blocks.Components.General
1438 @using Dynamicweb.Rapido.Blocks.Components
1439
1440 @* Component *@
1441
1442 @functions {
1443 void RenderLeftNavigation(LeftNavigation settings) {
1444 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id;
1445 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template;
1446 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel;
1447 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel;
1448 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode;
1449
1450 <div class="grid__cell">
1451 RenderNavigation(settings);
1452 </div>
1453 }
1454 }
1455
1456 @using System.Reflection
1457 @using Dynamicweb.Rapido.Blocks.Components.General
1458 @using Dynamicweb.Core
1459
1460 @* Component *@
1461
1462 @functions {
1463 void RenderHeading(Heading settings)
1464 {
1465 if (settings != null && !string.IsNullOrEmpty(settings.Title))
1466 {
1467 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
1468 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div";
1469
1470 @("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">")
1471 if (!string.IsNullOrEmpty(settings.Link))
1472 {
1473 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None });
1474 }
1475 else
1476 {
1477 if (settings.Icon == null)
1478 {
1479 settings.Icon = new Icon();
1480 }
1481 settings.Icon.Label = settings.Title;
1482 RenderIcon(settings.Icon);
1483 }
1484 @("</" + tagName + ">");
1485 }
1486 }
1487 }
1488
1489 @using Dynamicweb.Rapido.Blocks.Components
1490 @using Dynamicweb.Rapido.Blocks.Components.General
1491 @using Dynamicweb.Rapido.Blocks
1492 @using Dynamicweb.Frontend
1493
1494 @* Component *@
1495
1496 @functions {
1497 void RenderImage(Image settings)
1498 {
1499 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None)
1500 {
1501 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
1502 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); }
1503
1504 if (settings.Caption != null)
1505 {
1506 @:<div>
1507 }
1508
1509 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower();
1510 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower();
1511
1512 <div class="image-filter image-filter--@primaryFilterClass u-position-relative dw-mod" @ComponentMethods.AddAttributes(optionalAttributes)>
1513 <div class="image-filter image-filter--@secondaryFilterClass dw-mod">
1514 @if (settings.Link != null)
1515 {
1516 <a href="@settings.Link">
1517 RenderTheImage(settings);
1518 </a>
1519 }
1520 else
1521 {
1522 RenderTheImage(settings);
1523 }
1524 </div>
1525 </div>
1526
1527 if (settings.Caption != null)
1528 {
1529 <span class="image-caption dw-mod">@settings.Caption</span>
1530 @:</div>
1531 }
1532 }
1533 else
1534 {
1535 if (settings.Caption != null)
1536 {
1537 @:<div>
1538 }
1539 if (!string.IsNullOrEmpty(settings.Link))
1540 {
1541 <a href="@settings.Link">
1542 RenderTheImage(settings);
1543 </a>
1544 }
1545 else
1546 {
1547 RenderTheImage(settings);
1548 }
1549
1550 if (settings.Caption != null)
1551 {
1552 <span class="image-caption dw-mod">@settings.Caption</span>
1553 @:</div>
1554 }
1555 }
1556 }
1557
1558 void RenderTheImage(Image settings)
1559 {
1560 if (settings != null)
1561 {
1562 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg";
1563 string placeholderImage = "/Files/Images/placeholder.gif";
1564 string imageEngine = "/Admin/Public/GetImage.ashx?";
1565
1566 string imageStyle = "";
1567
1568 switch (settings.Style)
1569 {
1570 case ImageStyle.Ball:
1571 imageStyle = "grid__cell-img--ball";
1572 break;
1573
1574 case ImageStyle.Triangle:
1575 imageStyle = "grid__cell-img--triangle";
1576 break;
1577 }
1578
1579 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle)
1580 {
1581 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop;
1582
1583 if (settings.ImageDefault != null)
1584 {
1585 settings.ImageDefault.Height = settings.ImageDefault.Width;
1586 }
1587 if (settings.ImageMedium != null)
1588 {
1589 settings.ImageMedium.Height = settings.ImageMedium.Width;
1590 }
1591 if (settings.ImageSmall != null)
1592 {
1593 settings.ImageSmall.Height = settings.ImageSmall.Width;
1594 }
1595 }
1596
1597 string defaultImage = imageEngine;
1598 string imageSmall = "";
1599 string imageMedium = "";
1600
1601 if (settings.DisableImageEngine)
1602 {
1603 defaultImage = settings.Path;
1604 }
1605 else
1606 {
1607 if (settings.ImageDefault != null)
1608 {
1609 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault);
1610
1611 if (settings.Path.GetType() != typeof(string))
1612 {
1613 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
1614 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
1615 }
1616 else
1617 {
1618 defaultImage += settings.Path != null ? "Image=" + settings.Path : "";
1619 }
1620
1621 defaultImage += "&AlternativeImage=" + alternativeImage;
1622 }
1623
1624 if (settings.ImageSmall != null)
1625 {
1626 imageSmall = "data-src-small=\"" + imageEngine;
1627 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall);
1628
1629 if (settings.Path.GetType() != typeof(string))
1630 {
1631 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
1632 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
1633 }
1634 else
1635 {
1636 imageSmall += settings.Path != null ? "Image=" + settings.Path : "";
1637 }
1638
1639 imageSmall += "&alternativeImage=" + alternativeImage;
1640
1641 imageSmall += "\"";
1642 }
1643
1644 if (settings.ImageMedium != null)
1645 {
1646 imageMedium = "data-src-medium=\"" + imageEngine;
1647 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium);
1648
1649 if (settings.Path.GetType() != typeof(string))
1650 {
1651 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
1652 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
1653 }
1654 else
1655 {
1656 imageMedium += settings.Path != null ? "Image=" + settings.Path : "";
1657 }
1658
1659 imageMedium += "&alternativeImage=" + alternativeImage;
1660
1661 imageMedium += "\"";
1662 }
1663 }
1664
1665 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
1666 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); }
1667 if (!string.IsNullOrEmpty(settings.Title))
1668 {
1669 optionalAttributes.Add("alt", settings.Title);
1670 optionalAttributes.Add("title", settings.Title);
1671 }
1672
1673 if (settings.DisableLazyLoad)
1674 {
1675 <img id="@settings.Id" class="@imageStyle @settings.CssClass dw-mod" src="@defaultImage" @ComponentMethods.AddAttributes(optionalAttributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes) />
1676 }
1677 else
1678 {
1679
1680 <img id="@settings.Id" class="@imageStyle @settings.CssClass dw-mod" loading="lazy" src="@defaultImage" @ComponentMethods.AddAttributes(optionalAttributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes) />
1681 }
1682 }
1683 }
1684 }
1685 @using System.Reflection
1686 @using Dynamicweb.Rapido.Blocks.Components.General
1687 @using Dynamicweb.Rapido.Blocks.Components
1688
1689 @* Component *@
1690
1691 @functions {
1692 void RenderHiddenField(HiddenField settings) {
1693 var attributes = new Dictionary<string, string>();
1694 attributes.Add("type", "hidden");
1695 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
1696 if (settings.Value != null) { attributes.Add("value", settings.Value); }
1697 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
1698
1699 <input @ComponentMethods.AddAttributes(attributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)/>
1700 }
1701 }
1702
1703 @using System.Reflection
1704 @using Dynamicweb.Rapido.Blocks.Components.General
1705 @using Dynamicweb.Rapido.Blocks.Components
1706
1707 @* Component *@
1708
1709 @functions {
1710 void RenderRadioButtonField(RadioButtonField settings)
1711 {
1712 var attributes = new Dictionary<string, string>();
1713 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id))
1714 {
1715 settings.Id = Guid.NewGuid().ToString("N");
1716 }
1717
1718 /*base settings*/
1719 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
1720 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); }
1721 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); }
1722 if (settings.Disabled) { attributes.Add("disabled", "true"); }
1723 if (settings.Required) { attributes.Add("required", "true"); }
1724 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
1725 /*end*/
1726
1727 attributes.Add("type", "radio");
1728 if (settings.Checked) { attributes.Add("checked", "true"); }
1729 settings.CssClass = "form__control " + settings.CssClass;
1730 if (settings.Value != null) { attributes.Add("value", settings.Value); }
1731
1732 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value);
1733
1734 <div class="form__field-group @settings.WrapperCssClass dw-mod">
1735 <input @ComponentMethods.AddAttributes(resultAttributes) class="@settings.CssClass dw-mod" />
1736 @if (!string.IsNullOrEmpty(settings.Label))
1737 {
1738 <label for="@settings.Id" class="dw-mod">@settings.Label</label>
1739 }
1740 @if (!string.IsNullOrEmpty(settings.HelpText))
1741 {
1742 <small class="form__help-text">@settings.HelpText</small>
1743 }
1744 Render(new NotificationMessage { Message = settings.ErrorMessage });
1745 </div>
1746 }
1747 }
1748 @using System.Reflection
1749 @using Dynamicweb.Rapido.Blocks.Components.General
1750 @using Dynamicweb.Rapido.Blocks.Components
1751
1752 @* Component *@
1753
1754 @functions{
1755 void RenderRadioButtonListField(RadioButtonListField settings)
1756 {
1757 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; }
1758
1759 <div class="form__field-group @settings.WrapperCssClass u-margin-bottom dw-mod" @ComponentMethods.AddAttributes(settings.ExtraAttributes)>
1760 @if (!string.IsNullOrEmpty(settings.Label))
1761 {
1762 <label>@settings.Label</label>
1763 }
1764 @if (!string.IsNullOrEmpty(settings.HelpText))
1765 {
1766 <small class="form__help-text">@settings.HelpText</small>
1767 }
1768
1769 @foreach (var item in settings.Options)
1770 {
1771 if (settings.Required)
1772 {
1773 item.Required = true;
1774 }
1775 if (settings.Disabled)
1776 {
1777 item.Disabled = true;
1778 }
1779 if (!string.IsNullOrEmpty(settings.Name))
1780 {
1781 item.Name = settings.Name;
1782 }
1783 if (settings.Value != null && settings.Value == item.Value)
1784 {
1785 item.Checked = true;
1786 }
1787 if (!string.IsNullOrEmpty(settings.OnClick))
1788 {
1789 item.OnClick += settings.OnClick;
1790 }
1791 if (!string.IsNullOrEmpty(settings.OnChange))
1792 {
1793 item.OnChange += settings.OnChange;
1794 }
1795 if (!string.IsNullOrEmpty(settings.CssClass))
1796 {
1797 item.CssClass += settings.CssClass;
1798 }
1799 Render(item);
1800 }
1801
1802 Render(new NotificationMessage { Message = settings.ErrorMessage });
1803 </div>
1804 }
1805 }
1806 @using Dynamicweb.Rapido.Blocks.Components.General
1807 @using Dynamicweb.Rapido.Blocks.Components
1808
1809 @* Component *@
1810
1811 @functions {
1812 void RenderForm(Form settings) {
1813 if (settings != null)
1814 {
1815 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
1816 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); };
1817 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); };
1818 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); };
1819 var enctypes = new Dictionary<string, string>
1820 {
1821 { "multipart", "multipart/form-data" },
1822 { "text", "text/plain" },
1823 { "application", "application/x-www-form-urlencoded" }
1824 };
1825 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); };
1826 optionalAttributes.Add("method", settings.Method.ToString());
1827
1828 if (!string.IsNullOrEmpty(settings.FormStartMarkup))
1829 {
1830 @settings.FormStartMarkup
1831 }
1832 else
1833 {
1834 @:<form class="@settings.CssClass u-no-margin dw-mod" @ComponentMethods.AddAttributes(optionalAttributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)>
1835 }
1836
1837 foreach (var field in settings.GetFields())
1838 {
1839 Render(field);
1840 }
1841
1842 @:</form>
1843 }
1844 }
1845 }
1846
1847 @using System.Reflection
1848 @using Dynamicweb.Rapido.Blocks.Components.General
1849 @using Dynamicweb.Rapido.Blocks.Components
1850
1851 @* Component *@
1852
1853 @functions {
1854 void RenderText(Text settings)
1855 {
1856 @settings.Content
1857 }
1858 }
1859
1860 @using System.Reflection
1861 @using Dynamicweb.Rapido.Blocks.Components.General
1862 @using Dynamicweb.Rapido.Blocks.Components
1863
1864
1865 @* Component *@
1866
1867 @functions {
1868 void RenderContentModule(ContentModule settings) {
1869 if (!string.IsNullOrEmpty(settings.Content))
1870 {
1871 @settings.Content
1872 }
1873 }
1874 }
1875
1876 @using System.Reflection
1877 @using Dynamicweb.Rapido.Blocks.Components.General
1878 @using Dynamicweb.Rapido.Blocks.Components
1879
1880
1881 @* Component *@
1882
1883 @functions {
1884 void RenderModal(Modal settings) {
1885 if (settings != null)
1886 {
1887 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
1888
1889 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : "";
1890
1891 <input type="checkbox" id="@(modalId)ModalTrigger" class="modal-trigger" @onchange />
1892
1893 <div class="modal-container">
1894 @if (!settings.DisableDarkOverlay)
1895 {
1896 <label for="@(modalId)ModalTrigger" id="@(modalId)ModalOverlay" class="modal-overlay"></label>
1897 }
1898 <div class="modal modal--@settings.Width.ToString().ToLower() modal-height--@settings.Height.ToString().ToLower()" id="@(modalId)Modal">
1899 @if (settings.Heading != null)
1900 {
1901 if (!string.IsNullOrEmpty(settings.Heading.Title))
1902 {
1903 <div class="modal__header">
1904 RenderHeading(settings.Heading);
1905 </div>
1906 }
1907 }
1908 <div class="modal__body @(settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "")">
1909 @if (!string.IsNullOrEmpty(settings.BodyText))
1910 {
1911 @settings.BodyText
1912 }
1913 @if (settings.BodyTemplate != null)
1914 {
1915 @settings.BodyTemplate
1916 }
1917 @{
1918 var actions = settings.GetActions();
1919 }
1920 </div>
1921 @if (actions.Length > 0)
1922 {
1923 <div class="modal__footer">
1924 @foreach (var action in actions)
1925 {
1926 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") {
1927 action.CssClass += " u-no-margin";
1928 } else {
1929 action.CssClass += " u-full-width u-margin-bottom";
1930 }
1931
1932 Render(action);
1933 }
1934 </div>
1935 }
1936 <label class="modal__close-btn" for="@(modalId)ModalTrigger"></label>
1937 </div>
1938 </div>
1939 }
1940 }
1941 }
1942 @using Dynamicweb.Rapido.Blocks.Components.General
1943
1944 @* Component *@
1945
1946 @functions {
1947 void RenderMediaListItem(MediaListItem settings)
1948 {
1949 <div class="media-list-item @settings.CssClass dw-mod" @(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : "")>
1950 @if (!string.IsNullOrEmpty(settings.Label))
1951 {
1952 if (!string.IsNullOrEmpty(settings.Link))
1953 {
1954 Render(new Link
1955 {
1956 Href = settings.Link,
1957 CssClass = "media-list-item__sticker dw-mod",
1958 ButtonLayout = ButtonLayout.None,
1959 Title = settings.Label,
1960 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
1961 });
1962 }
1963 else if (!string.IsNullOrEmpty(settings.OnClick))
1964 {
1965 <span class="media-list-item__sticker dw-mod" onclick="@(settings.OnClick)">
1966 <span class="u-uppercase">@settings.Label</span>
1967 </span>
1968 }
1969 else
1970 {
1971 <span class="media-list-item__sticker media-list-item__sticker--no-link dw-mod">
1972 <span class="u-uppercase">@settings.Label</span>
1973 </span>
1974 }
1975 }
1976 <div class="media-list-item__wrap">
1977 <div class="media-list-item__info dw-mod">
1978 <div class="media-list-item__header dw-mod">
1979 @if (!string.IsNullOrEmpty(settings.Title))
1980 {
1981 if (!string.IsNullOrEmpty(settings.Link))
1982 {
1983 Render(new Link
1984 {
1985 Href = settings.Link,
1986 CssClass = "media-list-item__name dw-mod",
1987 ButtonLayout = ButtonLayout.None,
1988 Title = settings.Title,
1989 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
1990 });
1991 }
1992 else if (!string.IsNullOrEmpty(settings.OnClick))
1993 {
1994 <span class="media-list-item__name dw-mod" onclick="@(settings.OnClick)">@settings.Title</span>
1995 }
1996 else
1997 {
1998 <span class="media-list-item__name media-list-item__name--no-link dw-mod">@settings.Title</span>
1999 }
2000 }
2001
2002 @if (!string.IsNullOrEmpty(settings.Status))
2003 {
2004 <div class="media-list-item__state dw-mod">@settings.Status</div>
2005 }
2006 </div>
2007 @{
2008 settings.InfoTable.CssClass += " media-list-item__parameters-table";
2009 }
2010
2011 Render(settings.InfoTable);
2012 </div>
2013 <div class="media-list-item__actions dw-mod">
2014 <div class="media-list-item__actions-list dw-mod">
2015 @{
2016 var actions = settings.GetActions();
2017
2018 foreach (ButtonBase action in actions)
2019 {
2020 action.ButtonLayout = ButtonLayout.None;
2021 action.CssClass += " media-list-item__action link";
2022
2023 Render(action);
2024 }
2025 }
2026 </div>
2027
2028 @if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title))
2029 {
2030 settings.SelectButton.CssClass += " u-no-margin";
2031
2032 <div class="media-list-item__action-button">
2033 Render(settings.SelectButton);
2034 </div>
2035 }
2036 </div>
2037 </div>
2038 </div>
2039 }
2040 }
2041
2042
2043 @using Dynamicweb.Rapido.Blocks.Components.General
2044 @using Dynamicweb.Rapido.Blocks.Components
2045
2046 @functions {
2047 void RenderTable(Table settings)
2048 {
2049 Dictionary<string, string> attributes = new Dictionary<string, string>();
2050 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
2051
2052 var enumToClasses = new Dictionary<TableDesign, string>
2053 {
2054 { TableDesign.Clean, "table--clean" },
2055 { TableDesign.Bordered, "table--bordered" },
2056 { TableDesign.Striped, "table--striped" },
2057 { TableDesign.Hover, "table--hover" },
2058 { TableDesign.Compact, "table--compact" },
2059 { TableDesign.Condensed, "table--condensed" },
2060 { TableDesign.NoTopBorder, "table--no-top-border" }
2061 };
2062 string tableDesignClass = "";
2063 if (settings.Design != TableDesign.None)
2064 {
2065 tableDesignClass = enumToClasses[settings.Design];
2066 }
2067
2068 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); }
2069
2070 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
2071
2072 <table @ComponentMethods.AddAttributes(resultAttributes)>
2073 @if (settings.Header != null)
2074 {
2075 <thead>
2076 Render(settings.Header);
2077 </thead>
2078 }
2079 <tbody>
2080 @foreach (var row in settings.Rows)
2081 {
2082 Render(row);
2083 }
2084 </tbody>
2085 @if (settings.Footer != null)
2086 {
2087 <tfoot>
2088 Render(settings.Footer);
2089 </tfoot>
2090 }
2091 </table>
2092 }
2093 }
2094 @using Dynamicweb.Rapido.Blocks.Components.General
2095 @using Dynamicweb.Rapido.Blocks.Components
2096
2097 @functions {
2098 void RenderTableRow(TableRow settings)
2099 {
2100 Dictionary<string, string> attributes = new Dictionary<string, string>();
2101 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
2102
2103 var enumToClasses = new Dictionary<TableRowDesign, string>
2104 {
2105 { TableRowDesign.NoBorder, "table__row--no-border" },
2106 { TableRowDesign.Border, "table__row--border" },
2107 { TableRowDesign.TopBorder, "table__row--top-line" },
2108 { TableRowDesign.BottomBorder, "table__row--bottom-line" },
2109 { TableRowDesign.Solid, "table__row--solid" }
2110 };
2111
2112 string tableRowDesignClass = "";
2113 if (settings.Design != TableRowDesign.None)
2114 {
2115 tableRowDesignClass = enumToClasses[settings.Design];
2116 }
2117
2118 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); }
2119
2120 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
2121
2122 <tr @ComponentMethods.AddAttributes(resultAttributes)>
2123 @foreach (var cell in settings.Cells)
2124 {
2125 if (settings.IsHeaderRow)
2126 {
2127 cell.IsHeader = true;
2128 }
2129 Render(cell);
2130 }
2131 </tr>
2132 }
2133 }
2134 @using Dynamicweb.Rapido.Blocks.Components.General
2135 @using Dynamicweb.Rapido.Blocks.Components
2136 @using Dynamicweb.Core
2137
2138 @functions {
2139 void RenderTableCell(TableCell settings)
2140 {
2141 Dictionary<string, string> attributes = new Dictionary<string, string>();
2142 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
2143 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); }
2144 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); }
2145 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); }
2146
2147 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
2148
2149 string tagName = settings.IsHeader ? "th" : "td";
2150
2151 @("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">")
2152 @settings.Content
2153 @("</" + tagName + ">");
2154 }
2155 }
2156 @* <h1>ArticleComponents.cshtml</h1> *@
2157
2158 @{
2159 Context.Current.Response.AddHeader("access-control-allow-origin", "*");
2160
2161 string bodyClass = "";
2162 string template = "real";
2163 string TemplateUrl = "/Files/Templates/Designs/rm/";
2164 string MetaTitle = Model.Title;
2165 string MetaDescription = Model.Description;
2166 string MetaKeywords = Model.Keywords;
2167 string searchClass = "";
2168
2169 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css"));
2170 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}";
2171
2172 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg";
2173
2174 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2");
2175
2176 // Indstillinger
2177 var settings_Frontpage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : "";
2178 var settings_Boligside = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : "";
2179 var settings_Maeglersogning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : "";
2180 var settings_MinSide = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : "";
2181 var settings_Sibling_Site = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : "";
2182 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : "";
2183 var settings_Product_Group = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : "";
2184 var settings_Boligagent = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : "";
2185 var settings_Persondatapolitik = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : "";
2186
2187 // API
2188 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : "";
2189 var settings_BoligListFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : "";
2190 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : "";
2191 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : "";
2192 var settings_BoligCountFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : "";
2193 var settings_BoligMapFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : "";
2194 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"];
2195
2196 // Forside
2197 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : "";
2198 var settings_FrontpageVideo = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : "";
2199 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : "";
2200
2201 // Tracking
2202 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : "";
2203 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"])))
2204 {
2205 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]);
2206 }
2207 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : "";
2208 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : "";
2209 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : "";
2210 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]);
2211 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]);
2212 var settings_Google_Optimize_Id = Converter.ToString(SettingsItem["Google_Optimize_Id"]);
2213
2214 // Indstillinger for brugerfunktioner
2215 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : "";
2216 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : "";
2217 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : "";
2218 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : "";
2219
2220 int createUserParagraphId = 0;
2221 int loginParagraphId = 0;
2222 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId);
2223 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId);
2224
2225 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv.
2226 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv)
2227 int searchPageId = GetPageSettingsPageId("Boligside");
2228 if (searchPageId == 0)
2229 {
2230 searchPageId = GetWebsiteSettingsPageId("Boligside");
2231 }
2232
2233 int boligsideId = GetPageSettingsPageId("Boligside");
2234 if (boligsideId == 0)
2235 {
2236 boligsideId = GetWebsiteSettingsPageId("Boligside");
2237 }
2238
2239 string productGroupFilter = String.Empty;
2240 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null)
2241 {
2242 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString();
2243 }
2244
2245 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"]))
2246 {
2247 searchClass = "is-frontpage";
2248 }
2249
2250 bool isErhverv = false;
2251 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null)
2252 {
2253 var s = Pageview.Page.PropertyItem["Erhverv"].ToString();
2254 Boolean.TryParse(s, out isErhverv);
2255 }
2256
2257 bool isBrokerPage = false;
2258 if (!string.IsNullOrEmpty(Model.Area.Item.GetString("M_glerGruppeId")))
2259 {
2260 isBrokerPage = true;
2261 bodyClass = ""; // Get rid of transparent header on brokerPage
2262 }
2263
2264 string callTrackingId = Model.Item.GetString("CallTrackingId");
2265
2266 RealEstate.User.Model.BrokerEmployee MyBroker = null;
2267 try
2268 {
2269 var MyB = new RealEstate.User.MyBroker();
2270 MyBroker = MyB.GetMyBroker();
2271 }
2272 catch
2273 {
2274 // Ignore
2275 }
2276
2277 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : "");
2278 string querySearchNameAttr = "search";
2279
2280 // Overwrite search with zipcodeinterval if set
2281 if (Context.Current.Request.QueryString["zipcodeinterval"] != null)
2282 {
2283 querySearch = Context.Current.Request.QueryString["zipcodeinterval"];
2284 querySearchNameAttr = "zipcodeinterval";
2285 }
2286
2287 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : "");
2288 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : "");
2289
2290 Dynamicweb.Security.UserManagement.User user = null;
2291 int userID = 0;
2292 string userName = "";
2293 string userEmail = "";
2294 string userPhone = "";
2295 string userZip = "";
2296 string userAddress = "";
2297
2298 if (Dynamicweb.Security.UserManagement.UserContext.Current.IsLoggedOn)
2299 {
2300 user = Dynamicweb.Security.UserManagement.UserContext.Current.User;
2301 userName = user.Name;
2302 userEmail = user.Email;
2303 userPhone = user.Phone;
2304 userZip = user.Zip;
2305 userAddress = user.Address;
2306 userID = user.ID;
2307 }
2308
2309 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode");
2310 string forgotPwTemplate = "";
2311 string forgotPwSender = "";
2312 string markerColor = "";
2313 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png";
2314
2315 // Important - e-mail templates for forgotPw must be placed in "UserManagement/Login" folder
2316 forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml";
2317 forgotPwSender = "noreply@mailreal.dk";
2318 markerColor = "#213960";
2319
2320 var butikId = string.Empty;
2321 string bEmail = string.Empty;
2322 if (MyBroker != null && MyBroker.Broker != null)
2323 {
2324 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
2325 bEmail = MyBroker.Broker.Item().GetString("Email");
2326 }
2327
2328 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment"));
2329
2330 var termsMail = "info@realmaeglerne.dk";
2331 }
2332
2333 <!DOCTYPE html>
2334 <html>
2335 <head>
2336 <meta charset="utf-8">
2337 <title>@MetaTitle</title>
2338 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
2339 <meta name="description" content="@MetaDescription">
2340 <meta name="keywords" content="@MetaKeywords">
2341 <meta name="format-detection" content="telephone=no">
2342 <meta http-equiv="Expires" content="60">
2343 <meta name="robots" content="@(Pageview.Area.Noindex ? "noindex" : "index"),@(Pageview.Area.Nofollow ? "nofollow" : "follow")">
2344
2345 @*RICH SNIPPETS*@
2346
2347 @RenderSnippet("OpenGraphTags")
2348 @if (!string.IsNullOrEmpty(settings_Google_Optimize_Id))
2349 {
2350 <!-- Google optimize script-->
2351 <script src="https://www.googleoptimize.com/optimize.js?id=@settings_Google_Optimize_Id"></script>
2352 }
2353 <!-- TrustBox script -->
2354 <script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script>
2355 <!-- End TrustBox script -->
2356
2357 <script type="application/ld+json">
2358 {
2359 "context": "https://schema.org/",
2360 "@@type": "WebSite",
2361 "name": "RealMæglerne",
2362 "url": "https://www.realmaeglerne.dk/",
2363 "potentialAction": {
2364 "type": "SearchAction",
2365 "target": "https://www.realmaeglerne.dk/find-maegler?q={search_term_string}",
2366 "query-input": "required name=search_term_string"
2367 }
2368 }
2369 </script>
2370
2371 <script type="application/ld+json">
2372 {
2373 "context": "https://schema.org",
2374 "@@type": "Corporation",
2375 "name": "RealMæglerne",
2376 "alternateName": "R&B Mægler A/S",
2377 "url": "https://www.realmaeglerne.dk",
2378 "logo": "https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png",
2379 "contactPoint": {
2380 "type": "ContactPoint",
2381 "telephone": "+4570237153",
2382 "contactType": "sales",
2383 "areaServed": "DK",
2384 "availableLanguage": "Danish"
2385 },
2386 "sameAs": [
2387 "https://www.facebook.com/realmaeglerne/",
2388 "https://www.linkedin.com/company/realmæglerne/",
2389 "https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g",
2390 "https://www.realmaeglerne.dk/"
2391 ]
2392 }
2393 </script>
2394 @RenderSnippet("StructuredData")
2395 @*RICH SNIPPETS END*@
2396
2397 @*FONT AWESOME*@
2398 @{
2399 <link rel="stylesheet" href="@(TemplateUrl)assets/fontawesome/css/all.css" async />
2400 <link rel="stylesheet" href="@mainCSS" async />
2401
2402 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
2403 {
2404 var cssErhvervFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/erhverv.min.css"));
2405 string erhvervCSS = TemplateUrl + $"assets/dist/css/erhverv.min.css?{cssErhvervFileInfo.LastWriteTime.Ticks}";
2406 <link rel="stylesheet" href="@erhvervCSS" async>
2407 }
2408 }
2409
2410
2411 <link rel="icon" type="image/ico" href="@(TemplateUrl)assets/images/favicons/favicon-real.ico?v=1">
2412 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-16x16.png" sizes="16x16">
2413 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-32x32.png" sizes="32x32">
2414 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-96x96.png" sizes="96x96">
2415 <meta name="google-site-verification" content="hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg" />
2416
2417 @if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString()))
2418 {
2419 <script>
2420 window.dataLayer = window.dataLayer || []; // must be placed above GTM script
2421 </script>
2422 <!-- Google Tag Manager -->
2423 <script>
2424 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
2425 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
2426 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
2427 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
2428 })(window,document,'script','dataLayer','@settings_Google_Tag_Manager_ID');</script>
2429 <!-- End Google Tag Manager -->
2430 }
2431
2432 @if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId))
2433 {
2434 <script type="text/javascript" src="https://call.call-tracking.dk/getJavascript?custid=@callTrackingId"></script>
2435 }
2436
2437 @if (!String.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString()))
2438 {
2439 <!-- Begin Leadhub Pixel Code -->
2440 <script>
2441 (function(w,d,x,n,u,t,f,s,o){
2442 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){
2443 (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)
2444 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '@settings_Leadhub_Pixel_ID');
2445 lhi('pageview');
2446 </script>
2447 <!-- End Leadhub Pixel Code -->
2448 }
2449
2450 <script>
2451 // Global namespace used for fetching API feeds from DW
2452 var RMAPI = (RMAPI) ? RMAPI : {};
2453 var ApiPreFix = "/Default.aspx?ID=";
2454 RMAPI.BoligCountFeed = ApiPreFix + "@settings_BoligCountFeed";
2455 RMAPI.BoligListFeed = ApiPreFix + "@settings_BoligListFeed" + "&refpageid=@Pageview.Page.ID";
2456 RMAPI.BoligListFeedErhverv = "@settings_BoligListFeedErhverv";
2457 RMAPI.BoligListFeedMaegler = ApiPreFix + "@settings_BoligListFeedMaegler" + "&refpageid=@Pageview.Page.ID";
2458 RMAPI.BoligSearchFeed = ApiPreFix + "@settings_BoligSearchFeed";
2459 RMAPI.BoligMapFeed = ApiPreFix + "@settings_BoligMapFeed";
2460 RMAPI.Boligagent = "@settings_Boligagent";
2461 RMAPI.IsErhverv = @isErhverv.ToString().ToLower();
2462 RMAPI.ProductGroupFilter = "@productGroupFilter";
2463 RMAPI.ButikId = "@butikId";
2464 RMAPI.Boligvisning = false;
2465 RMAPI.RefPageId = "@Pageview.Page.ID";
2466 RMAPI.Template = "@template";
2467 RMAPI.SliderSettings = @JsonConvert.SerializeObject(Settings.Site);
2468 RMAPI.AdvisorSearchFeed = "@settings_AdvisorSearchFeed";
2469 RMAPI.LoadingIcon = "@loadingIcon";
2470 RMAPI.MarkerColor = "@markerColor";
2471 RMAPI.mapMarkerUrl = "@mapMarkerUrl";
2472 RMAPI.settings_ForgotPwPage = "@settings_ForgotPwPage";
2473 </script>
2474
2475 @if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString()))
2476 {
2477 <!-- Facebook Pixel Code -->
2478 <script>
2479 !function (f, b, e, v, n, t, s) {
2480 if (f.fbq) return; n = f.fbq = function () {
2481 n.callMethod ?
2482 n.callMethod.apply(n, arguments) : n.queue.push(arguments)
2483 };
2484 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';
2485 n.queue = []; t = b.createElement(e); t.async = !0;
2486 t.src = v; s = b.getElementsByTagName(e)[0];
2487 s.parentNode.insertBefore(t, s)
2488 }(window, document, 'script',
2489 'https://connect.facebook.net/en_US/fbevents.js');
2490 fbq('init', '@settings_Facebook_App_ID');
2491 fbq('track', 'PageView');
2492 </script>
2493 <noscript>
2494 <img height="1" width="1" src="https://www.facebook.com/tr?id=@settings_Facebook_App_ID&ev=PageView&noscript=1" />
2495 </noscript>
2496 <!-- End Facebook Pixel Code -->
2497 }
2498
2499 <script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=5d68cfaf5fea9f001288d9ac&product=inline-share-buttons' async='async'></script>
2500
2501 </head>
2502
2503 <body class="@template@bodyClass" data-spforgotpwtemplate="@forgotPwTemplate" data-spforgotpwsender="@forgotPwSender" data-spforgotpwsubject="@forgotPwSubject" data-spsalesassesmentid="@salesAssessmentPageId">
2504 @{
2505 string logoUrl = TemplateUrl + (!Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg");
2506 }
2507
2508 @if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) && GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
2509 {
2510 <div class="top-search">
2511 <div class="header logo">
2512 <div class="logo">
2513 <a href="/erhverv">
2514 <img src="@logoUrl" alt="RealMæglerne" />
2515 </a>
2516 </div>
2517 </div>
2518 <div class="top-form mx-auto">
2519 <form id="main-search-top" class="js-top-search" action="/Default.aspx" method="GET">
2520 @{
2521
2522 var settings_BoligListErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : "";
2523 }
2524 <input type="hidden" name="ID" value='@settings_BoligListErhverv' id="searchPageId-top" disabled="disabled" />
2525
2526 @if (Context.Current.Request["type"] == "egetforbrug")
2527 {
2528 <input name="type" type="hidden" value="egetforbrug" />
2529 <input name="investeringsejendom" type="hidden" value="0" />
2530 }
2531 <div class="row form-wrapper no-gutters">
2532 <div class="col-xs-12 col-md-4 col-lg-5 col-searchbar">
2533 <div class="searchbar float-label-container text-left">
2534 <label class="float-label">@Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer")</label>
2535 <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)" />
2536 </div>
2537 </div>
2538 <div class="col-xs-12 col-md-5">
2539 <div class="row no-gutters">
2540 <div class="col-xs-12 col-md-6 input-col">
2541 <div class="dropdown w-overlay float-label-container">
2542 <label class="float-label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">@Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype")</label>
2543 <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>
2544 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
2545 <ul class="bolig-dropdown list-unstyled">
2546 @{
2547 RenderBoligTypeErhverv();
2548 }
2549 </ul>
2550 <span class="border-fat"></span>
2551 <div class="d-none d-md-block">
2552 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
2553 </div>
2554 <div class="d-flex row d-md-none">
2555 <div class="col-6">
2556 <button class="btn btn-danger js-remove-filter">@Translate("Smartpage:Search.Annuller", "Annuller")</button>
2557 </div>
2558 <div class="col-6">
2559 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
2560 </div>
2561 </div>
2562 </div>
2563
2564 </div>
2565 </div>
2566 <div class="col-xs-12 col-md-6 input-col">
2567 <div class="btn-dropdown p-3 border-top-bottom-right">
2568 <ul class="two-column list-unstyled">
2569 <li>
2570 <label class="checkbox-container">
2571 @Translate("Smartpage:Search.Erhverv.Leje", "Leje")
2572 <input type="checkbox" name="propertytype" value="leje" class="js-input-check" />
2573 <span class="checkmark"></span>
2574 </label>
2575 </li>
2576 <li>
2577 <label class="checkbox-container">
2578 @Translate("Smartpage:Search.Erhverv.Køb", "Køb")
2579 <input type="checkbox" name="propertytype" value="kob" class="js-input-check" />
2580 <span class="checkmark"></span>
2581 </label>
2582 </li>
2583 </ul>
2584 </div>
2585
2586 </div>
2587 </div>
2588 </div>
2589 <div class="col-xs-12 col-md-3 col-lg-2 d-none d-md-block">
2590 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
2591 </div>
2592 </div>
2593 </form>
2594 </div>
2595 </div>
2596 }
2597
2598 <div class="header logo">
2599 <div class="logo">
2600 <a href="/">
2601 <img src="@logoUrl" alt="RealMæglerne" />
2602 </a>
2603 </div>
2604 </div>
2605
2606 @if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
2607 {
2608 <div class="header shortcuts">
2609 <div class="header-shortcuts float-right">
2610 @if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
2611 {
2612 <a href='' class="search-menu d-none d-xl-flex align-items-center float-left border-right js-mainsearch topsearch @searchClass">
2613 <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>
2614 </a>
2615 }
2616 <div class="menu-slide d-flex align-items-center">
2617 <b></b>
2618 <span class="menu-text hidden d-md-block">Menu</span>
2619 </div>
2620 </div>
2621
2622
2623 </div>
2624 }
2625 else
2626 {
2627 <div class="header shortcuts">
2628 <div class="header-shortcuts float-right">
2629 @if (Model.CurrentUser?.ID > 0)
2630 {
2631 <a href='@settings_MinSide' class="login extra d-flex align-items-center float-left border-right">
2632 <i class="fa fa-user-circle" aria-hidden="true"></i><span class="hidden d-md-block">@Translate("Smartpage:Shortcuts.MinProfil", "Min profil")</span>
2633 </a>
2634 }
2635 else
2636 {
2637 <a href='javascript:panelLogin()' class="login d-flex align-items-center float-left border-right">
2638 <i class="fa fa-user-circle" aria-hidden="true"></i><span class="login-text hidden d-md-block"> @Translate("Smartpage:Shortcuts.Login", "Login")</span>
2639 </a>
2640 }
2641
2642 <a href='' class="search-menu d-flex align-items-center float-left border-right js-mainsearch @searchClass">
2643 <i class="fa fa-search" aria-hidden="true"></i><span class="search-menu-text hidden d-md-block"> @Translate("Smartpage:Search.Søg bolig", "Søg bolig")</span>
2644 </a>
2645
2646 <div class="menu-slide d-flex align-items-center">
2647 <b></b>
2648 <span class="menu-text">Menu</span>
2649 </div>
2650 </div>
2651 </div>
2652 }
2653
2654 <div class="search-modal">
2655
2656 @if (Converter.ToString(Pageview.Area.Item["Type"]) == "real")
2657 {
2658 <div class="main-search-form">
2659 <i class="fal fa-times float-right fa-2x js-close-search close-search"></i>
2660 <div class="row mb-3 align-items-center">
2661 <div class="col-xs-12 col-md-3 border-right">
2662 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
2663 </div>
2664 <div class="col-xs-12 col-md-9 home-count d-none d-md-block">
2665 <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>
2666
2667 </div>
2668 </div>
2669
2670 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET">
2671 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" />
2672 <div class="row form-wrapper no-gutters">
2673
2674 <div class="col-xs-12 col-md-5 col-searchbar">
2675 <div class="searchbar">
2676 <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)" />
2677 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" />
2678 <input type="hidden" id="zipcodeto" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" />
2679 </div>
2680 </div>
2681 <div class="col-xs-12 col-md-5">
2682 <div class="row no-gutters">
2683 <div class="col-xs-12 col-md-6 input-col">
2684 <div class="dropdown">
2685 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2686 @Translate("Smartpage:Search.Boligtype", "Boligtype")
2687 </button>
2688 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
2689 <ul class="bolig-dropdown list-unstyled">
2690 @{
2691 RenderBoligtypeCheckboxesDropdown();
2692 }
2693 </ul>
2694 <span class="border-fat"></span>
2695 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
2696 </div>
2697
2698 </div>
2699
2700 </div>
2701 <div class="col-xs-12 col-md-6 input-col">
2702 <div class="dropdown">
2703 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2704 @Translate("Smartpage:Search.Pris", "Pris")
2705 </button>
2706 <div class="dropdown-menu box-shadow dropdown-price js-dropdown-price" aria-labelledby="Pris">
2707 <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"] : "")' />
2708 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
2709 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
2710 @for (var i = 0; i <= 10000000; i += 100000)
2711 {
2712 if (i == 10000000)
2713 {
2714 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
2715 }
2716 else
2717 {
2718 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
2719 }
2720 }
2721 </select>
2722
2723 <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"] : "")' />
2724 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
2725 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
2726 @for (var i = 0; i <= 10000000; i += 100000)
2727 {
2728 if (i == 10000000)
2729 {
2730 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
2731 }
2732 else
2733 {
2734 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
2735 }
2736 }
2737 </select>
2738 </div>
2739 </div>
2740 </div>
2741 </div>
2742 </div>
2743 <div class="col-xs-12 col-md-2 d-none d-md-block">
2744 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
2745 </div>
2746 </div>
2747
2748 <div class="row moresearch-btn no-gutters">
2749 <div class="col-sm-12">
2750 <div class="row align-items-center no-gutters">
2751 <div class="col-12 col-md-4">
2752 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch">
2753 <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>
2754 </button>
2755 </div>
2756 <div class="col-6 col-md-2 mb-xs-4">
2757 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
2758 </div>
2759 </div>
2760
2761 <div class="collapse" id="moreSearch-master">
2762
2763 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
2764 <div class="row align-items-end mb-30">
2765 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
2766 <div class="filter-container row">
2767 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
2768 <div class="col-6 pr-sm-0 pr-2">
2769 <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"] : "")' />
2770 <select class="form-control js-boligarealmin-frontpage-select js-count">
2771 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
2772 @for (var i = 0; i <= 300; i += 10)
2773 {
2774 if (i == 300)
2775 {
2776 <option>@i+</option>
2777 }
2778 else
2779 {
2780 <option>@i</option>
2781 }
2782 }
2783 </select>
2784
2785 </div>
2786 <div class="col-6 pl-sm-0 pl-2">
2787 <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"] : "")' />
2788 <select class="form-control js-boligarealmax-frontpage-select js-count">
2789 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
2790 @for (var i = 0; i <= 300; i += 10)
2791 {
2792 if (i == 300)
2793 {
2794 <option>@i+</option>
2795 }
2796 else
2797 {
2798 <option>@i</option>
2799 }
2800 }
2801 </select>
2802
2803 </div>
2804 </div>
2805 </div>
2806 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
2807 <div class="filter-container row">
2808 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
2809 <div class="col-6 pr-sm-0 pr-2">
2810 <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"] : "")' />
2811 <select class="form-control js-grundarealmin-frontpage-select js-count">
2812 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
2813 @for (var i = 0; i <= 10000; i += 100)
2814 {
2815 if (i == 10000)
2816 {
2817 <option>@i+</option>
2818 }
2819 else
2820 {
2821 <option>@i</option>
2822 }
2823 }
2824 </select>
2825 </div>
2826 <div class="col-6 pl-sm-0 pl-2">
2827 <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"] : "")' />
2828 <select class="form-control js-grundarealmax-frontpage-select js-count">
2829 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
2830 @for (var i = 0; i <= 10000; i += 100)
2831 {
2832 if (i == 10000)
2833 {
2834 <option>@i+</option>
2835 }
2836 else
2837 {
2838 <option>@i</option>
2839 }
2840 }
2841 </select>
2842 </div>
2843 </div>
2844 </div>
2845 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
2846 <div class="filter-container row">
2847 <label class="d-block col-12">Antal rum</label>
2848 <div class="col-6 pr-sm-0 pr-2">
2849 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count">
2850 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
2851 @{
2852 RenderSelectValue("1", "1", "roomsmin");
2853 RenderSelectValue("2", "2", "roomsmin");
2854 RenderSelectValue("3", "3", "roomsmin");
2855 RenderSelectValue("4", "4", "roomsmin");
2856 RenderSelectValue("5+", "5", "roomsmin");
2857 }
2858 </select>
2859 </div>
2860 <div class="col-6 pl-sm-0 pl-2">
2861 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count">
2862 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
2863 @{
2864 RenderSelectValue("1", "1", "roomsmax");
2865 RenderSelectValue("2", "2", "roomsmax");
2866 RenderSelectValue("3", "3", "roomsmax");
2867 RenderSelectValue("4", "4", "roomsmax");
2868 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax");
2869 }
2870 </select>
2871 </div>
2872 </div>
2873 </div>
2874 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
2875 <div class="row">
2876 <div class="col-12 pr-2">
2877 <div class="filter-container">
2878 <label class="d-block">Energimærke</label>
2879 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count">
2880 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
2881 <option value="01">G</option>
2882 <option value="02">F</option>
2883 <option value="03">E</option>
2884 <option value="04">D</option>
2885 <option value="05">C</option>
2886 <option value="06">B</option>
2887 <option value="07">A</option>
2888 <option value="08">A2010</option>
2889 <option value="09">A2015</option>
2890 <option value="10">A2020+</option>
2891 </select>
2892 </div>
2893 </div>
2894 </div>
2895 </div>
2896 <div class="col-12 col-sm-6 col-lg-3 mt-3">
2897 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
2898 <div class="filter-container row">
2899 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
2900 <div class="col-6 pr-sm-0 pr-2">
2901 <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"] : "")' />
2902 <select class="form-control js-subsidymin-frontpage-select js-count">
2903 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
2904 @for (var i = 0; i <= 25000; i += 1250)
2905 {
2906 if (i == 25000)
2907 {
2908 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
2909 }
2910 else
2911 {
2912 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
2913 }
2914 }
2915 </select>
2916 </div>
2917 <div class="col-6 pl-sm-0 pl-2">
2918 <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"] : "")' />
2919 <select class="form-control js-subsidymax-frontpage-select js-count">
2920 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
2921 @for (var i = 0; i <= 25000; i += 1250)
2922 {
2923 if (i == 25000)
2924 {
2925 <option value="@Converter.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
2926 }
2927 else
2928 {
2929 <option value="@Converter.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
2930 }
2931 }
2932 </select>
2933 </div>
2934 </div>
2935 </div>
2936 <div class="col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0">
2937 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
2938 </div>
2939 </div>
2940 </div>
2941 </div>
2942 </div>
2943 <div class="row d-block d-md-none form-wrapper no-gutters">
2944 <div class="col-xs-12 col-md-2">
2945 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
2946 </div>
2947 </div>
2948
2949
2950 </form>
2951 </div>
2952 }
2953 else
2954 {
2955 <div class="main-search-form center">
2956 <i class="fal fa-times float-right fa-2x js-close-search"></i>
2957 <div class="row mb-3 align-items-center">
2958 <div class="col-xs-12 col-md-5 border-right">
2959 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
2960 </div>
2961 <div class="col-xs-12 col-md-7 home-count d-none d-md-block">
2962 <span class="search-count" id="searchCounterMain">0</span> <span>@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")</span>
2963 </div>
2964 </div>
2965
2966 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET">
2967 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" />
2968 <div class="row form-wrapper no-gutters">
2969
2970 <div class="col-12 mb-10">
2971 <div class="searchbar">
2972 <input type="text" name="@querySearchNameAttr" id="searchfield" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value='@querySearch' />
2973 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value='@queryZipCodeFrom' />
2974 <input type="hidden" id="zipcodeto" name="zipcodeto" value='@queryZipCodeTo' />
2975 </div>
2976 </div>
2977 <div class="col-xs-12 col-md-8">
2978 <div class="row no-gutters">
2979 <div class="col-xs-12 col-md-6 input-col">
2980 <div class="dropdown">
2981 <button class="btn btn-dropdown dropdown-toggle reverse js-count" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2982 @Translate("Smartpage:Search.Boligtype", "Boligtype")
2983 </button>
2984 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
2985 <ul class="bolig-dropdown list-unstyled">
2986 @{
2987 RenderBoligtypeCheckboxesDropdown();
2988 }
2989 </ul>
2990 <span class="border-fat"></span>
2991 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
2992 </div>
2993
2994 </div>
2995
2996 </div>
2997 <div class="col-xs-12 col-md-6 input-col">
2998 <div class="dropdown">
2999 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
3000 @Translate("Smartpage:Search.Pris", "Pris")
3001 </button>
3002 <div class="dropdown-menu box-shadow dropdown-price" aria-labelledby="Pris">
3003 <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")' />
3004 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
3005 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
3006 @for (var i = 0; i <= 10000000; i += 100000)
3007 {
3008 if (i == 10000000)
3009 {
3010 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Converter.ToInt32(i).ToString("N0")+</option>
3011 }
3012 else
3013 {
3014 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Converter.ToInt32(i).ToString("N0")</option>
3015 }
3016 }
3017 </select>
3018
3019 <input type="text" name="pricemax" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")' />
3020 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
3021 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
3022 @for (var i = 0; i <= 10000000; i += 100000)
3023 {
3024 if (i == 10000000)
3025 {
3026 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Converter.ToInt32(i).ToString("N0")+</option>
3027 }
3028 else
3029 {
3030 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Converter.ToInt32(i).ToString("N0")</option>
3031 }
3032 }
3033 </select>
3034 </div>
3035 </div>
3036 </div>
3037 </div>
3038 </div>
3039 <div class="col-xs-12 col-md-4 d-none d-md-block">
3040 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
3041 </div>
3042 </div>
3043
3044 <div class="row moresearch-btn no-gutters">
3045 <div class="col-sm-12">
3046 <div class="row align-items-center no-gutters">
3047 <div class="col-12 col-md-5">
3048 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch-master">
3049 <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>
3050 </button>
3051 </div>
3052 <div class="col-6 col-md-3 mb-xs-4">
3053 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
3054 </div>
3055 <div class="col-6 col-md-4 mb-xs-4">
3056 <div class="parent-purchases">
3057 <label class="checkbox-container white">
3058 @Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet")
3059 <input type="checkbox" name="foraeldrekoebegnet" value="true" class="js-input-check">
3060 <span class="checkmark grey"></span>
3061 </label>
3062 </div>
3063 </div>
3064 </div>
3065
3066 <div class="collapse" id="moreSearch-master">
3067
3068 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
3069 <div class="row align-items-end mb-30">
3070 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
3071 <div class="filter-container row">
3072 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
3073 <div class="col-6 pr-sm-0 pr-2">
3074 <input type="text" name="boligarealmin" id="boligarealmin" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' />
3075 <select class="form-control js-boligarealmin-frontpage-select js-count">
3076 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
3077 @for (var i = 0; i <= 300; i += 10)
3078 {
3079 if (i == 300)
3080 {
3081 <option>@i+</option>
3082 }
3083 else
3084 {
3085 <option>@i</option>
3086 }
3087 }
3088 </select>
3089 </div>
3090 <div class="col-6 pl-sm-0 pl-2">
3091 <input type="text" name="boligarealmax" id="boligarealmax" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' />
3092 <select class="form-control js-boligarealmax-frontpage-select js-count">
3093 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
3094 @for (var i = 0; i <= 300; i += 10)
3095 {
3096 if (i == 300)
3097 {
3098 <option>@i+</option>
3099 }
3100 else
3101 {
3102 <option>@i</option>
3103 }
3104 }
3105 </select>
3106 </div>
3107 </div>
3108 </div>
3109 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
3110 <div class="filter-container row">
3111 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
3112 <div class="col-6 pr-sm-0 pr-2">
3113 <input type="text" name="grundarealmin" id="grundarealmin" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' />
3114 <select class="form-control js-grundarealmin-frontpage-select js-count">
3115 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
3116 @for (var i = 0; i <= 10000; i += 100)
3117 {
3118 if (i == 10000)
3119 {
3120 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3121 }
3122 else
3123 {
3124 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3125 }
3126 }
3127 </select>
3128 </div>
3129 <div class="col-6 pl-sm-0 pl-2">
3130 <input type="text" name="grundarealmax" id="grundarealmax" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' />
3131 <select class="form-control js-grundarealmax-frontpage-select">
3132 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
3133 @for (var i = 0; i <= 10000; i += 100)
3134 {
3135 if (i == 10000)
3136 {
3137 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3138 }
3139 else
3140 {
3141 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3142 }
3143 }
3144 </select>
3145 </div>
3146 </div>
3147 </div>
3148 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
3149 <div class="filter-container row">
3150 <label class="d-block col-12">Antal rum</label>
3151
3152 <div class="col-6 pr-sm-0 pr-2">
3153 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count">
3154 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
3155 <option value="1">1</option>
3156 <option value="2">2</option>
3157 <option value="3">3</option>
3158 <option value="4">4</option>
3159 <option value="5">5+</option>
3160 </select>
3161 </div>
3162 <div class="col-6 pl-sm-0 pl-2">
3163 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count">
3164 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
3165 <option value="1">1</option>
3166 <option value="2">2</option>
3167 <option value="3">3</option>
3168 <option value="4">4</option>
3169 <option value="5">5+</option>
3170 </select>
3171 </div>
3172 </div>
3173 </div>
3174 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
3175 <div class="row">
3176 <div class="col-12 pr-2">
3177 <div class="filter-container">
3178 <label class="d-block">Energimærke</label>
3179 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count">
3180 <option disabled selected="selected">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
3181 <option value="01">G</option>
3182 <option value="02">F</option>
3183 <option value="03">E</option>
3184 <option value="04">D</option>
3185 <option value="05">C</option>
3186 <option value="06">B</option>
3187 <option value="07">A</option>
3188 <option value="08">A2010</option>
3189 <option value="09">A2015</option>
3190 <option value="10">A2020+</option>
3191 </select>
3192 </div>
3193 </div>
3194 </div>
3195 </div>
3196 <div class="col-12 col-sm-6 col-lg-6 mt-3">
3197 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
3198 <div class="filter-container row">
3199 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
3200 <div class="col-6 pr-sm-0 pr-2">
3201 <input type="text" name="subsidymin" id="subsidymin" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Min", "Min")' />
3202 <select class="form-control js-subsidymin-frontpage-select js-count">
3203 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
3204 @for (var i = 0; i <= 25000; i += 1250)
3205 {
3206 if (i == 25000)
3207 {
3208 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3209 }
3210 else
3211 {
3212 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3213 }
3214 }
3215 </select>
3216 </div>
3217 <div class="col-6 pl-sm-0 pl-2">
3218 <input type="text" name="subsidymax" id="subsidymax" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Max", "Max")' />
3219 <select class="form-control js-subsidymax-frontpage-select js-count">
3220 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
3221 @for (var i = 0; i <= 25000; i += 1250)
3222 {
3223 if (i == 25000)
3224 {
3225 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3226 }
3227 else
3228 {
3229 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3230 }
3231 }
3232 </select>
3233 </div>
3234 </div>
3235 </div>
3236 <div class="col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0">
3237 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
3238 </div>
3239 </div>
3240 </div>
3241 </div>
3242 </div>
3243 <div class="row d-block d-md-none form-wrapper no-gutters">
3244 <div class="col-xs-12 col-md-2">
3245 <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>
3246 </div>
3247 </div>
3248
3249
3250 </form>
3251 </div>
3252 }
3253 </div>
3254
3255 @{
3256 RenderSlideMenu(false, Convert.ToString(settings_Maeglersogning));
3257 }
3258
3259 @if (isBrokerPage)
3260 {
3261 <section class="maegler-navbar">
3262 @RenderNavigation(new
3263 {
3264 id = "navbar-main",
3265 cssclass = "dwnavigation",
3266 template = "ul_li.xslt",
3267 StartLevel = 1,
3268 EndLevel = 1
3269 })
3270 </section>
3271 }
3272
3273 <div class="visual-editor">
3274 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
3275
3276
3277 @using Dynamicweb.Content.Items
3278 @using Dynamicweb.Rapido.Blocks.Components
3279 @using Dynamicweb.Rapido.Blocks.Components.Articles
3280 @using Dynamicweb.Rapido.Blocks.Components.General
3281 @using Dynamicweb.Rapido.Blocks
3282
3283
3284 @functions {
3285 BlocksPage articleListPage = BlocksPage.GetBlockPage("ArticleListPage");
3286 }
3287
3288 @{
3289 int pageId = Model.ID;
3290 bool enableArticlesInFocus = Model.Item.GetBoolean("EnableArticlesInFocus");
3291 bool enablePopular = Model.Item.GetBoolean("EnablePopularArticles");
3292 bool showTitle = Model.Item.GetBoolean("ShowTitle");
3293 bool showFilters = Model.Item.GetBoolean("ShowFilters");
3294 bool showCategoryFilter = Model.Item.GetBoolean("ShowCategoryFilter");
3295 bool showSearch = Model.Item.GetBoolean("ShowSearch");
3296 string dynamicListWidth = enablePopular ? "8" : "12";
3297 string itemType = Pageview.Item["ItemTypeName"] != null ? Pageview.Item["ItemTypeName"].ToString() : "DynamicArticle";
3298
3299 Dictionary<string, string> categoriesList = new Dictionary<string, string>();
3300 categoriesList.Add(Translate("All"), "");
3301
3302 foreach (Dynamicweb.Content.Page page in Dynamicweb.Services.Pages.GetPagesByParentID(pageId))
3303 {
3304 if (Dynamicweb.Services.Pages.GetPagesByParentID(page.ID).Any())
3305 {
3306 categoriesList.Add(page.GetDisplayName(), page.ID.ToString());
3307 }
3308 }
3309
3310 var articleItemTypeFields = ItemManager.Metadata.GetItemType("DynamicArticle").Fields;
3311 string filterOneLabel = articleItemTypeFields.Find("FilterOne") != null ? articleItemTypeFields.Find("FilterOne").Name : "";
3312 string filterTwoLabel = articleItemTypeFields.Find("FilterTwo") != null ? articleItemTypeFields.Find("FilterTwo").Name : "";
3313 string filterThreeLabel = articleItemTypeFields.Find("FilterThree") != null ? articleItemTypeFields.Find("FilterThree").Name : "";
3314
3315 var filterOneOptions = articleItemTypeFields.Find("FilterOne") != null ? articleItemTypeFields.Find("FilterOne").Options.Values : null;
3316 var filterTwoOptions = articleItemTypeFields.Find("FilterTwo") != null ? articleItemTypeFields.Find("FilterTwo").Options.Values : null;
3317 var filterThreeOptions = articleItemTypeFields.Find("FilterThree") != null ? articleItemTypeFields.Find("FilterThree").Options.Values : null;
3318
3319 Block listPageContainer = new Block
3320 {
3321 Id = "ArticleListPageContainer",
3322 SortId = 10,
3323 Design = new Design
3324 {
3325 RenderType = RenderType.Row
3326 },
3327 BlocksList = new List<Block> {
3328 new Block {
3329 Id = "ArticleListPageHeader",
3330 SortId = 20,
3331 Design = new Design
3332 {
3333 RenderType = RenderType.Column,
3334 Size = "12"
3335 },
3336 BlocksList = new List<Block> {
3337 new Block {
3338 Id = "ArticleListPageHeaderRow",
3339 SortId = 10,
3340 Design = new Design
3341 {
3342 RenderType = RenderType.Row
3343 },
3344 BlocksList = new List<Block> {
3345 new Block {
3346 Id = "ArticleListFilters",
3347 SortId = 30,
3348 Design = new Design {
3349 RenderType = RenderType.Column,
3350 Size = "10",
3351 CssClass = "grid__cell"
3352 }
3353 }
3354 }
3355 }
3356 }
3357 }
3358 }
3359 };
3360 articleListPage.Add(listPageContainer);
3361
3362 if (Pageview.Device.ToString() == "Mobile" || Pageview.Device.ToString() == "Tablet") {
3363 Block listFilters = articleListPage.GetBlockById("ArticleListFilters");
3364 listFilters.Template = RenderMobileFilters(listFilters.BlocksList);
3365 listFilters.SkipRenderBlocksList = true;
3366 }
3367
3368 if (showTitle) {
3369 Block titleBlock = new Block
3370 {
3371 Id = "ArticleListTitle",
3372 SortId = 10,
3373 Component = new Heading { Title = Pageview.Item["Title"].ToString(), Level = 2 },
3374 Design = new Design
3375 {
3376 RenderType = RenderType.Column,
3377 Size = "2"
3378 }
3379 };
3380 articleListPage.Add("ArticleListPageHeaderRow", titleBlock);
3381 }
3382
3383 if (showSearch)
3384 {
3385 Block searchFilter = new Block
3386 {
3387 Id = "ArticleListSearch",
3388 SortId = 10,
3389 Component = new ArticleListSearch { }
3390 };
3391 articleListPage.Add("ArticleListFilters", searchFilter);
3392 }
3393
3394 if (showCategoryFilter)
3395 {
3396 Block categoryFilter = new Block
3397 {
3398 Id = "ArticleListCategoryFilter",
3399 SortId = 20,
3400 Component = new ArticleListCategoryFilter { Categories = categoriesList }
3401 };
3402 articleListPage.Add("ArticleListFilters", categoryFilter);
3403 }
3404
3405 Block listBody = new Block
3406 {
3407 Id = "ArticleListPageBody",
3408 SortId = 30,
3409 Design = new Design
3410 {
3411 RenderType = RenderType.Column,
3412 Size = dynamicListWidth
3413 }
3414 };
3415 articleListPage.Add("ArticleListPageContainer", listBody);
3416
3417 Block listBodyRow = new Block
3418 {
3419 Id = "ArticleListPageBodyRow",
3420 SortId = 10,
3421 Design = new Design
3422 {
3423 RenderType = RenderType.Row
3424 }
3425 };
3426 articleListPage.Add("ArticleListPageBody", listBodyRow);
3427
3428 if (enableArticlesInFocus) {
3429 Block listInFocus = new Block
3430 {
3431 Id = "ArticleListInFocus",
3432 SortId = 10,
3433 Component = new ArticleList { Filter = "InFocus=True", Template = "ItemPublisher/List/FocusList.cshtml", PageSize = Convert.ToInt32(Pageview.Item["ArticlesInFocusListSize"].ToString()), ItemType = itemType },
3434 Design = new Design
3435 {
3436 RenderType = RenderType.Column,
3437 Size = "12",
3438 HidePadding = true
3439 }
3440 };
3441 articleListPage.Add("ArticleListPageBodyRow", listInFocus);
3442 }
3443
3444 Block listMain = new Block
3445 {
3446 Id = "ArticleListMain",
3447 SortId = 20,
3448 Component = new ArticleList { Template = "ItemPublisher/List/DynamicList.cshtml", PageSize = Convert.ToInt32(Pageview.Item["ArticlesListSize"].ToString()), ItemType = itemType },
3449 Design = new Design
3450 {
3451 RenderType = RenderType.Column,
3452 Size = "12",
3453 HidePadding = true
3454 }
3455 };
3456 articleListPage.Add("ArticleListPageBodyRow", listMain);
3457
3458 if (enablePopular)
3459 {
3460 Block listPopular = new Block
3461 {
3462 Id = "ArticleListPopular",
3463 SortId = 30,
3464 Component = new ArticleList { Template = "ItemPublisher/List/SimpleList.cshtml", PageSize = Convert.ToInt32(Pageview.Item["PopularArticlesListSize"].ToString()), ItemType = itemType },
3465 Design = new Design
3466 {
3467 RenderType = RenderType.Column,
3468 Size = "4",
3469 CssClass = "u-padding--lg"
3470 }
3471 };
3472 articleListPage.Add("ArticleListPageContainer", listPopular);
3473 }
3474
3475 if (showFilters) {
3476 if (filterOneOptions != null)
3477 {
3478 Block filterOne = new Block
3479 {
3480 Id = "ArticleListFilterOne",
3481 SortId = 30,
3482 Component = new ArticleListFilter { Options = filterOneOptions, Label = filterOneLabel, SystemName = "FilterOne" }
3483 };
3484 articleListPage.Add("ArticleListFilters", filterOne);
3485 }
3486
3487 if (filterTwoOptions != null)
3488 {
3489 Block filterTwo = new Block
3490 {
3491 Id = "ArticleListFilterTwo",
3492 SortId = 40,
3493 Component = new ArticleListFilter { Options = filterTwoOptions, Label = filterTwoLabel, SystemName = "FilterTwo" }
3494 };
3495 articleListPage.Add("ArticleListFilters", filterTwo);
3496 }
3497
3498 if (filterThreeOptions != null)
3499 {
3500 Block filterThree = new Block
3501 {
3502 Id = "ArticleListFilterThree",
3503 SortId = 50,
3504 Component = new ArticleListFilter { Options = filterThreeOptions, Label = filterThreeLabel, SystemName = "FilterThree" }
3505 };
3506 articleListPage.Add("ArticleListFilters", filterThree);
3507 }
3508 }
3509 }
3510
3511
3512 @* The @RenderBlockList base helper is included in Components/GridBuilder.cshtml *@
3513
3514 @RenderBlockList(articleListPage.BlocksRoot.BlocksList)
3515
3516
3517 <script>
3518 document.getElementById("Page").classList.add("u-color-light-gray--bg");
3519 </script>
3520 </div>
3521
3522 @if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true)
3523 {
3524 string bName = MyBroker.Broker.Name;
3525 string bClass = "na";
3526 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png";
3527
3528 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName))
3529 {
3530 bName = MyBroker.Broker.CompanyName;
3531 }
3532 try
3533 {
3534 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl");
3535 if (!string.IsNullOrEmpty(imgUrl))
3536 {
3537 bImage = imgUrl;
3538 bClass = "";
3539 }
3540 }
3541 catch
3542 {
3543 // Ignore
3544 }
3545
3546 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId");
3547 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
3548
3549 <section class="din-maegler">
3550 <div class="img-wrapper @bClass" style="background-image:url('@bImage')"></div>
3551 <div class="container">
3552 <div class="col-12 col-sm-12 col-md-6 offset-md-6">
3553 <h2>Din personlige mægler</h2>
3554 <div class="row">
3555 <div class="col-12 col-sm-6">
3556 <p>
3557 <b class="my-broker-name">@MyBroker.Employee.Name</b><br>
3558 @if (!string.IsNullOrEmpty(MyBroker.Employee.Email))
3559 {
3560 <text>Mail: <a href="mailto:@(ExtractMaskedEmail(MyBroker.Employee.Email))" class="my-broker-email">@ExtractMaskedEmail(MyBroker.Employee.Email)</a><br></text>
3561 }
3562 @if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile))
3563 {
3564 <text>Tlf.: <a href="tel:@(MyBroker.Employee.PhoneMobile)" class="my-broker-phone">@FormatPhoneNumber(MyBroker.Employee.PhoneMobile)</a></text>
3565 }
3566 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
3567 {
3568 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-phone">@FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text>
3569 }
3570 </p>
3571 </div>
3572 <div class="col-12 col-sm-6">
3573 <p>
3574 <b class="my-broker-company-name">@bName</b><br>
3575 <span class="my-broker-company-address">@MyBroker.Broker.Address</span><br>
3576 <span class="my-broker-company-zip">@MyBroker.Broker.ZipCode</span> <span class="my-broker-company-city">@MyBroker.Broker.City</span><br>
3577 @if (!string.IsNullOrEmpty(bEmail))
3578 {
3579 <text>Mail: <a href="mailto:@(bEmail)" class="my-broker-broker-email">@bEmail</a><br></text>
3580 }
3581 @if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
3582 {
3583 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-broker-phone">@FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text>
3584 }
3585 </p>
3586 </div>
3587 </div>
3588 <div class="row">
3589 <br />
3590 <div class="col-12 col-sm-6">
3591 <a href="/@medlemsnummer.Substring(1)" class="btn btn-primary btn-block my-broker-company-url">Til mæglerens side</a>
3592 </div>
3593
3594 </div>
3595 </div>
3596 </div>
3597 </section>
3598 }
3599 <footer>
3600 <div class="container">
3601 <div class="row">
3602 @{
3603 var navigationSettings = new NavigationSettings();
3604 navigationSettings.StartLevel = 1;
3605 navigationSettings.StopLevel = 3;
3606 navigationSettings.ExpandMode = ExpandMode.All;
3607 navigationSettings.RootAreaId = 1;
3608 navigationSettings.RootNavigationTag = "footer-nav";
3609
3610 }
3611 @Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings)
3612 </div>
3613 </div>
3614 </footer>
3615
3616 @if (Model.CurrentUser?.ID <= 0)
3617 {
3618 <div id="panel-login" class="panel panel-form">
3619 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3620 <b></b>
3621 </button>
3622 <div class="loginform login">
3623 @if (loginParagraphId > 0)
3624 {
3625 <text>
3626 @RenderParagraphContent(loginParagraphId)
3627 </text>
3628 }
3629 </div>
3630 <div class="loginform register js-register-form-wrapper" style="display: none;">
3631 @if (createUserParagraphId > 0)
3632 {
3633 <text>
3634 @RenderParagraphContent(createUserParagraphId)
3635 </text>
3636 }
3637 </div>
3638 <div class="loginform forgotpw" style="display: none;">
3639 <h2 class="forgotpw-reg">@Translate("forgot-pw-reg-title", "Glemt adgangskode")</h2>
3640 <h2 class="forgotpw-broker">@Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")</h2>
3641 <form id="forgotPwForm" class="form-body" method="post" action="">
3642 <input type="hidden" id="AccessUserShopID" name="AccessUserShopID" value="SHOP6" />
3643 <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>
3644 <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>
3645 <div class="form-group">
3646 <input id="AccessUserEmail" name="AccessUserEmail" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" placeholder="E-mail" class="form-control" required />
3647 </div>
3648 <button class="btn btn-primary btn-block" type="submit">@Translate("forgot-pw-cta", "Nulstil adgangskode")</button>
3649 <br />
3650 <div id="submitMessage"></div>
3651 </form>
3652 </div>
3653 </div>
3654 }
3655
3656 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel>
3657 @using Dynamicweb.Security.UserManagement
3658
3659 @{
3660 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");
3661 }
3662
3663 <div id="panel-kontakt-koeberraadgivning" class="panel panel-form">
3664 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3665 <b></b>
3666 </button>
3667 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2>
3668 <form id="form-koeberraadgivning" method="POST" action="/InboxHandler">
3669 <div class="form-group">
3670 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
3671 <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 />
3672 </div>
3673 <div class="form-group">
3674 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
3675 <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 />
3676 </div>
3677 <div class="form-group row mb-4">
3678 <div class="col-6">
3679 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
3680 <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 />
3681 </div>
3682 <div class="col-6">
3683 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
3684 <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' />
3685 </div>
3686 </div>
3687 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
3688 <div class="form-group row">
3689 <div class="col-4">
3690 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
3691 <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 />
3692 <input type="hidden" class="js-postnummer-validation" />
3693 </div>
3694 <div class="col-8">
3695 <label><strong>@Translate("form-city", "By")*</strong></label>
3696 <input class="form-control js-city" type="text" readonly />
3697 </div>
3698 </div>
3699 <div class="form-group overflow-unset">
3700 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
3701 <input class="form-control js-validate-address" type="text" name="adresse" tabindex="6" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' required />
3702
3703 <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>
3704 </div>
3705 <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">
3706 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
3707 </button>
3708 <div class="collapse" id="kontaktkoeberrradgiver-collapse">
3709 <div class="form-group">
3710 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
3711 </div>
3712 </div>
3713
3714 <div class="form-group">
3715 <div class="row">
3716 <div class="col-12">
3717 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button>
3718 </div>
3719 </div>
3720 </div>
3721 <div class="form-group mt-3">
3722 <div class="checkbox">
3723 <label>
3724 <input type="checkbox" name="kontaktmigok" required />
3725
3726 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
3727
3728 </label>
3729 </div>
3730 </div>
3731 <div class="form-group form-group-terms">
3732 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
3733 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
3734 </div>
3735
3736 <input type="hidden" name="fn" value="krk" />
3737 <input type="hidden" name="origin" value="" />
3738 <input type="hidden" name="brugerId" value="" />
3739 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
3740 <input type="hidden" name="butikId" value="@butikId" />
3741 <input type="hidden" name="ejendomstype" value="" />
3742 <input type="hidden" name="salgspris" value="" />
3743 <input type="hidden" name="modtager" value="" />
3744 </form>
3745 <div id="tak-kontakt-advisor" style="display:none;">
3746 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
3747 <div class="row">
3748 <div class="col-6">
3749 <img src="" class="img-fluid js-maegler-img" />
3750 </div>
3751 <div class="col-6">
3752 <p class="js-maegler-name"></p>
3753 <p class="js-maegler-address"></p>
3754 <p class="js-maegler-phone"></p>
3755 <p class="js-maegler-mail"></p>
3756 </div>
3757 </div>
3758 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
3759 </div>
3760 </div>
3761
3762 <!--ÅBENT HUS-->
3763 <div id="panel-aabenthus" class="panel panel-form">
3764 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3765 <b></b>
3766 </button>
3767
3768
3769 <form id="form-aabenthus" method="POST" action="/InboxHandler">
3770 <h2>@Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")</h2>
3771 <div class="d-block">
3772 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label>
3773 </div>
3774 <div class="d-block">
3775 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label>
3776 </div>
3777 <div class="d-block mb-4">
3778 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label>
3779 </div>
3780 <h3>@Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")</h3>
3781 <div class="form-group">
3782 <label for="aabenthus-name"><strong>@Translate("form-navn", "Navn")*</strong></label>
3783 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current?.User?.Name' required />
3784 </div>
3785 <div class="form-group">
3786 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
3787 <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 />
3788 </div>
3789 <div class="form-group row">
3790 <div class="col-6">
3791 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
3792 <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 />
3793 </div>
3794 <div class="col-6">
3795 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
3796 <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' />
3797 </div>
3798 </div>
3799 <div class="form-group">
3800 <div class="row">
3801 <div class="col-12">
3802 <button type="submit" class="btn btn-block btn-green">@Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")</button>
3803 </div>
3804 </div>
3805 </div>
3806 <div class="form-group">
3807 <div class="checkbox">
3808 <label>
3809 <input type="checkbox" name="kontaktmigok" required />
3810
3811 <span class="base-color">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
3812
3813 </label>
3814 </div>
3815 </div>
3816 <div class="form-group">
3817 @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>")
3818
3819 </div>
3820 <input type="hidden" name="fn" value="ah" />
3821 <input type="hidden" name="origin" value="" />
3822 <input type="hidden" name="brugerId" value="@userID" />
3823 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
3824 <input type="hidden" name="butikId" value="@butikId" />
3825 <input type="hidden" name="sagsaddresse" value="" class="js-aabenthus-address-input" />
3826 <input type="hidden" name="ejendomstype" value="" />
3827 <input type="hidden" name="salgspris" value="" />
3828 <input type="hidden" name="modtager" value="" />
3829 <input type="hidden" name="employee" value="" />
3830 <input type="hidden" name="sagsnr" value="" class="js-sagsnr" />
3831 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
3832 <input type="hidden" name="aftaleid" value="" class="js-aftaleid" />
3833
3834 <input type="hidden" name="dateMail" class="js-aabenthus-date-input" />
3835 <input type="hidden" name="timeMail" class="js-aabenthus-time-input" />
3836 <input type="hidden" name="brokerImageMail" class="property-broker-image-input" />
3837 <input type="hidden" name="employeeNameMail" class="js-maegler-employee-name-input" />
3838 <input type="hidden" name="employeeTitleMail" class="js-maegler-employee-title-input" />
3839 <input type="hidden" name="employeeMailMail" class="js-maegler-mail-input" />
3840 <input type="hidden" name="employeeMobileMail" class="js-maegler-mobile-input" />
3841 <input type="hidden" name="employeePhoneMail" class="js-maegler-phone-input" />
3842
3843 <input type="hidden" name="brokerNameMail" class="js-broker-name-input" />
3844 <input type="hidden" name="brokerAddressMail" class="js-broker-address-input" />
3845 <input type="hidden" name="brokerPhoneMail" class="js-broker-phone-input" />
3846 </form>
3847 <div id="tak-aabenthus" style="display:none;">
3848 <h2>@Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")</h2>
3849 <div class="d-block">
3850 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label>
3851 </div>
3852 <div class="d-block">
3853 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label>
3854
3855 </div>
3856 <div class="d-block mb-4">
3857 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label>
3858
3859 </div>
3860
3861 <div class="js-employee">
3862 <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>
3863 </div>
3864 <div class="js-not-employee">
3865 <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>
3866 </div>
3867
3868 <div class="row">
3869 <div class="js-employee">
3870 <div class="col-12 js-maegler-img aabenthus-image">
3871 <div class="property-broker-image" style=""></div>
3872
3873 </div>
3874 </div>
3875 <div class="col-12">
3876 <div class="bg-base">
3877
3878 <div class="js-employee">
3879 <h4 class="js-maegler-employee-name"></h4>
3880 <div class="icon-container">
3881 <i class="fas fa-envelope"></i> <span class="js-maegler-mail"></span>
3882 </div>
3883 <div class="icon-container">
3884 <i class="fas fa-phone"></i> <span class="js-maegler-mobile"></span>
3885 </div>
3886 </div>
3887
3888
3889 <h4 class="js-maegler-name"></h4>
3890 <div class="icon-container">
3891 <i class="fas fa-map-marker-alt"></i> <span class="js-maegler-address"></span>
3892 </div>
3893 <div class="icon-container">
3894 <i class="fas fa-phone"></i> <span class="js-maegler-phone"></span>
3895
3896 </div>
3897 <a class="btn btn-border" onclick="panelKontaktmaeglerGuldkoeber()">KONTAKT MÆGLER</a>
3898 </div>
3899 </div>
3900 </div>
3901 </div>
3902 </div>
3903
3904 <!-- KONTAKT GULDKØBER -->
3905 <div id="panel-kontakt-guldkoeber" class="panel panel-form">
3906 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3907 <b></b>
3908 </button>
3909 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2>
3910 <form id="form-kontaktmaegler" method="POST" action="/InboxHandler">
3911 <div class="form-group">
3912 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
3913 <input class="form-control" type="text" name="navn" placeholder='@Translate("form-navn", "Navn")' value='@UserContext.Current.User?.Name' required />
3914 </div>
3915 <div class="form-group">
3916 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
3917 <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 />
3918 </div>
3919 <div class="form-group row mb-4">
3920 <div class="col-6">
3921 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
3922 <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 />
3923 </div>
3924 <div class="col-6">
3925 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
3926 <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' />
3927 </div>
3928 </div>
3929 <div class="form-group row">
3930 <div class="col-4">
3931 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
3932 <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 />
3933 <input type="hidden" class="js-postnummer-validation" />
3934 </div>
3935 <div class="col-8">
3936 <label><strong>@Translate("form-city", "By")*</strong></label>
3937 <input class="form-control js-city" type="text" readonly />
3938 </div>
3939 </div>
3940
3941 <div class="form-group overflow-unset">
3942 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
3943 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
3944 <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>
3945 </div>
3946 <div class="form-group">
3947 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
3948 </div>
3949 <div class="form-group">
3950 <div class="checkbox">
3951 <label>
3952 <input type="checkbox" name="kontaktmigok" required />
3953
3954 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
3955
3956 </label>
3957 </div>
3958 </div>
3959 <div class="form-group">
3960 <div class="row">
3961 <div class="col-12">
3962 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button>
3963 </div>
3964 </div>
3965 </div>
3966 <div class="form-group form-group-terms">
3967 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
3968 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
3969 </div>
3970 <input type="hidden" name="fn" value="gk" />
3971 <input type="hidden" name="origin" value="" />
3972 <input type="hidden" name="brugerId" value="@userID" />
3973 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
3974 <input type="hidden" name="butikId" value="@butikId" />
3975 <input type="hidden" name="ejendomstype" value="" />
3976 <input type="hidden" name="salgspris" value="" />
3977 <input type="hidden" name="modtager" value="" />
3978 <input type="hidden" name="employee" value="" />
3979 </form>
3980 <div id="tak-kontakt-maegler-guldkoeber" style="display:none;">
3981 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
3982 <p>@Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")</p>
3983 <div class="row">
3984 <div class="col-6">
3985 <img src="" class="img-fluid js-maegler-img" />
3986 </div>
3987 <div class="col-6">
3988 <p class="js-maegler-name"></p>
3989 <p class="js-maegler-address"></p>
3990 <p class="js-maegler-phone"></p>
3991 <p class="js-maegler-mail"></p>
3992 </div>
3993 </div>
3994 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
3995 </div>
3996 </div>
3997
3998 <!-- BESTIL SALGSVURDERING -->
3999 <div id="panel-salgsvurdering" class="panel panel-form">
4000 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4001 <b></b>
4002 </button>
4003
4004 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler">
4005 <h2 class="js-buyer-advisor-header">@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2>
4006 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
4007 <div class="form-group">
4008 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
4009 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required />
4010 </div>
4011 <div class="form-group">
4012 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4013 <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 />
4014 </div>
4015 <div class="form-group row mb-4">
4016 <div class="col-6">
4017 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4018 <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 />
4019 </div>
4020 <div class="col-6">
4021 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4022 <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' />
4023 </div>
4024
4025 </div>
4026
4027 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
4028 <div class="form-group row">
4029 <div class="col-4">
4030 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
4031 <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 />
4032 <input type="hidden" class="js-postnummer-validation" />
4033 </div>
4034 <div class="col-8">
4035 <label><strong>@Translate("form-city", "By")*</strong></label>
4036 <input class="form-control js-city" type="text" readonly />
4037 </div>
4038 </div>
4039 <div class="form-group overflow-unset">
4040 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
4041 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
4042 <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>
4043 </div>
4044
4045 <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">
4046 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
4047 </button>
4048 <div class="collapse" id="salgsvurdering-collapse">
4049 <div class="form-group">
4050 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4051 </div>
4052 </div>
4053
4054
4055 <div class="salgsvurdering-precheck">
4056 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3>
4057 <div class="col-12">
4058 <div class="choose-broker row align-items-center active">
4059 <div class="col-2">
4060 <input class="js-broker-radio" type="radio" id="" name="choose-broker" value="" checked>
4061 <label class="js-broker-label" for=""></label><div class="check">
4062 <div class="inside">
4063 </div>
4064 </div>
4065 </div>
4066 <div class="col-4">
4067 <img src="" class="img-fluid js-broker-image">
4068 </div>
4069 <div class="col-6">
4070 <span class="d-block">
4071 <strong class="js-choose-broker-name"></strong>
4072 </span>
4073 <span class="js-choose-broker-address"></span>
4074 <input type="hidden" class="js-choose-broker-phone" value="" />
4075 <input type="hidden" class="js-choose-broker-email" value="" />
4076 </div>
4077 </div>
4078 </div>
4079 </div>
4080 <div class="salgsvurdering-broker">
4081 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3>
4082 <div class="js-choose-broker col-12">
4083 </div>
4084
4085 </div>
4086
4087 <div class="form-group mt-4">
4088 <div class="checkbox">
4089 <label>
4090 <input type="checkbox" name="kontaktmigok" required />
4091
4092 <span class="consent-checkbox">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4093
4094 </label>
4095 </div>
4096 </div>
4097 <div class="form-group">
4098 <div class="row">
4099 <div class="col-12">
4100 <button type="submit" class="btn btn-green btn-block js-buyer-advisor-button">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button>
4101 </div>
4102 </div>
4103 </div>
4104 <div class="form-group form-group-terms">
4105 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4106 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4107 </div>
4108 <input type="hidden" name="fn" value="bsv" />
4109 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" />
4110 <input type="hidden" name="brugerId" value="@userID" />
4111 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4112 <input type="hidden" id="boligvisning" name="boligvisning" value="" />
4113 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="" />
4114 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" />
4115 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
4116 <input type="hidden" name="ejendomstype" value="" />
4117 <input type="hidden" name="salgspris" value="" />
4118 <input type="hidden" name="employee" value="" />
4119 <input type="hidden" name="modtager" value="" />
4120 <input class="js-value-check" type="hidden" name="valueCheck" value="" />
4121 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" />
4122 </form>
4123 <div id="tak-salgsvurdering" style="display:none;">
4124 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4125 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p>
4126 <div class="row">
4127 <div class="col-6">
4128 <img src="" class="img-fluid js-maegler-img" />
4129 </div>
4130 <div class="col-6">
4131 <p class="js-maegler-name"></p>
4132 <p class="js-maegler-address"></p>
4133 <p class="js-maegler-phone"></p>
4134 <p class="js-maegler-mail"></p>
4135 </div>
4136 </div>
4137 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4138 </div>
4139 </div>
4140
4141 <!-- BESTIL SALGSVURDERING GULDKØBER -->
4142 <div id="panel-salgsvurdering-guldkoeber" class="panel panel-form">
4143 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4144 <b></b>
4145 </button>
4146
4147 <form id="bestil-salgsvurdering-guldkoeber" method="POST" action="/InboxHandler">
4148 <h2>@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2>
4149 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
4150 <div class="form-group">
4151 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
4152 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required />
4153 </div>
4154 <div class="form-group">
4155 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4156 <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 />
4157 </div>
4158 <div class="form-group row mb-4">
4159 <div class="col-6">
4160 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4161 <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' />
4162 </div>
4163 <div class="col-6">
4164 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4165 <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 />
4166 </div>
4167 </div>
4168
4169 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
4170
4171 <div class="form-group row">
4172 <div class="col-4">
4173 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
4174 <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 />
4175 <input type="hidden" class="js-postnummer-validation" />
4176 </div>
4177 <div class="col-8">
4178 <label><strong>@Translate("form-city", "By")*</strong></label>
4179 <input class="form-control js-city" type="text" readonly />
4180 </div>
4181 </div>
4182 <div class="form-group overflow-unset">
4183 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
4184 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
4185 <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>
4186 </div>
4187
4188 <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">
4189 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
4190 </button>
4191 <div class="collapse" id="salgsvurdering-collapse">
4192 <div class="form-group">
4193 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4194 </div>
4195 </div>
4196
4197 <div class="salgsvurdering-precheck">
4198 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3>
4199 <div class="col-12">
4200 <div class="choose-broker row align-items-center active">
4201 <div class="col-2">
4202 <input class="js-broker-radio" type="radio" id="" name="choose-broker-gk" value="" checked>
4203 <label class="js-broker-label" for=""></label><div class="check">
4204 <div class="inside">
4205 </div>
4206 </div>
4207 </div>
4208 <div class="col-4">
4209 <img src="" class="img-fluid js-broker-image">
4210 </div>
4211 <div class="col-6">
4212 <span class="d-block">
4213 <strong class="js-choose-broker-name"></strong>
4214 </span>
4215 <span class="js-choose-broker-address"></span>
4216 <input type="hidden" class="js-choose-broker-phone" value="" />
4217 <input type="hidden" class="js-choose-broker-email" value="" />
4218 </div>
4219 </div>
4220 </div>
4221 </div>
4222 <div class="salgsvurdering-broker">
4223 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3>
4224 <div class="js-choose-broker col-12">
4225 </div>
4226
4227 </div>
4228
4229
4230 <div class="form-group">
4231 <div class="row">
4232 <div class="col-12">
4233 <button type="submit" class="btn btn-green btn-block">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button>
4234 </div>
4235 </div>
4236 </div>
4237 <div class="form-group">
4238 <div class="checkbox">
4239 <label>
4240 <input type="checkbox" name="kontaktmigok" required />
4241
4242 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4243
4244 </label>
4245 </div>
4246 </div>
4247 <div class="form-group form-group-terms">
4248 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4249 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4250 </div>
4251 <input type="hidden" name="fn" value="bsg" />
4252 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" />
4253 <input type="hidden" name="brugerId" value="@userID" />
4254 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4255 <input type="hidden" id="boligvisning-gk" name="boligvisning" value="" />
4256 <input type="hidden" id="panel-salgsvurdering-gk-butikid" name="butikId" value="" />
4257 <input type="hidden" id="panel-salgsvurdering-gk-sagsnr" name="sagsnr" value="" />
4258 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
4259 <input type="hidden" name="ejendomstype" value="" />
4260 <input type="hidden" name="salgspris" value="" />
4261 <input type="hidden" name="employee" value="" />
4262 <input type="hidden" name="modtager" value="" />
4263 </form>
4264 <div id="tak-salgsvurdering" style="display:none;">
4265 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4266 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p>
4267 <div class="row">
4268 <div class="col-6">
4269 <img src="" class="img-fluid js-maegler-img" />
4270 </div>
4271 <div class="col-6">
4272 <p class="js-maegler-name"></p>
4273 <p class="js-maegler-address"></p>
4274 <p class="js-maegler-phone"></p>
4275 <p class="js-maegler-mail"></p>
4276 </div>
4277 </div>
4278 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4279 </div>
4280 </div>
4281
4282
4283 <div class="overlay-wrapper"></div>
4284 <div class="dropdown-overlay"></div>
4285 <div class="loader-inner ball-pulse"></div>
4286
4287 @{
4288 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js"));
4289 <script type="text/javascript" src='@(TemplateUrl)assets/webpack/js/3rdparty/viamapstrap.js?@(viamapstrapFileInfo.LastWriteTime.Ticks)' async></script>
4290
4291 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js"));
4292 <script type="text/javascript" src='@(TemplateUrl)assets/dist/bundle.app.min.js?@(bundleFileInfo.LastWriteTime.Ticks)' async></script>
4293 }
4294
4295 @RenderSnippet("JavaScriptBottom")
4296
4297 @if (Context.Current.Request.QueryString["ShowLogin"] == "true")
4298 {
4299 <input class="js-showLogin" value="true" />
4300 }
4301
4302 @if (!string.IsNullOrEmpty(settings_ConduzeId))
4303 {
4304 <script type="text/javascript" id="conduze-sdk" src="https://cdn.conduze.com/@settings_ConduzeId/tracking.js" async></script>
4305 }
4306
4307 @if (!string.IsNullOrEmpty(settings_Weply))
4308 {
4309 <script src="https://app.weply.chat/widget/@settings_Weply" async></script>
4310 }
4311
4312 </body>
4313 </html>
4314
4315