Error compiling template "Designs/rm/DynamicArticle.cshtml"
Line 21: The using directive for 'Dynamicweb.Content.Items' appeared previously in this namespace
Line 22: The using directive for 'Dynamicweb.Frontend.Navigation' appeared previously in this namespace
Line 23: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 25: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 26: The using directive for 'System.Text.RegularExpressions' appeared previously in this namespace
Line 33: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 34: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 36: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 38: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 39: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 40: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 41: The using directive for 'System.Reflection' appeared previously in this namespace
Line 42: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 43: The using directive for 'System.Reflection' appeared previously in this namespace
Line 44: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 45: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 46: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 47: The using directive for 'System.Text.RegularExpressions' appeared previously in this namespace
Line 48: The using directive for 'System.Reflection' appeared previously in this namespace
Line 49: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 50: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 51: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 52: The using directive for 'System.Reflection' appeared previously in this namespace
Line 53: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 54: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 55: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 56: The using directive for 'System.Reflection' appeared previously in this namespace
Line 57: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 58: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 59: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 60: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 61: The using directive for 'System.Reflection' appeared previously in this namespace
Line 62: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 63: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 64: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 65: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 66: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 68: The using directive for 'System.Reflection' appeared previously in this namespace
Line 69: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 70: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 71: The using directive for 'System.Reflection' appeared previously in this namespace
Line 72: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 73: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 74: The using directive for 'System.Reflection' appeared previously in this namespace
Line 75: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 76: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 77: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 78: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 79: The using directive for 'System.Reflection' appeared previously in this namespace
Line 80: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 81: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 82: The using directive for 'System.Reflection' appeared previously in this namespace
Line 83: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 84: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 85: The using directive for 'System.Reflection' appeared previously in this namespace
Line 86: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 87: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 88: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 89: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 90: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 91: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 92: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 93: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 94: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 95: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 97: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 98: The using directive for 'Dynamicweb.Rapido.Blocks.Components' appeared previously in this namespace
Line 99: The using directive for 'Dynamicweb.Rapido.Blocks.Components.Articles' appeared previously in this namespace
Line 100: The using directive for 'Dynamicweb.Rapido.Blocks.Components.General' appeared previously in this namespace
Line 101: The using directive for 'Dynamicweb.Rapido.Blocks' appeared previously in this namespace
Line 102: The using directive for 'Dynamicweb.Content.Items' appeared previously in this namespace
Line 104: The using directive for 'Dynamicweb.Core' appeared previously in this namespace
Line 105: The using directive for 'Dynamicweb.Core.Encoders' appeared previously in this namespace
Line 1693: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 1694: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1696: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1698: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1785: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1786: 'ListViewModel.Options' is obsolete: 'Use the GetAllOptions extension method instead'
Line 1822: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1961: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1981: Argument 1: cannot convert from 'void' to 'object'
Line 5172: The variable 'placeholderImage' is assigned but its value is never used
Line 5816: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5842: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5844: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5846: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5848: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5861: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5863: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5865: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5867: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5870: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
1 // <auto-generated/>
2 #pragma warning disable 1591
3 namespace CompiledRazorTemplates.Dynamic
4 {
5 #line hidden
6 using System.Threading.Tasks;
7 using System.Linq;
8 using System;
9 using System.Globalization;
10 using System.Text.RegularExpressions;
11 using Custom.Integration.Brokers;
12 using RealMaeglerne.Dynamicweb;
13 using Dynamicweb.Content.Items;
14 using Dynamicweb.Environment;
15 using Newtonsoft.Json;
16 using Dynamicweb.Logging;
17 using Dynamicweb.Core;
18 using Dynamicweb.Frontend.Navigation;
19 using Dynamicweb;
20 using static RealMaeglerne.Library.Helper;
21 using Dynamicweb.Content.Items;
22 using Dynamicweb.Frontend.Navigation;
23 using Dynamicweb.Core;
24 using Dynamicweb.Core.Encoders;
25 using Dynamicweb;
26 using System.Text.RegularExpressions;
27 using System.Collections.Generic;
28 using System.Reflection;
29 using Dynamicweb.Rapido.Blocks.Components;
30 using Dynamicweb.Rapido.Blocks.Components.Articles;
31 using Dynamicweb.Rapido.Blocks.Components.Documentation;
32 using Dynamicweb.Rapido.Blocks;
33 using Dynamicweb;
34 using Dynamicweb.Rapido.Blocks.Components;
35 using Dynamicweb.Rapido.Blocks.Components.General;
36 using Dynamicweb.Rapido.Blocks;
37 using System.IO;
38 using Dynamicweb.Rapido.Blocks.Components;
39 using Dynamicweb.Rapido.Blocks.Components.General;
40 using Dynamicweb.Rapido.Blocks;
41 using System.Reflection;
42 using Dynamicweb.Rapido.Blocks.Components.General;
43 using System.Reflection;
44 using Dynamicweb.Rapido.Blocks.Components.General;
45 using Dynamicweb.Rapido.Blocks.Components;
46 using Dynamicweb.Core;
47 using System.Text.RegularExpressions;
48 using System.Reflection;
49 using Dynamicweb.Rapido.Blocks.Components.General;
50 using Dynamicweb.Rapido.Blocks.Components;
51 using Dynamicweb.Core;
52 using System.Reflection;
53 using Dynamicweb.Rapido.Blocks.Components;
54 using Dynamicweb.Rapido.Blocks.Components.General;
55 using Dynamicweb.Rapido.Blocks;
56 using System.Reflection;
57 using Dynamicweb.Rapido.Blocks.Components.General;
58 using Dynamicweb.Rapido.Blocks.Components;
59 using Dynamicweb.Rapido.Blocks.Components.General;
60 using Dynamicweb.Rapido.Blocks.Components;
61 using System.Reflection;
62 using Dynamicweb.Rapido.Blocks.Components.General;
63 using Dynamicweb.Core;
64 using Dynamicweb.Rapido.Blocks.Components;
65 using Dynamicweb.Rapido.Blocks.Components.General;
66 using Dynamicweb.Rapido.Blocks;
67 using Dynamicweb.Frontend;
68 using System.Reflection;
69 using Dynamicweb.Rapido.Blocks.Components.General;
70 using Dynamicweb.Rapido.Blocks.Components;
71 using System.Reflection;
72 using Dynamicweb.Rapido.Blocks.Components.General;
73 using Dynamicweb.Rapido.Blocks.Components;
74 using System.Reflection;
75 using Dynamicweb.Rapido.Blocks.Components.General;
76 using Dynamicweb.Rapido.Blocks.Components;
77 using Dynamicweb.Rapido.Blocks.Components.General;
78 using Dynamicweb.Rapido.Blocks.Components;
79 using System.Reflection;
80 using Dynamicweb.Rapido.Blocks.Components.General;
81 using Dynamicweb.Rapido.Blocks.Components;
82 using System.Reflection;
83 using Dynamicweb.Rapido.Blocks.Components.General;
84 using Dynamicweb.Rapido.Blocks.Components;
85 using System.Reflection;
86 using Dynamicweb.Rapido.Blocks.Components.General;
87 using Dynamicweb.Rapido.Blocks.Components;
88 using Dynamicweb.Rapido.Blocks.Components.General;
89 using Dynamicweb.Rapido.Blocks.Components.General;
90 using Dynamicweb.Rapido.Blocks.Components;
91 using Dynamicweb.Rapido.Blocks.Components.General;
92 using Dynamicweb.Rapido.Blocks.Components;
93 using Dynamicweb.Rapido.Blocks.Components.General;
94 using Dynamicweb.Rapido.Blocks.Components;
95 using Dynamicweb.Core;
96 using Dynamicweb.Extensibility;
97 using Dynamicweb.Core;
98 using Dynamicweb.Rapido.Blocks.Components;
99 using Dynamicweb.Rapido.Blocks.Components.Articles;
100 using Dynamicweb.Rapido.Blocks.Components.General;
101 using Dynamicweb.Rapido.Blocks;
102 using Dynamicweb.Content.Items;
103 using Dynamicweb.Security.UserManagement;
104 using Dynamicweb.Core;
105 using Dynamicweb.Core.Encoders;
106 internal class RazorEngine_537e911f30074bb69c02d3fa7dd662ac : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
107 {
108 #pragma warning disable 1998
109 public async override global::System.Threading.Tasks.Task ExecuteAsync()
110 {
111 WriteLiteral("\r\n");
112 WriteLiteral("\r\n");
113 WriteLiteral("\r\n");
114 WriteLiteral("\r\n");
115 WriteLiteral("\r\n");
116 WriteLiteral("\r\n\r\n\r\n");
117 WriteLiteral("\r\n");
118 WriteLiteral("\r\n");
119 WriteLiteral("\r\n");
120 WriteLiteral("\r\n");
121 WriteLiteral("\r\n");
122 WriteLiteral("\r\n");
123 WriteLiteral("\r\n");
124 WriteLiteral("\r\n");
125 WriteLiteral("\r\n");
126 WriteLiteral("\r\n");
127 WriteLiteral("\r\n");
128 WriteLiteral("\r\n");
129 WriteLiteral("\r\n");
130 WriteLiteral("\r\n\r\n");
131 WriteLiteral("\r\n");
132 WriteLiteral("\r\n");
133 WriteLiteral("\r\n");
134 WriteLiteral("\r\n");
135 WriteLiteral("\r\n");
136 WriteLiteral("\r\n");
137 WriteLiteral("\r\n");
138 WriteLiteral("\r\n");
139 WriteLiteral("\r\n");
140 WriteLiteral("\r\n");
141 WriteLiteral("\r\n");
142 WriteLiteral("\r\n");
143 WriteLiteral("\r\n");
144 WriteLiteral("\r\n");
145 WriteLiteral("\r\n");
146 WriteLiteral("\r\n");
147 WriteLiteral("\r\n");
148 WriteLiteral("\r\n");
149 WriteLiteral("\r\n");
150 WriteLiteral("\r\n");
151 WriteLiteral("\r\n");
152 WriteLiteral("\r\n");
153 WriteLiteral("\r\n");
154 WriteLiteral("\r\n\r\n");
155 WriteLiteral("\r\n");
156 WriteLiteral("\r\n");
157 WriteLiteral("\r\n\r\n");
158 WriteLiteral("\r\n");
159 WriteLiteral("\r\n");
160 WriteLiteral("\r\n");
161 WriteLiteral("\r\n\r\n");
162 WriteLiteral("\r\n");
163 WriteLiteral("\r\n");
164 WriteLiteral("\r\n");
165 WriteLiteral("\r\n");
166
167 Context.Current.Response.AddHeader("access-control-allow-origin", "*");
168
169 string bodyClass = "";
170 string template = "real";
171 string TemplateUrl = "/Files/Templates/Designs/rm/";
172 string MetaTitle = Model.Title;
173 string MetaDescription = Model.Description;
174 string MetaKeywords = Model.Keywords;
175 string searchClass = "";
176
177 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css"));
178 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}";
179
180 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg";
181
182 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2");
183
184 // Indstillinger
185 var settings_Frontpage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : "";
186 var settings_Boligside = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : "";
187 var settings_Maeglersogning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : "";
188 var settings_MinSide = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : "";
189 var settings_Sibling_Site = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : "";
190 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : "";
191 var settings_Product_Group = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : "";
192 var settings_Boligagent = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : "";
193 var settings_Persondatapolitik = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : "";
194
195 // API
196 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : "";
197 var settings_BoligListFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : "";
198 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : "";
199 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : "";
200 var settings_BoligCountFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : "";
201 var settings_BoligMapFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : "";
202 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"];
203
204 // Forside
205 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : "";
206 var settings_FrontpageVideo = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : "";
207 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : "";
208
209 // Tracking
210 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : "";
211 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"])))
212 {
213 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]);
214 }
215 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : "";
216 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : "";
217 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : "";
218 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]);
219 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]);
220 var settings_Google_Optimize_Id = Converter.ToString(SettingsItem["Google_Optimize_Id"]);
221
222 // Indstillinger for brugerfunktioner
223 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : "";
224 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : "";
225 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : "";
226 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : "";
227
228 int createUserParagraphId = 0;
229 int loginParagraphId = 0;
230 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId);
231 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId);
232
233 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv.
234 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv)
235 int searchPageId = GetPageSettingsPageId("Boligside");
236 if (searchPageId == 0)
237 {
238 searchPageId = GetWebsiteSettingsPageId("Boligside");
239 }
240
241 int boligsideId = GetPageSettingsPageId("Boligside");
242 if (boligsideId == 0)
243 {
244 boligsideId = GetWebsiteSettingsPageId("Boligside");
245 }
246
247 string productGroupFilter = String.Empty;
248 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null)
249 {
250 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString();
251 }
252
253 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"]))
254 {
255 searchClass = "is-frontpage";
256 }
257
258 bool isErhverv = false;
259 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null)
260 {
261 var s = Pageview.Page.PropertyItem["Erhverv"].ToString();
262 Boolean.TryParse(s, out isErhverv);
263 }
264
265 bool isBrokerPage = false;
266 if (!string.IsNullOrEmpty(Model.Area.Item.GetString("M_glerGruppeId")))
267 {
268 isBrokerPage = true;
269 bodyClass = ""; // Get rid of transparent header on brokerPage
270 }
271
272 string callTrackingId = Model.Item.GetString("CallTrackingId");
273
274 RealEstate.User.Model.BrokerEmployee MyBroker = null;
275 try
276 {
277 var MyB = new RealEstate.User.MyBroker();
278 MyBroker = MyB.GetMyBroker();
279 }
280 catch
281 {
282 // Ignore
283 }
284
285 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : "");
286 string querySearchNameAttr = "search";
287
288 // Overwrite search with zipcodeinterval if set
289 if (Context.Current.Request.QueryString["zipcodeinterval"] != null)
290 {
291 querySearch = Context.Current.Request.QueryString["zipcodeinterval"];
292 querySearchNameAttr = "zipcodeinterval";
293 }
294
295 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : "");
296 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : "");
297
298 Dynamicweb.Security.UserManagement.User user = null;
299 int userID = 0;
300 string userName = "";
301 string userEmail = "";
302 string userPhone = "";
303 string userZip = "";
304 string userAddress = "";
305
306 if (Dynamicweb.Security.UserManagement.UserContext.Current.IsLoggedOn)
307 {
308 user = Dynamicweb.Security.UserManagement.UserContext.Current.User;
309 userName = user.Name;
310 userEmail = user.Email;
311 userPhone = user.Phone;
312 userZip = user.Zip;
313 userAddress = user.Address;
314 userID = user.ID;
315 }
316
317 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode");
318 string forgotPwTemplate = "";
319 string forgotPwSender = "";
320 string markerColor = "";
321 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png";
322
323 // Important - e-mail templates for forgotPw must be placed in "UserManagement/Login" folder
324 forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml";
325 forgotPwSender = "noreply@mailreal.dk";
326 markerColor = "#213960";
327
328 var butikId = string.Empty;
329 string bEmail = string.Empty;
330 if (MyBroker != null && MyBroker.Broker != null)
331 {
332 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
333 bEmail = MyBroker.Broker.Item().GetString("Email");
334 }
335
336 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment"));
337
338 var termsMail = "info@realmaeglerne.dk";
339 WriteLiteral("\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta charset=\"utf-8\">\r\n <title>");
340 Write(MetaTitle);
341 WriteLiteral("</title>\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n <meta name=\"description\"");
342 BeginWriteAttribute("content", " content=\"", 117041, "\"", 117067, 1);
343 WriteAttributeValue("", 117051, MetaDescription, 117051, 16, false);
344 EndWriteAttribute();
345 WriteLiteral(">\r\n <meta name=\"keywords\"");
346 BeginWriteAttribute("content", " content=\"", 117096, "\"", 117119, 1);
347 WriteAttributeValue("", 117106, MetaKeywords, 117106, 13, false);
348 EndWriteAttribute();
349 WriteLiteral(">\r\n <meta name=\"format-detection\" content=\"telephone=no\">\r\n <meta http-equiv=\"Expires\" content=\"60\">\r\n <meta name=\"robots\"");
350 BeginWriteAttribute("content", " content=\"", 117251, "\"", 117357, 3);
351 WriteAttributeValue("", 117261, Pageview.Area.Noindex ? "noindex" : "index", 117261, 46, false);
352 WriteAttributeValue("", 117307, ",", 117307, 1, true);
353 WriteAttributeValue("", 117308, Pageview.Area.Nofollow ? "nofollow" : "follow", 117308, 49, false);
354 EndWriteAttribute();
355 WriteLiteral(">\r\n\r\n");
356 WriteLiteral("\r\n ");
357 Write(RenderSnippet("OpenGraphTags"));
358 WriteLiteral("\r\n");
359 if (!string.IsNullOrEmpty(settings_Google_Optimize_Id))
360 {
361 WriteLiteral(" <!-- Google optimize script-->\r\n <script");
362 BeginWriteAttribute("src", " src=\"", 117549, "\"", 117629, 2);
363 WriteAttributeValue("", 117555, "https://www.googleoptimize.com/optimize.js?id=", 117555, 46, true);
364 WriteAttributeValue("", 117601, settings_Google_Optimize_Id, 117601, 28, false);
365 EndWriteAttribute();
366 WriteLiteral("></script>\r\n");
367 }
368 WriteLiteral(" <!-- TrustBox script -->\r\n <script type=\"text/javascript\" src=\"//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js\" async></script>\r\n <!-- End TrustBox script -->\r\n\r\n <script type=\"application/ld+json\">\r\n {\r\n \"");
369 WriteLiteral("@context\": \"https://schema.org/\",\r\n \"");
370 WriteLiteral("@type\": \"WebSite\",\r\n \"name\": \"RealMæglerne\",\r\n \"url\": \"https://www.realmaeglerne.dk/\",\r\n \"potentialAction\": {\r\n \"");
371 WriteLiteral(@"@type"": ""SearchAction"",
372 ""target"": ""https://www.realmaeglerne.dk/find-maegler?q={search_term_string}"",
373 ""query-input"": ""required name=search_term_string""
374 }
375 }
376 </script>
377
378 <script type=""application/ld+json"">
379 {
380 """);
381 WriteLiteral("@context\": \"https://schema.org\",\r\n \"");
382 WriteLiteral(@"@type"": ""Corporation"",
383 ""name"": ""RealMæglerne"",
384 ""alternateName"": ""R&B Mægler A/S"",
385 ""url"": ""https://www.realmaeglerne.dk"",
386 ""logo"": ""https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png"",
387 ""contactPoint"": {
388 """);
389 WriteLiteral(@"@type"": ""ContactPoint"",
390 ""telephone"": ""+4570237153"",
391 ""contactType"": ""sales"",
392 ""areaServed"": ""DK"",
393 ""availableLanguage"": ""Danish""
394 },
395 ""sameAs"": [
396 ""https://www.facebook.com/realmaeglerne/"",
397 ""https://www.linkedin.com/company/realmæglerne/"",
398 ""https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g"",
399 ""https://www.realmaeglerne.dk/""
400 ]
401 }
402 </script>
403 ");
404 Write(RenderSnippet("StructuredData"));
405 WriteLiteral("\r\n");
406 WriteLiteral("\r\n");
407 WriteLiteral(" <link rel=\"stylesheet\"");
408 BeginWriteAttribute("href", " href=\"", 119259, "\"", 119310, 2);
409 WriteAttributeValue("", 119266, TemplateUrl, 119266, 14, false);
410 WriteAttributeValue("", 119280, "assets/fontawesome/css/all.css", 119280, 30, true);
411 EndWriteAttribute();
412 WriteLiteral(" async />\r\n <link rel=\"stylesheet\"");
413 BeginWriteAttribute("href", " href=\"", 119352, "\"", 119367, 1);
414 WriteAttributeValue("", 119359, mainCSS, 119359, 8, false);
415 EndWriteAttribute();
416 WriteLiteral(" async />\r\n");
417
418 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
419 {
420 var cssErhvervFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/erhverv.min.css"));
421 string erhvervCSS = TemplateUrl + $"assets/dist/css/erhverv.min.css?{cssErhvervFileInfo.LastWriteTime.Ticks}";
422 WriteLiteral(" <link rel=\"stylesheet\"");
423 BeginWriteAttribute("href", " href=\"", 119771, "\"", 119789, 1);
424 WriteAttributeValue("", 119778, erhvervCSS, 119778, 11, false);
425 EndWriteAttribute();
426 WriteLiteral(" async>\r\n");
427 }
428 WriteLiteral("\r\n\r\n <link rel=\"icon\" type=\"image/ico\"");
429 BeginWriteAttribute("href", " href=\"", 119858, "\"", 119922, 2);
430 WriteAttributeValue("", 119865, TemplateUrl, 119865, 14, false);
431 WriteAttributeValue("", 119879, "assets/images/favicons/favicon-real.ico?v=1", 119879, 43, true);
432 EndWriteAttribute();
433 WriteLiteral(">\r\n <link rel=\"icon\" type=\"image/png\"");
434 BeginWriteAttribute("href", " href=\"", 119963, "\"", 120029, 2);
435 WriteAttributeValue("", 119970, TemplateUrl, 119970, 14, false);
436 WriteAttributeValue("", 119984, "assets/images/favicons/favicon-real-16x16.png", 119984, 45, true);
437 EndWriteAttribute();
438 WriteLiteral(" sizes=\"16x16\">\r\n <link rel=\"icon\" type=\"image/png\"");
439 BeginWriteAttribute("href", " href=\"", 120084, "\"", 120150, 2);
440 WriteAttributeValue("", 120091, TemplateUrl, 120091, 14, false);
441 WriteAttributeValue("", 120105, "assets/images/favicons/favicon-real-32x32.png", 120105, 45, true);
442 EndWriteAttribute();
443 WriteLiteral(" sizes=\"32x32\">\r\n <link rel=\"icon\" type=\"image/png\"");
444 BeginWriteAttribute("href", " href=\"", 120205, "\"", 120271, 2);
445 WriteAttributeValue("", 120212, TemplateUrl, 120212, 14, false);
446 WriteAttributeValue("", 120226, "assets/images/favicons/favicon-real-96x96.png", 120226, 45, true);
447 EndWriteAttribute();
448 WriteLiteral(" sizes=\"96x96\">\r\n <meta name=\"google-site-verification\" content=\"hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg\" />\r\n\r\n");
449 if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString()))
450 {
451 WriteLiteral(@" <script>
452 window.dataLayer = window.dataLayer || []; // must be placed above GTM script
453 </script>
454 <!-- Google Tag Manager -->
455 <script>
456 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
457 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
458 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
459 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
460 })(window,document,'script','dataLayer','");
461 Write(settings_Google_Tag_Manager_ID);
462 WriteLiteral("\');</script>\r\n <!-- End Google Tag Manager -->\r\n");
463 }
464 WriteLiteral("\r\n");
465 if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId))
466 {
467 WriteLiteral(" <script type=\"text/javascript\"");
468 BeginWriteAttribute("src", " src=\"", 121253, "\"", 121325, 2);
469 WriteAttributeValue("", 121259, "https://call.call-tracking.dk/getJavascript?custid=", 121259, 51, true);
470 WriteAttributeValue("", 121310, callTrackingId, 121310, 15, false);
471 EndWriteAttribute();
472 WriteLiteral("></script>\r\n");
473 }
474 WriteLiteral("\r\n");
475 if (!String.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString()))
476 {
477 WriteLiteral(@" <!-- Begin Leadhub Pixel Code -->
478 <script>
479 (function(w,d,x,n,u,t,f,s,o){
480 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){
481 (w[f].q=w[f].q||[]).push([n,d])};w[f].l=1*new Date();s=d.createElement(x); s.async=1;s.src=u+'?t='+t;o=d.getElementsByTagName(x)[0];o.parentNode.insertBefore(s,o)
482 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '");
483 Write(settings_Leadhub_Pixel_ID);
484 WriteLiteral("\');\r\n lhi(\'pageview\');\r\n </script>\r\n <!-- End Leadhub Pixel Code -->\r\n");
485 }
486 WriteLiteral("\r\n <script>\r\n // Global namespace used for fetching API feeds from DW\r\n var RMAPI = (RMAPI) ? RMAPI : {};\r\n var ApiPreFix = \"/Default.aspx?ID=\";\r\n RMAPI.BoligCountFeed = ApiPreFix + \"");
487 Write(settings_BoligCountFeed);
488 WriteLiteral("\";\r\n RMAPI.BoligListFeed = ApiPreFix + \"");
489 Write(settings_BoligListFeed);
490 WriteLiteral("\" + \"&refpageid=");
491 Write(Pageview.Page.ID);
492 WriteLiteral("\";\r\n RMAPI.BoligListFeedErhverv = \"");
493 Write(settings_BoligListFeedErhverv);
494 WriteLiteral("\";\r\n RMAPI.BoligListFeedMaegler = ApiPreFix + \"");
495 Write(settings_BoligListFeedMaegler);
496 WriteLiteral("\" + \"&refpageid=");
497 Write(Pageview.Page.ID);
498 WriteLiteral("\";\r\n RMAPI.BoligSearchFeed = ApiPreFix + \"");
499 Write(settings_BoligSearchFeed);
500 WriteLiteral("\";\r\n RMAPI.BoligMapFeed = ApiPreFix + \"");
501 Write(settings_BoligMapFeed);
502 WriteLiteral("\";\r\n RMAPI.Boligagent = \"");
503 Write(settings_Boligagent);
504 WriteLiteral("\";\r\n RMAPI.IsErhverv = ");
505 Write(isErhverv.ToString().ToLower());
506 WriteLiteral(";\r\n RMAPI.ProductGroupFilter = \"");
507 Write(productGroupFilter);
508 WriteLiteral("\";\r\n RMAPI.ButikId = \"");
509 Write(butikId);
510 WriteLiteral("\";\r\n RMAPI.Boligvisning = false;\r\n RMAPI.RefPageId = \"");
511 Write(Pageview.Page.ID);
512 WriteLiteral("\";\r\n RMAPI.Template = \"");
513 Write(template);
514 WriteLiteral("\";\r\n RMAPI.SliderSettings = ");
515 Write(JsonConvert.SerializeObject(Settings.Site));
516 WriteLiteral(";\r\n RMAPI.AdvisorSearchFeed = \"");
517 Write(settings_AdvisorSearchFeed);
518 WriteLiteral("\";\r\n RMAPI.LoadingIcon = \"");
519 Write(loadingIcon);
520 WriteLiteral("\";\r\n RMAPI.MarkerColor = \"");
521 Write(markerColor);
522 WriteLiteral("\";\r\n RMAPI.mapMarkerUrl = \"");
523 Write(mapMarkerUrl);
524 WriteLiteral("\";\r\n RMAPI.settings_ForgotPwPage = \"");
525 Write(settings_ForgotPwPage);
526 WriteLiteral("\";\r\n </script>\r\n\r\n");
527 if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString()))
528 {
529 WriteLiteral(@" <!-- Facebook Pixel Code -->
530 <script>
531 !function (f, b, e, v, n, t, s) {
532 if (f.fbq) return; n = f.fbq = function () {
533 n.callMethod ?
534 n.callMethod.apply(n, arguments) : n.queue.push(arguments)
535 };
536 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';
537 n.queue = []; t = b.createElement(e); t.async = !0;
538 t.src = v; s = b.getElementsByTagName(e)[0];
539 s.parentNode.insertBefore(t, s)
540 }(window, document, 'script',
541 'https://connect.facebook.net/en_US/fbevents.js');
542 fbq('init', '");
543 Write(settings_Facebook_App_ID);
544 WriteLiteral("\');\r\n fbq(\'track\', \'PageView\');\r\n </script>\r\n <noscript>\r\n <img height=\"1\" width=\"1\"");
545 BeginWriteAttribute("src", " src=\"", 124228, "\"", 124313, 3);
546 WriteAttributeValue("", 124234, "https://www.facebook.com/tr?id=", 124234, 31, true);
547 WriteAttributeValue("", 124265, settings_Facebook_App_ID, 124265, 25, false);
548 WriteAttributeValue("", 124290, "&ev=PageView&noscript=1", 124290, 23, true);
549 EndWriteAttribute();
550 WriteLiteral(" />\r\n </noscript>\r\n <!-- End Facebook Pixel Code -->\r\n");
551 }
552 WriteLiteral("\r\n <script type=\'text/javascript\' src=\'https://platform-api.sharethis.com/js/sharethis.js#property=5d68cfaf5fea9f001288d9ac&product=inline-share-buttons\' async=\'async\'></script>\r\n\r\n</head>\r\n\r\n<body");
553 BeginWriteAttribute("class", " class=\"", 124589, "\"", 124616, 2);
554 WriteAttributeValue("", 124597, template, 124597, 9, false);
555 WriteAttributeValue("", 124606, bodyClass, 124606, 10, false);
556 EndWriteAttribute();
557 WriteLiteral(" data-spforgotpwtemplate=\"");
558 Write(forgotPwTemplate);
559 WriteLiteral("\" data-spforgotpwsender=\"");
560 Write(forgotPwSender);
561 WriteLiteral("\" data-spforgotpwsubject=\"");
562 Write(forgotPwSubject);
563 WriteLiteral("\" data-spsalesassesmentid=\"");
564 Write(salesAssessmentPageId);
565 WriteLiteral("\">\r\n");
566
567 string logoUrl = TemplateUrl + (!Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg");
568 WriteLiteral("\r\n");
569 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) && GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
570 {
571 WriteLiteral(" <div class=\"top-search\">\r\n <div class=\"header logo\">\r\n <div class=\"logo\">\r\n <a href=\"/erhverv\">\r\n <img");
572 BeginWriteAttribute("src", " src=\"", 125288, "\"", 125302, 1);
573 WriteAttributeValue("", 125294, logoUrl, 125294, 8, false);
574 EndWriteAttribute();
575 WriteLiteral(" alt=\"RealMæglerne\" />\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"top-form mx-auto\">\r\n <form id=\"main-search-top\" class=\"js-top-search\" action=\"/Default.aspx\" method=\"GET\">\r\n");
576
577
578 var settings_BoligListErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : "";
579 WriteLiteral(" <input type=\"hidden\" name=\"ID\"");
580 BeginWriteAttribute("value", " value=\'", 125869, "\'", 125903, 1);
581 WriteAttributeValue("", 125877, settings_BoligListErhverv, 125877, 26, false);
582 EndWriteAttribute();
583 WriteLiteral(" id=\"searchPageId-top\" disabled=\"disabled\" />\r\n\r\n");
584 if (Context.Current.Request["type"] == "egetforbrug")
585 {
586 WriteLiteral(" <input name=\"type\" type=\"hidden\" value=\"egetforbrug\" />\r\n <input name=\"investeringsejendom\" type=\"hidden\" value=\"0\" />\r\n");
587 }
588 WriteLiteral(@" <div class=""row form-wrapper no-gutters"">
589 <div class=""col-xs-12 col-md-4 col-lg-5 col-searchbar"">
590 <div class=""searchbar float-label-container text-left"">
591 <label class=""float-label js-float-label-trigger"">");
592 Write(Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer"));
593 WriteLiteral("</label>\r\n <input type=\"text\"");
594 BeginWriteAttribute("name", " name=\"", 126720, "\"", 126747, 1);
595 WriteAttributeValue("", 126727, querySearchNameAttr, 126727, 20, false);
596 EndWriteAttribute();
597 WriteLiteral(" id=\"searchfield-top\" class=\"search-input js-float-label js-getdata\" tabindex=\"1\"");
598 BeginWriteAttribute("value", " value=\"", 126829, "\"", 126907, 1);
599 WriteAttributeValue("", 126837, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 126837, 70, false);
600 EndWriteAttribute();
601 WriteLiteral(@" />
602 </div>
603 </div>
604 <div class=""col-xs-12 col-md-5"">
605 <div class=""row no-gutters"">
606 <div class=""col-xs-12 col-md-6 input-col"">
607 <div class=""dropdown w-overlay float-label-container"">
608 <label class=""float-label js-float-label-trigger"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">");
609 Write(Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype"));
610 WriteLiteral(@"</label>
611 <button class=""btn btn-dropdown dropdown-toggle reverse position-absolute-md"" type=""button"" id=""Boligtype-frontpage"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false""></button>
612 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
613 <ul class=""bolig-dropdown list-unstyled"">
614 ");
615
616 RenderBoligTypeErhverv();
617 WriteLiteral(@" </ul>
618 <span class=""border-fat""></span>
619 <div class=""d-none d-md-block"">
620 <button class=""btn btn-primary js-close-dropdown"">");
621 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
622 WriteLiteral(@"</button>
623 </div>
624 <div class=""d-flex row d-md-none"">
625 <div class=""col-6"">
626 <button class=""btn btn-danger js-remove-filter"">");
627 Write(Translate("Smartpage:Search.Annuller", "Annuller"));
628 WriteLiteral("</button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-primary js-close-dropdown\">");
629 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
630 WriteLiteral(@"</button>
631 </div>
632 </div>
633 </div>
634
635 </div>
636 </div>
637 <div class=""col-xs-12 col-md-6 input-col"">
638 <div class=""btn-dropdown p-3 border-top-bottom-right"">
639 <ul class=""two-column list-unstyled"">
640 <li>
641 <label class=""checkbox-container"">
642 ");
643 Write(Translate("Smartpage:Search.Erhverv.Leje", "Leje"));
644 WriteLiteral(@"
645 <input type=""checkbox"" name=""propertytype"" value=""leje"" class=""js-input-check"" />
646 <span class=""checkmark""></span>
647 </label>
648 </li>
649 <li>
650 <label class=""checkbox-container"">
651 ");
652 Write(Translate("Smartpage:Search.Erhverv.Køb", "Køb"));
653 WriteLiteral(@"
654 <input type=""checkbox"" name=""propertytype"" value=""kob"" class=""js-input-check"" />
655 <span class=""checkmark""></span>
656 </label>
657 </li>
658 </ul>
659 </div>
660
661 </div>
662 </div>
663 </div>
664 <div class=""col-xs-12 col-md-3 col-lg-2 d-none d-md-block"">
665 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
666 Write(Translate("Smartpage:Search.Søg", "Søg"));
667 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n");
668 }
669 WriteLiteral("\r\n");
670 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
671 {
672 WriteLiteral(" <div class=\"header shortcuts\">\r\n <div class=\"header-shortcuts float-right\">\r\n");
673 if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
674 {
675 WriteLiteral(" <a");
676 BeginWriteAttribute("href", " href=\'", 131633, "\'", 131640, 0);
677 EndWriteAttribute();
678 BeginWriteAttribute("class", " class=\"", 131641, "\"", 131757, 9);
679 WriteAttributeValue("", 131649, "search-menu", 131649, 11, true);
680 WriteAttributeValue(" ", 131660, "d-none", 131661, 7, true);
681 WriteAttributeValue(" ", 131667, "d-xl-flex", 131668, 10, true);
682 WriteAttributeValue(" ", 131677, "align-items-center", 131678, 19, true);
683 WriteAttributeValue(" ", 131696, "float-left", 131697, 11, true);
684 WriteAttributeValue(" ", 131707, "border-right", 131708, 13, true);
685 WriteAttributeValue(" ", 131720, "js-mainsearch", 131721, 14, true);
686 WriteAttributeValue(" ", 131734, "topsearch", 131735, 10, true);
687 WriteAttributeValue(" ", 131744, searchClass, 131745, 12, false);
688 EndWriteAttribute();
689 WriteLiteral(">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i><span class=\"search-menu-text hidden d-md-block\"> ");
690 Write(Translate("Smartpage:Search.Søg", "Søg"));
691 WriteLiteral("</span>\r\n </a>\r\n");
692 }
693 WriteLiteral(" <div class=\"menu-slide d-flex align-items-center\">\r\n <b></b>\r\n <span class=\"menu-text hidden d-md-block\">Menu</span>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n");
694 }
695 else
696 {
697 WriteLiteral(" <div class=\"header__container container\">\r\n <div class=\"header__logo\">\r\n <a href=\"/\"");
698 BeginWriteAttribute("title", " title=\"", 132357, "\"", 132365, 0);
699 EndWriteAttribute();
700 WriteLiteral(">\r\n <img");
701 BeginWriteAttribute("src", " src=\"", 132393, "\"", 132409, 1);
702 WriteAttributeValue("", 132399, logoUrl, 132399, 10, false);
703 EndWriteAttribute();
704 BeginWriteAttribute("alt", " alt=\"", 132410, "\"", 132416, 0);
705 EndWriteAttribute();
706 WriteLiteral(" />\r\n </a>\r\n </div>\r\n <div class=\"header__title\">\r\n <span>");
707 Write(Translate("Custom:Header.Title", "RealMæglerne"));
708 WriteLiteral("</span> \r\n </div>\r\n");
709 if (userID > 0)
710 {
711 WriteLiteral(@" <div class=""header__navigation d-none d-md-flex"">
712 <div class=""header__navigation"">
713 <div class=""header__Link"">
714 <ul>
715 <li class=""d-flex align-items-center"">
716 <svg xmlns=""http://www.w3.org/2000/svg"" width=""20"" height=""20"" viewBox=""0 0 20 20"" fill=""none"">
717 <path d=""M16.6663 17.5C16.6663 16.337 16.6663 15.7555 16.5228 15.2824C16.1996 14.217 15.366 13.3834 14.3006 13.0602C13.8275 12.9167 13.246 12.9167 12.083 12.9167H7.91634C6.75337 12.9167 6.17189 12.9167 5.69872 13.0602C4.63339 13.3834 3.79971 14.217 3.47654 15.2824C3.33301 15.7555 3.33301 16.337 3.33301 17.5M13.7497 6.25C13.7497 8.32107 12.0707 10 9.99967 10C7.92861 10 6.24967 8.32107 6.24967 6.25C6.24967 4.17893 7.92861 2.5 9.99967 2.5C12.0707 2.5 13.7497 4.17893 13.7497 6.25Z"" stroke=""black"" stroke-width=""2"" stroke-linecap=""round"" stroke-linejoin=""round"" />
718 ");
719 WriteLiteral(" </svg>\r\n <a class=\"ml-2\"");
720 BeginWriteAttribute("href", "\r\n href=\"", 133774, "\"", 133856, 2);
721 WriteAttributeValue("", 133822, "/Default.aspx?ID=", 133822, 17, true);
722 WriteAttributeValue("", 133839, settings_MinSide, 133839, 17, false);
723 EndWriteAttribute();
724 WriteLiteral("\r\n target=\"_blank\"");
725 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 133914, "\"", 134064, 1);
726 WriteAttributeValue("", 133968, Translate("Custom:Accessibility.MyAccountLink", "Gå til Mit RealMæglerne - åbner i nyt vindue"), 133968, 96, false);
727 EndWriteAttribute();
728 WriteLiteral(">\r\n ");
729 Write(Translate("Mit RealMæglerne"));
730 WriteLiteral("\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n");
731
732 }
733 else
734 {
735 WriteLiteral(@" <div class=""header__navigation d-none d-md-flex"">
736 <div class=""header__navigation"">
737 <div class=""header__Link"">
738 <ul>
739 <li class=""d-flex align-items-center"">
740 <svg xmlns=""http://www.w3.org/2000/svg"" width=""20"" height=""20"" viewBox=""0 0 20 20"" fill=""none"">
741 <path d=""M16.6663 17.5C16.6663 16.337 16.6663 15.7555 16.5228 15.2824C16.1996 14.217 15.366 13.3834 14.3006 13.0602C13.8275 12.9167 13.246 12.9167 12.083 12.9167H7.91634C6.75337 12.9167 6.17189 12.9167 5.69872 13.0602C4.63339 13.3834 3.79971 14.217 3.47654 15.2824C3.33301 15.7555 3.33301 16.337 3.33301 17.5M13.7497 6.25C13.7497 8.32107 12.0707 10 9.99967 10C7.92861 10 6.24967 8.32107 6.24967 6.25C6.24967 4.17893 7.92861 2.5 9.99967 2.5C12.0707 2.5 13.7497 4.17893 13.7497 6.25Z"" stroke=""black"" stroke-width=""2"" stroke-linecap=""round"" stroke-linejoin=""round"" />
742 ");
743 WriteLiteral(" </svg>\r\n <a class=\"ml-2\"\r\n href=\"javascript:panelLogin()\"");
744 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 135575, "\"", 135698, 1);
745 WriteAttributeValue("", 135629, Translate("Custom:Accessibility.Login", "Login - åbner i sidepanel"), 135629, 69, false);
746 EndWriteAttribute();
747 WriteLiteral(">\r\n ");
748 Write(Translate("Login"));
749 WriteLiteral("\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n");
750 }
751 WriteLiteral(" <div class=\"header__search flex-column flex-md-row js-mainsearch\">\r\n ");
752 Write(Translate("Søg bolig"));
753 WriteLiteral("\r\n </div>\r\n <div class=\"header__navigation\">\r\n <div class=\"header__navigation-icon menu-slide\">\r\n <div class=\"d-none d-md-block\">\r\n ");
754 Write(Translate("Menu"));
755 WriteLiteral("\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n");
756 }
757 WriteLiteral("\r\n <div class=\"search-modal\">\r\n\r\n");
758 if (Converter.ToString(Pageview.Area.Item["Type"]) == "real")
759 {
760 WriteLiteral(@" <div class=""main-search-form"">
761 <i class=""fal fa-times float-right fa-2x js-close-search close-search""></i>
762 <div class=""row mb-3 align-items-center"">
763 <div class=""col-xs-12 col-md-3 border-right"">
764 <h3>");
765 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
766 WriteLiteral("</h3>\r\n </div>\r\n <div class=\"col-xs-12 col-md-9 home-count d-none d-md-block\">\r\n <span class=\"search-count\" id=\"searchCounterMain\">0</span> <span class=\"position-relative\">");
767 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg"));
768 WriteLiteral(@"<span class=""loader js-loader""></span></span>
769
770 </div>
771 </div>
772
773 <form id=""main-search"" class=""searchbar-wrapper"" action=""/Default.aspx"" method=""GET"">
774 <input type=""hidden"" name=""ID""");
775 BeginWriteAttribute("value", " value=\'", 137440, "\'", 137461, 1);
776 WriteAttributeValue("", 137448, searchPageId, 137448, 13, false);
777 EndWriteAttribute();
778 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" />
779 <div class=""row form-wrapper no-gutters"">
780
781 <div class=""col-xs-12 col-md-5 col-searchbar"">
782 <div class=""searchbar"">
783 <input type=""text""");
784 BeginWriteAttribute("name", " name=\"", 137745, "\"", 137772, 1);
785 WriteAttributeValue("", 137752, querySearchNameAttr, 137752, 20, false);
786 EndWriteAttribute();
787 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\"");
788 BeginWriteAttribute("value", " value=\"", 137875, "\"", 137953, 1);
789 WriteAttributeValue("", 137883, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 137883, 70, false);
790 EndWriteAttribute();
791 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\"");
792 BeginWriteAttribute("value", " value=\"", 138047, "\"", 138130, 1);
793 WriteAttributeValue("", 138055, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 138055, 75, false);
794 EndWriteAttribute();
795 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\"");
796 BeginWriteAttribute("value", " value=\"", 138220, "\"", 138301, 1);
797 WriteAttributeValue("", 138228, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 138228, 73, false);
798 EndWriteAttribute();
799 WriteLiteral(@" />
800 </div>
801 </div>
802 <div class=""col-xs-12 col-md-5"">
803 <div class=""row no-gutters"">
804 <div class=""col-xs-12 col-md-6 input-col"">
805 <div class=""dropdown"">
806 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
807 ");
808 Write(Translate("Smartpage:Search.Boligtype", "Boligtype"));
809 WriteLiteral(@"
810 </button>
811 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
812 <ul class=""bolig-dropdown list-unstyled"">
813 ");
814
815 RenderBoligtypeCheckboxesDropdown();
816 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">");
817 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
818 WriteLiteral(@"</button>
819 </div>
820
821 </div>
822
823 </div>
824 <div class=""col-xs-12 col-md-6 input-col"">
825 <div class=""dropdown"">
826 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
827 ");
828 Write(Translate("Smartpage:Search.Pris", "Pris"));
829 WriteLiteral(@"
830 </button>
831 <div class=""dropdown-menu box-shadow dropdown-price js-dropdown-price"" aria-labelledby=""Pris"">
832 <input name=""pricemin"" type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input""");
833 BeginWriteAttribute("placeholder", " placeholder=\'", 140552, "\'", 140629, 1);
834 WriteAttributeValue("", 140566, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 140566, 63, false);
835 EndWriteAttribute();
836 BeginWriteAttribute("value", " value=\"", 140630, "\"", 140822, 1);
837 WriteAttributeValue("", 140638, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemin"]) ? Context.Current.Request.QueryString["pricemin"] : ""), 140638, 184, false);
838 EndWriteAttribute();
839 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">");
840 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"));
841 WriteLiteral("</option>\r\n");
842 for (var i = 0; i <= 10000000; i += 100000)
843 {
844 if (i == 10000000)
845 {
846 WriteLiteral(" <option");
847 BeginWriteAttribute("value", " value=\"", 141459, "\"", 141469, 1);
848 WriteAttributeValue("", 141467, i, 141467, 2, false);
849 EndWriteAttribute();
850 WriteLiteral(" data-value=\'");
851 Write(Converter.ToInt32(i).ToString("N0"));
852 WriteLiteral("+\'>");
853 Write(Convert.ToInt32(i).ToString("N0"));
854 WriteLiteral("+</option>\r\n");
855 }
856 else
857 {
858 WriteLiteral(" <option");
859 BeginWriteAttribute("value", " value=\"", 141799, "\"", 141809, 1);
860 WriteAttributeValue("", 141807, i, 141807, 2, false);
861 EndWriteAttribute();
862 WriteLiteral(" data-value=\'");
863 Write(Converter.ToInt32(i).ToString("N0"));
864 WriteLiteral("\'>");
865 Write(Convert.ToInt32(i).ToString("N0"));
866 WriteLiteral("</option>\r\n");
867 }
868 }
869 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\"");
870 BeginWriteAttribute("placeholder", " placeholder=\'", 142213, "\'", 142290, 1);
871 WriteAttributeValue("", 142227, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 142227, 63, false);
872 EndWriteAttribute();
873 BeginWriteAttribute("value", " value=\"", 142291, "\"", 142483, 1);
874 WriteAttributeValue("", 142299, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemax"]) ? Context.Current.Request.QueryString["pricemax"] : ""), 142299, 184, false);
875 EndWriteAttribute();
876 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
877 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"));
878 WriteLiteral("</option>\r\n");
879 for (var i = 0; i <= 10000000; i += 100000)
880 {
881 if (i == 10000000)
882 {
883 WriteLiteral(" <option");
884 BeginWriteAttribute("value", " value=\"", 143114, "\"", 143124, 1);
885 WriteAttributeValue("", 143122, i, 143122, 2, false);
886 EndWriteAttribute();
887 WriteLiteral(" data-value=\'");
888 Write(Converter.ToInt32(i).ToString("N0"));
889 WriteLiteral("+\'>");
890 Write(Convert.ToInt32(i).ToString("N0"));
891 WriteLiteral("+</option>\r\n");
892 }
893 else
894 {
895 WriteLiteral(" <option");
896 BeginWriteAttribute("value", " value=\"", 143454, "\"", 143464, 1);
897 WriteAttributeValue("", 143462, i, 143462, 2, false);
898 EndWriteAttribute();
899 WriteLiteral(" data-value=\'");
900 Write(Converter.ToInt32(i).ToString("N0"));
901 WriteLiteral("\'>");
902 Write(Convert.ToInt32(i).ToString("N0"));
903 WriteLiteral("</option>\r\n");
904 }
905 }
906 WriteLiteral(@" </select>
907 </div>
908 </div>
909 </div>
910 </div>
911 </div>
912 <div class=""col-xs-12 col-md-2 d-none d-md-block"">
913 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
914 Write(Translate("Smartpage:Search.Søg", "Søg"));
915 WriteLiteral(@"</button>
916 </div>
917 </div>
918
919 <div class=""row moresearch-btn no-gutters"">
920 <div class=""col-sm-12"">
921 <div class=""row align-items-center no-gutters"">
922 <div class=""col-12 col-md-4"">
923 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch"">
924 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open white"">");
925 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder"));
926 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> ");
927 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt"));
928 WriteLiteral(" </span></span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-md-2 mb-xs-4\">\r\n <a class=\"js-reset reset-btn white\">");
929 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg"));
930 WriteLiteral("</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"collapse\" id=\"moreSearch-master\">\r\n\r\n <h4 class=\"mt-20\"><b>");
931 Write(Translate("Smartpage:Search.Bolig", "Bolig"));
932 WriteLiteral(@"</b></h4>
933 <div class=""row align-items-end mb-30"">
934 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
935 <div class=""filter-container row"">
936 <label class=""d-block col-12"">");
937 Write(Translate("Smartpage:Search.Boligareal", "Boligareal"));
938 WriteLiteral(@"</label>
939 <div class=""col-6 pr-sm-0 pr-2"">
940 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count""");
941 BeginWriteAttribute("placeholder", " placeholder=\'", 146226, "\'", 146299, 1);
942 WriteAttributeValue("", 146240, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 146240, 59, false);
943 EndWriteAttribute();
944 BeginWriteAttribute("value", " value=\"", 146300, "\"", 146502, 1);
945 WriteAttributeValue("", 146308, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmin"]) ? Context.Current.Request.QueryString["boligarealmin"] : ""), 146308, 194, false);
946 EndWriteAttribute();
947 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
948 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
949 WriteLiteral("</option>\r\n");
950 for (var i = 0; i <= 300; i += 10)
951 {
952 if (i == 300)
953 {
954 WriteLiteral(" <option>");
955 Write(i);
956 WriteLiteral("+</option>\r\n");
957 }
958 else
959 {
960 WriteLiteral(" <option>");
961 Write(i);
962 WriteLiteral("</option>\r\n");
963 }
964 }
965 WriteLiteral(@" </select>
966
967 </div>
968 <div class=""col-6 pl-sm-0 pl-2"">
969 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count""");
970 BeginWriteAttribute("placeholder", " placeholder=\'", 147887, "\'", 147960, 1);
971 WriteAttributeValue("", 147901, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 147901, 59, false);
972 EndWriteAttribute();
973 BeginWriteAttribute("value", " value=\"", 147961, "\"", 148163, 1);
974 WriteAttributeValue("", 147969, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmax"]) ? Context.Current.Request.QueryString["boligarealmax"] : ""), 147969, 194, false);
975 EndWriteAttribute();
976 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
977 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
978 WriteLiteral("</option>\r\n");
979 for (var i = 0; i <= 300; i += 10)
980 {
981 if (i == 300)
982 {
983 WriteLiteral(" <option>");
984 Write(i);
985 WriteLiteral("+</option>\r\n");
986 }
987 else
988 {
989 WriteLiteral(" <option>");
990 Write(i);
991 WriteLiteral("</option>\r\n");
992 }
993 }
994 WriteLiteral(@" </select>
995
996 </div>
997 </div>
998 </div>
999 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
1000 <div class=""filter-container row"">
1001 <label class=""d-block col-12"">");
1002 Write(Translate("Smartpage:Search.Grundareal", "Grundareal"));
1003 WriteLiteral(@"</label>
1004 <div class=""col-6 pr-sm-0 pr-2"">
1005 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count""");
1006 BeginWriteAttribute("placeholder", " placeholder=\'", 149944, "\'", 150017, 1);
1007 WriteAttributeValue("", 149958, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 149958, 59, false);
1008 EndWriteAttribute();
1009 BeginWriteAttribute("value", " value=\"", 150018, "\"", 150221, 1);
1010 WriteAttributeValue("", 150026, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmin"]) ? Context.Current.Request.QueryString["grundarealmin"] : ""), 150026, 195, false);
1011 EndWriteAttribute();
1012 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1013 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
1014 WriteLiteral("</option>\r\n");
1015 for (var i = 0; i <= 10000; i += 100)
1016 {
1017 if (i == 10000)
1018 {
1019 WriteLiteral(" <option>");
1020 Write(i);
1021 WriteLiteral("+</option>\r\n");
1022 }
1023 else
1024 {
1025 WriteLiteral(" <option>");
1026 Write(i);
1027 WriteLiteral("</option>\r\n");
1028 }
1029 }
1030 WriteLiteral(@" </select>
1031 </div>
1032 <div class=""col-6 pl-sm-0 pl-2"">
1033 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count""");
1034 BeginWriteAttribute("placeholder", " placeholder=\'", 151609, "\'", 151682, 1);
1035 WriteAttributeValue("", 151623, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 151623, 59, false);
1036 EndWriteAttribute();
1037 BeginWriteAttribute("value", " value=\"", 151683, "\"", 151886, 1);
1038 WriteAttributeValue("", 151691, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmax"]) ? Context.Current.Request.QueryString["grundarealmax"] : ""), 151691, 195, false);
1039 EndWriteAttribute();
1040 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">");
1041 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
1042 WriteLiteral("</option>\r\n");
1043 for (var i = 0; i <= 10000; i += 100)
1044 {
1045 if (i == 10000)
1046 {
1047 WriteLiteral(" <option>");
1048 Write(i);
1049 WriteLiteral("+</option>\r\n");
1050 }
1051 else
1052 {
1053 WriteLiteral(" <option>");
1054 Write(i);
1055 WriteLiteral("</option>\r\n");
1056 }
1057 }
1058 WriteLiteral(@" </select>
1059 </div>
1060 </div>
1061 </div>
1062 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
1063 <div class=""filter-container row"">
1064 <label class=""d-block col-12"">Antal rum</label>
1065 <div class=""col-6 pr-sm-0 pr-2"">
1066 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count"">
1067 <option selected=""selected"" disabled=""disabled"">");
1068 Write(Translate("Smartpage:Search.Placeholder.Min", "Min"));
1069 WriteLiteral("</option>\r\n");
1070
1071 RenderSelectValue("1", "1", "roomsmin");
1072 RenderSelectValue("2", "2", "roomsmin");
1073 RenderSelectValue("3", "3", "roomsmin");
1074 RenderSelectValue("4", "4", "roomsmin");
1075 RenderSelectValue("5+", "5", "roomsmin");
1076 WriteLiteral(@" </select>
1077 </div>
1078 <div class=""col-6 pl-sm-0 pl-2"">
1079 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count"">
1080 <option selected=""selected"" disabled=""disabled"">");
1081 Write(Translate("Smartpage:Search.Placeholder.Max", "Max"));
1082 WriteLiteral("</option>\r\n");
1083
1084 RenderSelectValue("1", "1", "roomsmax");
1085 RenderSelectValue("2", "2", "roomsmax");
1086 RenderSelectValue("3", "3", "roomsmax");
1087 RenderSelectValue("4", "4", "roomsmax");
1088 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax");
1089 WriteLiteral(@" </select>
1090 </div>
1091 </div>
1092 </div>
1093 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
1094 <div class=""row"">
1095 <div class=""col-12 pr-2"">
1096 <div class=""filter-container"">
1097 <label class=""d-block"">Energimærke</label>
1098 <select name=""energylabel"" id=""energylabel"" class=""form-control reverse js-energylabel-select js-count"">
1099 <option selected=""selected"" disabled=""disabled"">");
1100 Write(Translate("Smartpage:Search.Vælg", "Vælg"));
1101 WriteLiteral(@"</option>
1102 <option value=""01"">G</option>
1103 <option value=""02"">F</option>
1104 <option value=""03"">E</option>
1105 <option value=""04"">D</option>
1106 <option value=""05"">C</option>
1107 <option value=""06"">B</option>
1108 <option value=""07"">A</option>
1109 <option value=""08"">A2010</option>
1110 <option value=""09"">A2015</option>
1111 <option value=""10"">A2020+</option>
1112 </select>
1113 </div>
1114 ");
1115 WriteLiteral(@" </div>
1116 </div>
1117 </div>
1118 <div class=""col-12 col-sm-6 col-lg-3 mt-3"">
1119 <h4");
1120 BeginWriteAttribute("class", " class=\"", 157685, "\"", 157693, 0);
1121 EndWriteAttribute();
1122 WriteLiteral("><b>");
1123 Write(Translate("Smartpage:Search.Økonomi", "Økonomi"));
1124 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">");
1125 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned"));
1126 WriteLiteral("</label>\r\n <div class=\"col-6 pr-sm-0 pr-2\">\r\n <input type=\"text\" name=\"subsidymin\" id=\"subsidymin\" class=\"form-control js-subsidymin-frontpage-input js-count\"");
1127 BeginWriteAttribute("placeholder", " placeholder=\'", 158255, "\'", 158330, 1);
1128 WriteAttributeValue("", 158269, Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"), 158269, 61, false);
1129 EndWriteAttribute();
1130 BeginWriteAttribute("value", " value=\"", 158331, "\"", 158528, 1);
1131 WriteAttributeValue("", 158339, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymin"]) ? Context.Current.Request.QueryString["subsidymin"] : ""), 158339, 189, false);
1132 EndWriteAttribute();
1133 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">");
1134 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"));
1135 WriteLiteral("</option>\r\n");
1136 for (var i = 0; i <= 25000; i += 1250)
1137 {
1138 if (i == 25000)
1139 {
1140 WriteLiteral(" <option");
1141 BeginWriteAttribute("value", " value=\"", 159172, "\"", 159201, 1);
1142 WriteAttributeValue("", 159180, Converter.ToInt32(i), 159180, 21, false);
1143 EndWriteAttribute();
1144 WriteLiteral(">");
1145 Write(Converter.ToInt32(i).ToString("N0"));
1146 WriteLiteral("+</option>\r\n");
1147 }
1148 else
1149 {
1150 WriteLiteral(" <option");
1151 BeginWriteAttribute("value", " value=\"", 159498, "\"", 159527, 1);
1152 WriteAttributeValue("", 159506, Converter.ToInt32(i), 159506, 21, false);
1153 EndWriteAttribute();
1154 WriteLiteral(">");
1155 Write(Converter.ToInt32(i).ToString("N0"));
1156 WriteLiteral("</option>\r\n");
1157 }
1158 }
1159 WriteLiteral(@" </select>
1160 </div>
1161 <div class=""col-6 pl-sm-0 pl-2"">
1162 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count""");
1163 BeginWriteAttribute("placeholder", " placeholder=\'", 160039, "\'", 160114, 1);
1164 WriteAttributeValue("", 160053, Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"), 160053, 61, false);
1165 EndWriteAttribute();
1166 BeginWriteAttribute("value", " value=\"", 160115, "\"", 160312, 1);
1167 WriteAttributeValue("", 160123, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymax"]) ? Context.Current.Request.QueryString["subsidymax"] : ""), 160123, 189, false);
1168 EndWriteAttribute();
1169 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1170 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"));
1171 WriteLiteral("</option>\r\n");
1172 for (var i = 0; i <= 25000; i += 1250)
1173 {
1174 if (i == 25000)
1175 {
1176 WriteLiteral(" <option");
1177 BeginWriteAttribute("value", " value=\"", 160952, "\"", 160981, 1);
1178 WriteAttributeValue("", 160960, Converter.ToInt32(i), 160960, 21, false);
1179 EndWriteAttribute();
1180 WriteLiteral(">");
1181 Write(Convert.ToInt32(i).ToString("N0"));
1182 WriteLiteral("+</option>\r\n");
1183 }
1184 else
1185 {
1186 WriteLiteral(" <option");
1187 BeginWriteAttribute("value", " value=\"", 161276, "\"", 161305, 1);
1188 WriteAttributeValue("", 161284, Converter.ToInt32(i), 161284, 21, false);
1189 EndWriteAttribute();
1190 WriteLiteral(">");
1191 Write(Convert.ToInt32(i).ToString("N0"));
1192 WriteLiteral("</option>\r\n");
1193 }
1194 }
1195 WriteLiteral(@" </select>
1196 </div>
1197 </div>
1198 </div>
1199 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0"">
1200 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1201 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre"));
1202 WriteLiteral(@"</button>
1203 </div>
1204 </div>
1205 </div>
1206 </div>
1207 </div>
1208 <div class=""row d-block d-md-none form-wrapper no-gutters"">
1209 <div class=""col-xs-12 col-md-2"">
1210 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1211 Write(Translate("Smartpage:Search.Søg", "Søg"));
1212 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n");
1213 }
1214 else
1215 {
1216 WriteLiteral(@" <div class=""main-search-form center"">
1217 <i class=""fal fa-times float-right fa-2x js-close-search""></i>
1218 <div class=""row mb-3 align-items-center"">
1219 <div class=""col-xs-12 col-md-5 border-right"">
1220 <h3>");
1221 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
1222 WriteLiteral("</h3>\r\n </div>\r\n <div class=\"col-xs-12 col-md-7 home-count d-none d-md-block\">\r\n <span class=\"search-count\" id=\"searchCounterMain\">0</span> <span>");
1223 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg"));
1224 WriteLiteral("</span>\r\n </div>\r\n </div>\r\n\r\n <form id=\"main-search\" class=\"searchbar-wrapper\" action=\"/Default.aspx\" method=\"GET\">\r\n <input type=\"hidden\" name=\"ID\"");
1225 BeginWriteAttribute("value", " value=\'", 163419, "\'", 163440, 1);
1226 WriteAttributeValue("", 163427, searchPageId, 163427, 13, false);
1227 EndWriteAttribute();
1228 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" />
1229 <div class=""row form-wrapper no-gutters"">
1230
1231 <div class=""col-12 mb-10"">
1232 <div class=""searchbar"">
1233 <input type=""text""");
1234 BeginWriteAttribute("name", " name=\"", 163704, "\"", 163731, 1);
1235 WriteAttributeValue("", 163711, querySearchNameAttr, 163711, 20, false);
1236 EndWriteAttribute();
1237 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\"");
1238 BeginWriteAttribute("value", " value=\"", 163834, "\"", 163912, 1);
1239 WriteAttributeValue("", 163842, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 163842, 70, false);
1240 EndWriteAttribute();
1241 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\"");
1242 BeginWriteAttribute("value", " value=\"", 164006, "\"", 164089, 1);
1243 WriteAttributeValue("", 164014, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 164014, 75, false);
1244 EndWriteAttribute();
1245 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\"");
1246 BeginWriteAttribute("value", " value=\"", 164179, "\"", 164260, 1);
1247 WriteAttributeValue("", 164187, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 164187, 73, false);
1248 EndWriteAttribute();
1249 WriteLiteral(@" />
1250 </div>
1251 </div>
1252 <div class=""col-xs-12 col-md-8"">
1253 <div class=""row no-gutters"">
1254 <div class=""col-xs-12 col-md-6 input-col"">
1255 <div class=""dropdown"">
1256 <button class=""btn btn-dropdown dropdown-toggle reverse js-count"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
1257 ");
1258 Write(Translate("Smartpage:Search.Boligtype", "Boligtype"));
1259 WriteLiteral(@"
1260 </button>
1261 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
1262 <ul class=""bolig-dropdown list-unstyled"">
1263 ");
1264
1265 RenderBoligtypeCheckboxesDropdown();
1266 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">");
1267 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
1268 WriteLiteral(@"</button>
1269 </div>
1270
1271 </div>
1272
1273 </div>
1274 <div class=""col-xs-12 col-md-6 input-col"">
1275 <div class=""dropdown"">
1276 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
1277 ");
1278 Write(Translate("Smartpage:Search.Pris", "Pris"));
1279 WriteLiteral(@"
1280 </button>
1281 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris"">
1282 <input type=""text"" name=""pricemin"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input""");
1283 BeginWriteAttribute("placeholder", " placeholder=\'", 166502, "\'", 166579, 1);
1284 WriteAttributeValue("", 166516, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 166516, 63, false);
1285 EndWriteAttribute();
1286 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1287 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"));
1288 WriteLiteral("</option>\r\n");
1289 for (var i = 0; i <= 10000000; i += 100000)
1290 {
1291 if (i == 10000000)
1292 {
1293 WriteLiteral(" <option");
1294 BeginWriteAttribute("value", " value=\"", 167216, "\"", 167226, 1);
1295 WriteAttributeValue("", 167224, i, 167224, 2, false);
1296 EndWriteAttribute();
1297 WriteLiteral(" data-value=\'");
1298 Write(Converter.ToInt32(i).ToString("N0"));
1299 WriteLiteral("+\'>");
1300 Write(Converter.ToInt32(i).ToString("N0"));
1301 WriteLiteral("+</option>\r\n");
1302 }
1303 else
1304 {
1305 WriteLiteral(" <option");
1306 BeginWriteAttribute("value", " value=\"", 167558, "\"", 167568, 1);
1307 WriteAttributeValue("", 167566, i, 167566, 2, false);
1308 EndWriteAttribute();
1309 WriteLiteral(" data-value=\'");
1310 Write(Converter.ToInt32(i).ToString("N0"));
1311 WriteLiteral("\'>");
1312 Write(Converter.ToInt32(i).ToString("N0"));
1313 WriteLiteral("</option>\r\n");
1314 }
1315 }
1316 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\"");
1317 BeginWriteAttribute("placeholder", " placeholder=\'", 167974, "\'", 168051, 1);
1318 WriteAttributeValue("", 167988, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 167988, 63, false);
1319 EndWriteAttribute();
1320 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1321 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"));
1322 WriteLiteral("</option>\r\n");
1323 for (var i = 0; i <= 10000000; i += 100000)
1324 {
1325 if (i == 10000000)
1326 {
1327 WriteLiteral(" <option");
1328 BeginWriteAttribute("value", " value=\"", 168682, "\"", 168692, 1);
1329 WriteAttributeValue("", 168690, i, 168690, 2, false);
1330 EndWriteAttribute();
1331 WriteLiteral(" data-value=\'");
1332 Write(Converter.ToInt32(i).ToString("N0"));
1333 WriteLiteral("+\'>");
1334 Write(Converter.ToInt32(i).ToString("N0"));
1335 WriteLiteral("+</option>\r\n");
1336 }
1337 else
1338 {
1339 WriteLiteral(" <option");
1340 BeginWriteAttribute("value", " value=\"", 169024, "\"", 169034, 1);
1341 WriteAttributeValue("", 169032, i, 169032, 2, false);
1342 EndWriteAttribute();
1343 WriteLiteral(" data-value=\'");
1344 Write(Converter.ToInt32(i).ToString("N0"));
1345 WriteLiteral("\'>");
1346 Write(Converter.ToInt32(i).ToString("N0"));
1347 WriteLiteral("</option>\r\n");
1348 }
1349 }
1350 WriteLiteral(@" </select>
1351 </div>
1352 </div>
1353 </div>
1354 </div>
1355 </div>
1356 <div class=""col-xs-12 col-md-4 d-none d-md-block"">
1357 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1358 Write(Translate("Smartpage:Search.Søg", "Søg"));
1359 WriteLiteral(@"</button>
1360 </div>
1361 </div>
1362
1363 <div class=""row moresearch-btn no-gutters"">
1364 <div class=""col-sm-12"">
1365 <div class=""row align-items-center no-gutters"">
1366 <div class=""col-12 col-md-5"">
1367 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch-master"">
1368 <span class=""moreSearch-text""><i class=""fas fa-plus open-close white""></i> <span class=""not-open white"">");
1369 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder"));
1370 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> ");
1371 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt"));
1372 WriteLiteral(" </span></span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-md-3 mb-xs-4\">\r\n <a class=\"js-reset reset-btn white\">");
1373 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg"));
1374 WriteLiteral(@"</a>
1375 </div>
1376 <div class=""col-6 col-md-4 mb-xs-4"">
1377 <div class=""parent-purchases"">
1378 <label class=""checkbox-container white"">
1379 ");
1380 Write(Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet"));
1381 WriteLiteral(@"
1382 <input type=""checkbox"" name=""foraeldrekoebegnet"" value=""true"" class=""js-input-check"">
1383 <span class=""checkmark grey""></span>
1384 </label>
1385 </div>
1386 </div>
1387 </div>
1388
1389 <div class=""collapse"" id=""moreSearch-master"">
1390
1391 <h4 class=""mt-20""><b>");
1392 Write(Translate("Smartpage:Search.Bolig", "Bolig"));
1393 WriteLiteral(@"</b></h4>
1394 <div class=""row align-items-end mb-30"">
1395 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1396 <div class=""filter-container row"">
1397 <label class=""d-block col-12"">");
1398 Write(Translate("Smartpage:Search.Boligareal", "Boligareal"));
1399 WriteLiteral(@"</label>
1400 <div class=""col-6 pr-sm-0 pr-2"">
1401 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count""");
1402 BeginWriteAttribute("placeholder", " placeholder=\'", 172491, "\'", 172564, 1);
1403 WriteAttributeValue("", 172505, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 172505, 59, false);
1404 EndWriteAttribute();
1405 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1406 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
1407 WriteLiteral("</option>\r\n");
1408 for (var i = 0; i <= 300; i += 10)
1409 {
1410 if (i == 300)
1411 {
1412 WriteLiteral(" <option>");
1413 Write(i);
1414 WriteLiteral("+</option>\r\n");
1415 }
1416 else
1417 {
1418 WriteLiteral(" <option>");
1419 Write(i);
1420 WriteLiteral("</option>\r\n");
1421 }
1422 }
1423 WriteLiteral(@" </select>
1424 </div>
1425 <div class=""col-6 pl-sm-0 pl-2"">
1426 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count""");
1427 BeginWriteAttribute("placeholder", " placeholder=\'", 173947, "\'", 174020, 1);
1428 WriteAttributeValue("", 173961, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 173961, 59, false);
1429 EndWriteAttribute();
1430 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1431 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
1432 WriteLiteral("</option>\r\n");
1433 for (var i = 0; i <= 300; i += 10)
1434 {
1435 if (i == 300)
1436 {
1437 WriteLiteral(" <option>");
1438 Write(i);
1439 WriteLiteral("+</option>\r\n");
1440 }
1441 else
1442 {
1443 WriteLiteral(" <option>");
1444 Write(i);
1445 WriteLiteral("</option>\r\n");
1446 }
1447 }
1448 WriteLiteral(@" </select>
1449 </div>
1450 </div>
1451 </div>
1452 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1453 <div class=""filter-container row"">
1454 <label class=""d-block col-12"">");
1455 Write(Translate("Smartpage:Search.Grundareal", "Grundareal"));
1456 WriteLiteral(@"</label>
1457 <div class=""col-6 pr-sm-0 pr-2"">
1458 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count""");
1459 BeginWriteAttribute("placeholder", " placeholder=\'", 175799, "\'", 175872, 1);
1460 WriteAttributeValue("", 175813, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 175813, 59, false);
1461 EndWriteAttribute();
1462 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1463 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
1464 WriteLiteral("</option>\r\n");
1465 for (var i = 0; i <= 10000; i += 100)
1466 {
1467 if (i == 10000)
1468 {
1469 WriteLiteral(" <option");
1470 BeginWriteAttribute("value", " value=\"", 176512, "\"", 176541, 1);
1471 WriteAttributeValue("", 176520, Converter.ToInt32(i), 176520, 21, false);
1472 EndWriteAttribute();
1473 WriteLiteral(">");
1474 Write(Converter.ToInt32(i).ToString("N0"));
1475 WriteLiteral("+</option>\r\n");
1476 }
1477 else
1478 {
1479 WriteLiteral(" <option");
1480 BeginWriteAttribute("value", " value=\"", 176838, "\"", 176867, 1);
1481 WriteAttributeValue("", 176846, Converter.ToInt32(i), 176846, 21, false);
1482 EndWriteAttribute();
1483 WriteLiteral(">");
1484 Write(Converter.ToInt32(i).ToString("N0"));
1485 WriteLiteral("</option>\r\n");
1486 }
1487 }
1488 WriteLiteral(@" </select>
1489 </div>
1490 <div class=""col-6 pl-sm-0 pl-2"">
1491 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count""");
1492 BeginWriteAttribute("placeholder", " placeholder=\'", 177388, "\'", 177461, 1);
1493 WriteAttributeValue("", 177402, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 177402, 59, false);
1494 EndWriteAttribute();
1495 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1496 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
1497 WriteLiteral("</option>\r\n");
1498 for (var i = 0; i <= 10000; i += 100)
1499 {
1500 if (i == 10000)
1501 {
1502 WriteLiteral(" <option");
1503 BeginWriteAttribute("value", " value=\"", 178092, "\"", 178121, 1);
1504 WriteAttributeValue("", 178100, Converter.ToInt32(i), 178100, 21, false);
1505 EndWriteAttribute();
1506 WriteLiteral(">");
1507 Write(Converter.ToInt32(i).ToString("N0"));
1508 WriteLiteral("+</option>\r\n");
1509 }
1510 else
1511 {
1512 WriteLiteral(" <option");
1513 BeginWriteAttribute("value", " value=\"", 178418, "\"", 178447, 1);
1514 WriteAttributeValue("", 178426, Converter.ToInt32(i), 178426, 21, false);
1515 EndWriteAttribute();
1516 WriteLiteral(">");
1517 Write(Converter.ToInt32(i).ToString("N0"));
1518 WriteLiteral("</option>\r\n");
1519 }
1520 }
1521 WriteLiteral(@" </select>
1522 </div>
1523 </div>
1524 </div>
1525 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1526 <div class=""filter-container row"">
1527 <label class=""d-block col-12"">Antal rum</label>
1528
1529 <div class=""col-6 pr-sm-0 pr-2"">
1530 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count"">
1531 <option selected=""selected"" disabled=""disabled"">");
1532 Write(Translate("Smartpage:Search.Placeholder.Min", "Min"));
1533 WriteLiteral(@"</option>
1534 <option value=""1"">1</option>
1535 <option value=""2"">2</option>
1536 <option value=""3"">3</option>
1537 <option value=""4"">4</option>
1538 <option value=""5"">5+</option>
1539 </select>
1540 </div>
1541 <div class=""col-6 pl-sm-0 pl-2"">
1542 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count"">
1543 <option selected=""selected"" disabled=""disabled"">");
1544 Write(Translate("Smartpage:Search.Placeholder.Max", "Max"));
1545 WriteLiteral(@"</option>
1546 <option value=""1"">1</option>
1547 <option value=""2"">2</option>
1548 <option value=""3"">3</option>
1549 <option value=""4"">4</option>
1550 <option value=""5"">5+</option>
1551 </select>
1552 </div>
1553 </div>
1554 </div>
1555 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1556 <div class=""row"">
1557 <div class=""col-12 pr-2"">
1558 <div class=""filter-container"">
1559 <label class=""d-block"">Energimærke</label>
1560 ");
1561 WriteLiteral(" <select name=\"energylabel\" id=\"energylabel\" class=\"form-control reverse js-energylabel-select js-count\">\r\n <option disabled selected=\"selected\">");
1562 Write(Translate("Smartpage:Search.Vælg", "Vælg"));
1563 WriteLiteral(@"</option>
1564 <option value=""01"">G</option>
1565 <option value=""02"">F</option>
1566 <option value=""03"">E</option>
1567 <option value=""04"">D</option>
1568 <option value=""05"">C</option>
1569 <option value=""06"">B</option>
1570 <option value=""07"">A</option>
1571 <option value=""08"">A2010</option>
1572 <option value=""09"">A2015</option>
1573 <option value=""10"">A2020+</option>
1574 </select>
1575 </div>
1576 ");
1577 WriteLiteral(@" </div>
1578 </div>
1579 </div>
1580 <div class=""col-12 col-sm-6 col-lg-6 mt-3"">
1581 <h4");
1582 BeginWriteAttribute("class", " class=\"", 182953, "\"", 182961, 0);
1583 EndWriteAttribute();
1584 WriteLiteral("><b>");
1585 Write(Translate("Smartpage:Search.Økonomi", "Økonomi"));
1586 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">");
1587 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned"));
1588 WriteLiteral("</label>\r\n <div class=\"col-6 pr-sm-0 pr-2\">\r\n <input type=\"text\" name=\"subsidymin\" id=\"subsidymin\" class=\"form-control js-subsidymin-frontpage-input js-count\"");
1589 BeginWriteAttribute("placeholder", " placeholder=\'", 183523, "\'", 183590, 1);
1590 WriteAttributeValue("", 183537, Translate("Smartpage:Search.Placeholder.Min", "Min"), 183537, 53, false);
1591 EndWriteAttribute();
1592 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">");
1593 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"));
1594 WriteLiteral("</option>\r\n");
1595 for (var i = 0; i <= 25000; i += 1250)
1596 {
1597 if (i == 25000)
1598 {
1599 WriteLiteral(" <option");
1600 BeginWriteAttribute("value", " value=\"", 184234, "\"", 184263, 1);
1601 WriteAttributeValue("", 184242, Converter.ToInt32(i), 184242, 21, false);
1602 EndWriteAttribute();
1603 WriteLiteral(">");
1604 Write(Converter.ToInt32(i).ToString("N0"));
1605 WriteLiteral("+</option>\r\n");
1606 }
1607 else
1608 {
1609 WriteLiteral(" <option");
1610 BeginWriteAttribute("value", " value=\"", 184560, "\"", 184589, 1);
1611 WriteAttributeValue("", 184568, Converter.ToInt32(i), 184568, 21, false);
1612 EndWriteAttribute();
1613 WriteLiteral(">");
1614 Write(Converter.ToInt32(i).ToString("N0"));
1615 WriteLiteral("</option>\r\n");
1616 }
1617 }
1618 WriteLiteral(@" </select>
1619 </div>
1620 <div class=""col-6 pl-sm-0 pl-2"">
1621 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count""");
1622 BeginWriteAttribute("placeholder", " placeholder=\'", 185101, "\'", 185168, 1);
1623 WriteAttributeValue("", 185115, Translate("Smartpage:Search.Placeholder.Max", "Max"), 185115, 53, false);
1624 EndWriteAttribute();
1625 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1626 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"));
1627 WriteLiteral("</option>\r\n");
1628 for (var i = 0; i <= 25000; i += 1250)
1629 {
1630 if (i == 25000)
1631 {
1632 WriteLiteral(" <option");
1633 BeginWriteAttribute("value", " value=\"", 185808, "\"", 185837, 1);
1634 WriteAttributeValue("", 185816, Converter.ToInt32(i), 185816, 21, false);
1635 EndWriteAttribute();
1636 WriteLiteral(">");
1637 Write(Converter.ToInt32(i).ToString("N0"));
1638 WriteLiteral("+</option>\r\n");
1639 }
1640 else
1641 {
1642 WriteLiteral(" <option");
1643 BeginWriteAttribute("value", " value=\"", 186134, "\"", 186163, 1);
1644 WriteAttributeValue("", 186142, Converter.ToInt32(i), 186142, 21, false);
1645 EndWriteAttribute();
1646 WriteLiteral(">");
1647 Write(Converter.ToInt32(i).ToString("N0"));
1648 WriteLiteral("</option>\r\n");
1649 }
1650 }
1651 WriteLiteral(@" </select>
1652 </div>
1653 </div>
1654 </div>
1655 <div class=""col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0"">
1656 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1657 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre"));
1658 WriteLiteral(@"</button>
1659 </div>
1660 </div>
1661 </div>
1662 </div>
1663 </div>
1664 <div class=""row d-block d-md-none form-wrapper no-gutters"">
1665 <div class=""col-xs-12 col-md-2"">
1666 <button type=""submit"" class=""btn btn-block btn-search dark-red""><i class=""fa fa-search""></i> ");
1667 Write(Translate("Smartpage:Search.Søg", "Søg"));
1668 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n");
1669 }
1670 WriteLiteral(" </div>\r\n\r\n");
1671
1672 RenderSlideMenu(false, Convert.ToString(settings_Maeglersogning));
1673 WriteLiteral("\r\n");
1674 if (isBrokerPage)
1675 {
1676 WriteLiteral(" <section class=\"maegler-navbar\">\r\n ");
1677 Write(RenderNavigation(new
1678 {
1679 id = "navbar-main",
1680 cssclass = "dwnavigation",
1681 template = "ul_li.xslt",
1682 StartLevel = 1,
1683 EndLevel = 1
1684 }));
1685 WriteLiteral("\r\n </section>\r\n");
1686 }
1687 WriteLiteral("\r\n <div class=\"visual-editor\">\r\n");
1688 WriteLiteral("\r\n\r\n");
1689 WriteLiteral("\r\n");
1690 WriteLiteral("\r\n");
1691
1692 string listPageId = Converter.ToString(GetPageIdByNavigationTag("DynamicListFeed"));
1693 string parentPageId = Dynamicweb.Services.Pages.GetPage(Model.ID).Parent.ID.ToString();
1694 string topLayout = Model.Item.GetList("TopLayout") != null ? Model.Item.GetList("TopLayout").SelectedValue : "default";
1695 topLayout = topLayout == "default" && GetParentSettingsItem("ArticleTopLayout") != null ? GetParentSettingsItem("ArticleTopLayout").ToString().ToLower() : topLayout;
1696 string textLayout = Model.Item.GetList("TextLayout") != null ? Model.Item.GetList("TextLayout").SelectedValue : "default";
1697 textLayout = textLayout == "default" && GetParentSettingsItem("ArticleTextLayout") != null ? GetParentSettingsItem("ArticleTextLayout").ToString().ToLower() : textLayout;
1698 string imageLayout = Model.Item.GetList("ImageLayout") != null ? Model.Item.GetList("ImageLayout").SelectedValue : "default";
1699 imageLayout = imageLayout == "default" && GetParentSettingsItem("ArticleImageLayout") != null ? GetParentSettingsItem("ArticleImageLayout").ToString().ToLower() : imageLayout;
1700
1701 //string imageColumns = imageLayout == "straight" && textLayout != "full" ? "8" : "12";
1702 //string contentColumns = textLayout != "full" ? "8" : "12";
1703 string imageColumns = "12";
1704 string contentColumns = "12";
1705
1706 int externalParagraphId = Model.Item.GetItem("CTAParagraphLink") != null ? Model.Item.GetItem("CTAParagraphLink").ParagraphID : 0;
1707
1708 ArticleHeaderLayout headerLayout;
1709
1710 switch (topLayout)
1711 {
1712 case "default":
1713 headerLayout = ArticleHeaderLayout.Clean;
1714 break;
1715 case "split":
1716 headerLayout = ArticleHeaderLayout.Split;
1717 break;
1718 case "banner":
1719 headerLayout = ArticleHeaderLayout.Banner;
1720 break;
1721 case "overlay":
1722 headerLayout = ArticleHeaderLayout.Overlay;
1723 break;
1724 default:
1725 headerLayout = ArticleHeaderLayout.Clean;
1726 break;
1727 }
1728
1729
1730 Block articleContainer = new Block
1731 {
1732 Id = "ArticleContainer",
1733 SortId = 10,
1734 Design = new Design
1735 {
1736 RenderType = RenderType.Row
1737 },
1738 BlocksList = new List<Block> {
1739 new Block {
1740 Id = "ArticleBody",
1741 SortId = 30,
1742 Design = new Design {
1743 RenderType = RenderType.Column,
1744 Size = "12",
1745 HidePadding = true,
1746 CssClass = "margin-top-large"
1747 }
1748 }
1749 }
1750 };
1751 articlePage.Add(articleContainer);
1752
1753 ButtonLayout topBannerButtonLayout = ButtonLayout.Primary;
1754
1755 switch (Model.Item.GetString("ButtonDesign"))
1756 {
1757 case "primary":
1758 topBannerButtonLayout = ButtonLayout.Primary;
1759 break;
1760 case "secondary":
1761 topBannerButtonLayout = ButtonLayout.Secondary;
1762 break;
1763 case "teritary":
1764 topBannerButtonLayout = ButtonLayout.Tertiary;
1765 break;
1766 case "link":
1767 topBannerButtonLayout = ButtonLayout.Link;
1768 break;
1769 }
1770
1771 ArticleHeader topBanner = new ArticleHeader
1772 {
1773 Layout = headerLayout,
1774 Image = new Image { Path = Model.Item.GetFile("Image"), ImageDefault = new ImageSettings { Width = 1920, Height = 640 } },
1775 Heading = Model.Item.GetString("Title"),
1776 Subheading = Model.Item.GetString("Summary"),
1777 TextColor = "#fff",
1778 Author = Model.Item.GetString("Author"),
1779 Date = Model.Item.GetString("Date"),
1780 Category = GetArticleCategory(Model.ID),
1781 CategoryColor = GetArticleCategoryColor(Model.ID),
1782 Link = Model.Item.GetString("Link"),
1783 LinkText = Model.Item.GetString("LinkText"),
1784 ButtonLayout = topBannerButtonLayout,
1785 RatingScore = Model.Item.GetString("Rating") != null ? Converter.ToInt32(Model.Item.GetList("Rating").SelectedValue) : 0,
1786 RatingOutOf = Model.Item.GetString("Rating") != null ? Model.Item.GetList("Rating").Options.Count : 0,
1787 ExternalParagraphId = externalParagraphId
1788 };
1789
1790 Block articleTop = new Block
1791 {
1792 Id = "ArticleHead",
1793 SortId = 20,
1794 Component = topBanner,
1795 Design = new Design
1796 {
1797 RenderType = RenderType.Column,
1798 Size = "12",
1799 HidePadding = true,
1800 CssClass = "article-head"
1801 }
1802 };
1803 //articlePage.Add("ArticleContainer", articleTop);
1804
1805
1806 Block articleBodyRow = new Block
1807 {
1808 Id = "ArticleBodyRow",
1809 SortId = 10,
1810 SkipRenderBlocksList = true
1811 };
1812 articlePage.Add("ArticleBody", articleBodyRow);
1813
1814
1815 if (Model.Item.GetString("Paragraphs") != null)
1816 {
1817 int count = 0;
1818 foreach (var paragraph in Model.Item.GetItems("Paragraphs"))
1819 {
1820 if (!paragraph.GetBoolean("RenderAsQuote"))
1821 {
1822 string enableDropCap = Model.Item.GetString("EnableDropCap") != null ? Model.Item.GetList("EnableDropCap").SelectedValue.ToLower() : "default";
1823 enableDropCap = enableDropCap == "default" && GetParentSettingsItem("EnableDropCap") != null ? GetParentSettingsItem("EnableDropCap").ToString().ToLower() : enableDropCap;
1824 string text = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : "";
1825
1826 if (!String.IsNullOrEmpty(text) && enableDropCap == "true" && count == 0 && paragraph.GetString("Text").Substring(0, 3) == "<p>")
1827 {
1828 string firstLetter = paragraph.GetString("Text").Substring(3, 1);
1829 text = paragraph.GetString("Text").Remove(3, 1);
1830 text = text.Insert(3, "<span class=\"article__drop-cap\">" + firstLetter + "</span>");
1831 }
1832
1833 if (!String.IsNullOrEmpty(paragraph.GetString("Heading")))
1834 {
1835 Block articleParagraphHeader = new Block
1836 {
1837 Id = "ArticleParagraph" + count + "Heading",
1838 SortId = (count * 10) ,
1839 Component = new ArticleSubHeader { Title = paragraph.GetString("Heading") },
1840 Design = new Design
1841 {
1842 RenderType = RenderType.Column,
1843 Size = contentColumns,
1844 CssClass = "u-color-light--bg u-padding--lg"
1845 }
1846 };
1847 articlePage.Add("ArticleBodyRow", articleParagraphHeader);
1848 }
1849
1850 if (paragraph.GetFile("Image") != null)
1851 {
1852 string imageTitle = !string.IsNullOrEmpty(paragraph.GetString("Heading")) ? paragraph.GetString("Heading") : "";
1853
1854 Block articleParagraphImage = new Block
1855 {
1856 Id = "ArticleParagraph" + count + "Image",
1857 SortId = (count * 10) + 2,
1858 Design = new Design
1859 {
1860 RenderType = RenderType.Column,
1861 Size = imageColumns,
1862 CssClass = "u-color-light--bg u-padding--lg"
1863 }
1864 };
1865
1866 if (imageLayout == "banner")
1867 {
1868 ArticleBanner banner = new ArticleBanner
1869 {
1870 Image = new Image { Path = paragraph.GetFile("Image"), ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, Caption = paragraph.GetString("ImageCaption") },
1871 Heading = imageTitle,
1872 UseFilters = false
1873 };
1874 articleParagraphImage.Component = banner;
1875 }
1876 else
1877 {
1878 ArticleImage image = new ArticleImage
1879 {
1880 Image = new Image
1881 {
1882 Path = paragraph.GetFile("Image"),
1883 Title = imageTitle,
1884 ImageDefault = new ImageSettings { Height = 650, Width = 1300 },
1885 Caption = paragraph.GetString("ImageCaption"),
1886 CssClass = "u-full-width"
1887 }
1888 };
1889 articleParagraphImage.Component = image;
1890 }
1891
1892 articlePage.Add("ArticleBodyRow", articleParagraphImage);
1893 }
1894
1895 if (!String.IsNullOrEmpty(paragraph.GetString("VideoURL")))
1896 {
1897 Block articleParagraphVideo = new Block
1898 {
1899 Id = "ArticleParagraph" + count + "Video",
1900 SortId = (count * 10) + 3,
1901 Component = new ArticleVideo { Url = paragraph.GetString("VideoURL"), AutoPlay = "false" },
1902 Design = new Design
1903 {
1904 RenderType = RenderType.Column,
1905 Size = imageColumns,
1906 CssClass = "u-color-light--bg u-padding--lg"
1907 }
1908 };
1909 articlePage.Add("ArticleBodyRow", articleParagraphVideo);
1910 }
1911
1912 if (!String.IsNullOrEmpty(text))
1913 {
1914 Block articleParagraphText = new Block
1915 {
1916 Id = "ArticleParagraph" + count + "Text",
1917 SortId = (count * 10) + 3,
1918 Component = new ArticleText { Text = text },
1919 Design = new Design
1920 {
1921 RenderType = RenderType.Column,
1922 Size = contentColumns,
1923 CssClass = "u-color-light--bg u-padding--lg"
1924 }
1925 };
1926
1927 articlePage.Add("ArticleBodyRow", articleParagraphText);
1928 }
1929 }
1930 else
1931 {
1932 if (!String.IsNullOrEmpty(paragraph.GetString("Text")))
1933 {
1934 string quoteText = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : "";
1935 string quoteAuthor = paragraph.GetString("Heading") != null ? paragraph.GetString("Heading") : "";
1936
1937 Block articleParagraphQuote = new Block
1938 {
1939 Id = "ArticleParagraph" + count + "Quote",
1940 SortId = (count * 10) + 3,
1941 Component = new ArticleQuote { Image = new Image { Path = paragraph.GetFile("Image") }, Text = quoteText, Author = quoteAuthor },
1942 Design = new Design
1943 {
1944 RenderType = RenderType.Column,
1945 Size = contentColumns,
1946 CssClass = "u-color-light--bg u-padding--lg"
1947 }
1948 };
1949 articlePage.Add("ArticleBodyRow", articleParagraphQuote);
1950 }
1951 }
1952
1953 count++;
1954 }
1955 }
1956
1957 articleBodyRow.Component = new ArticleBodyRow { SubBlocks = articleBodyRow.BlocksList, TopLayout = topLayout, TextLayout = textLayout };
1958
1959
1960 //Related
1961 string showRelatedArtices = Model.Item.GetString("ShowRelatedArticles") != null ? Model.Item.GetList("ShowRelatedArticles").SelectedValue.ToLower() : "default";
1962 showRelatedArtices = showRelatedArtices == "default" && GetParentSettingsItem("ShowRelatedArticles") != null ? GetParentSettingsItem("ShowRelatedArticles").ToString().ToLower() : showRelatedArtices;
1963
1964 if (showRelatedArtices == "true")
1965 {
1966 Block articleRelated = new Block
1967 {
1968 Id = "ArticleRelated",
1969 SortId = 30,
1970 Component = new ArticleRelated { Title = Translate("Related articles"), FeedPageId = listPageId, Query = "sourceType=Page&sourcePage=" + parentPageId, PageSize = 4, CurrentPageId = Model.ID.ToString() },
1971 Design = new Design
1972 {
1973 RenderType = RenderType.Column,
1974 Size = "12"
1975 }
1976 };
1977 articlePage.Add("ArticleContainer", articleRelated);
1978 }
1979 WriteLiteral("\r\n\r\n");
1980 WriteLiteral("<section class=\"center-container content-container dw-mod\">\r\n ");
1981 Write(RenderBlockList(articlePage.BlocksRoot.BlocksList));
1982 WriteLiteral("\r\n</section>\r\n </div>\r\n\r\n");
1983 if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true)
1984 {
1985 string bName = MyBroker.Broker.Name;
1986 string bClass = "na";
1987 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png";
1988
1989 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName))
1990 {
1991 bName = MyBroker.Broker.CompanyName;
1992 }
1993 try
1994 {
1995 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl");
1996 if (!string.IsNullOrEmpty(imgUrl))
1997 {
1998 bImage = imgUrl;
1999 bClass = "";
2000 }
2001 }
2002 catch
2003 {
2004 // Ignore
2005 }
2006
2007 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId");
2008 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
2009
2010 WriteLiteral(" <section class=\"din-maegler\">\r\n <div");
2011 BeginWriteAttribute("class", " class=\"", 204957, "\"", 204984, 2);
2012 WriteAttributeValue("", 204965, "img-wrapper", 204965, 11, true);
2013 WriteAttributeValue(" ", 204976, bClass, 204977, 7, false);
2014 EndWriteAttribute();
2015 BeginWriteAttribute("style", " style=\"", 204985, "\"", 205024, 3);
2016 WriteAttributeValue("", 204993, "background-image:url(\'", 204993, 22, true);
2017 WriteAttributeValue("", 205015, bImage, 205015, 7, false);
2018 WriteAttributeValue("", 205022, "\')", 205022, 2, true);
2019 EndWriteAttribute();
2020 WriteLiteral(@"></div>
2021 <div class=""container"">
2022 <div class=""col-12 col-sm-12 col-md-6 offset-md-6"">
2023 <h2>Din personlige mægler</h2>
2024 <div class=""row"">
2025 <div class=""col-12 col-sm-6"">
2026 <p>
2027 <b class=""my-broker-name"">");
2028 Write(MyBroker.Employee.Name);
2029 WriteLiteral("</b><br>\r\n");
2030 if (!string.IsNullOrEmpty(MyBroker.Employee.Email))
2031 {
2032 WriteLiteral("Mail: <a");
2033 BeginWriteAttribute("href", " href=\"", 205581, "\"", 205641, 2);
2034 WriteAttributeValue("", 205588, "mailto:", 205588, 7, true);
2035 WriteAttributeValue("", 205595, ExtractMaskedEmail(MyBroker.Employee.Email), 205595, 46, false);
2036 EndWriteAttribute();
2037 WriteLiteral(" class=\"my-broker-email\">");
2038 Write(ExtractMaskedEmail(MyBroker.Employee.Email));
2039 WriteLiteral("</a><br>");
2040
2041 }
2042 if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile))
2043 {
2044 WriteLiteral("Tlf.: <a");
2045 BeginWriteAttribute("href", " href=\"", 205940, "\"", 205983, 2);
2046 WriteAttributeValue("", 205947, "tel:", 205947, 4, true);
2047 WriteAttributeValue("", 205951, MyBroker.Employee.PhoneMobile, 205951, 32, false);
2048 EndWriteAttribute();
2049 WriteLiteral(" class=\"my-broker-phone\">");
2050 Write(FormatPhoneNumber(MyBroker.Employee.PhoneMobile));
2051 WriteLiteral("</a>");
2052
2053 }
2054 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
2055 {
2056 WriteLiteral("Tlf.: <a");
2057 BeginWriteAttribute("href", " href=\"", 206283, "\"", 206322, 2);
2058 WriteAttributeValue("", 206290, "tel:", 206290, 4, true);
2059 WriteAttributeValue("", 206294, MyBroker.Broker.Telephone, 206294, 28, false);
2060 EndWriteAttribute();
2061 WriteLiteral(" class=\"my-broker-phone\">");
2062 Write(FormatPhoneNumber(MyBroker.Broker.Telephone));
2063 WriteLiteral("</a>");
2064
2065 }
2066 WriteLiteral(" </p>\r\n </div>\r\n <div class=\"col-12 col-sm-6\">\r\n <p>\r\n <b class=\"my-broker-company-name\">");
2067 Write(bName);
2068 WriteLiteral("</b><br>\r\n <span class=\"my-broker-company-address\">");
2069 Write(MyBroker.Broker.Address);
2070 WriteLiteral("</span><br>\r\n <span class=\"my-broker-company-zip\">");
2071 Write(MyBroker.Broker.ZipCode);
2072 WriteLiteral("</span> <span class=\"my-broker-company-city\">");
2073 Write(MyBroker.Broker.City);
2074 WriteLiteral("</span><br>\r\n");
2075 if (!string.IsNullOrEmpty(bEmail))
2076 {
2077 WriteLiteral("Mail: <a");
2078 BeginWriteAttribute("href", " href=\"", 207111, "\"", 207134, 2);
2079 WriteAttributeValue("", 207118, "mailto:", 207118, 7, true);
2080 WriteAttributeValue("", 207125, bEmail, 207125, 9, false);
2081 EndWriteAttribute();
2082 WriteLiteral(" class=\"my-broker-broker-email\">");
2083 Write(bEmail);
2084 WriteLiteral("</a><br>");
2085
2086 }
2087 if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
2088 {
2089 WriteLiteral("Tlf.: <a");
2090 BeginWriteAttribute("href", " href=\"", 207399, "\"", 207438, 2);
2091 WriteAttributeValue("", 207406, "tel:", 207406, 4, true);
2092 WriteAttributeValue("", 207410, MyBroker.Broker.Telephone, 207410, 28, false);
2093 EndWriteAttribute();
2094 WriteLiteral(" class=\"my-broker-broker-phone\">");
2095 Write(FormatPhoneNumber(MyBroker.Broker.Telephone));
2096 WriteLiteral("</a>");
2097
2098 }
2099 WriteLiteral(" </p>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <br />\r\n <div class=\"col-12 col-sm-6\">\r\n <a");
2100 BeginWriteAttribute("href", " href=\"", 207814, "\"", 207849, 2);
2101 WriteAttributeValue("", 207821, "/", 207821, 1, true);
2102 WriteAttributeValue("", 207822, medlemsnummer.Substring(1), 207822, 27, false);
2103 EndWriteAttribute();
2104 WriteLiteral(" class=\"btn btn-primary btn-block my-broker-company-url\">Til mæglerens side</a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n");
2105 }
2106 WriteLiteral(" <footer>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n");
2107
2108 var navigationSettings = new NavigationSettings();
2109 navigationSettings.StartLevel = 1;
2110 navigationSettings.StopLevel = 3;
2111 navigationSettings.ExpandMode = ExpandMode.All;
2112 navigationSettings.RootAreaId = 1;
2113 navigationSettings.RootNavigationTag = "footer-nav";
2114
2115 WriteLiteral(" ");
2116 Write(Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings));
2117 WriteLiteral("\r\n </div>\r\n </div>\r\n </footer>\r\n\r\n");
2118 if (Model.CurrentUser == null || Model.CurrentUser.ID <= 0)
2119 {
2120 WriteLiteral(@" <div id=""panel-login"" class=""panel panel-form js-loginforms"">
2121 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2122 <b></b>
2123 </button>
2124 <div class=""loginform login"">
2125 ");
2126 if (loginParagraphId > 0)
2127 {
2128 WriteLiteral("\r\n ");
2129 Write(RenderParagraphContent(loginParagraphId));
2130 WriteLiteral("\r\n ");
2131
2132 }
2133 WriteLiteral(" </div>\r\n <div class=\"loginform register js-register-form-wrapper\" style=\"display: none;\">\r\n");
2134 if (createUserParagraphId > 0)
2135 {
2136 WriteLiteral("\r\n ");
2137 Write(RenderParagraphContent(createUserParagraphId));
2138 WriteLiteral("\r\n ");
2139
2140 }
2141 WriteLiteral(" </div>\r\n");
2142 WriteLiteral("<div class=\"loginform forgotpw\" style=\"display: none;\">\r\n <h2 class=\"forgotpw-reg\">");
2143 Write(Translate("forgot-pw-reg-title", "Glemt adgangskode"));
2144 WriteLiteral("</h2>\r\n <h2 class=\"forgotpw-broker\">");
2145 Write(Translate("forgot-pw-broker-title", "Tilmeldt via. mægler"));
2146 WriteLiteral("</h2>\r\n <form class=\"form-body js-forgotpw-form\" method=\"post\"");
2147 BeginWriteAttribute("action", " action=\"", 210284, "\"", 210293, 0);
2148 EndWriteAttribute();
2149 WriteLiteral(">\r\n <input type=\"hidden\" name=\"AccessUserShopID\" class=\"js-forgotpw-shopid\" value=\"SHOP6\" />\r\n <p class=\"forgotpw-reg\">");
2150 Write(Translate("forgot-pw-reg-teaser", "Har du glemt din adgangskode? Udfyld din e-mail herunder og få tilsendt instrukser for nulstillelse/ændring af din adgangskode."));
2151 WriteLiteral("</p>\r\n <p class=\"forgotpw-broker\">");
2152 Write(Translate("forgot-pw-broker-teaser", "Er du blevet tilmeldt via. din mægler, men mangler adgangskode til dit login? Udfyld e-mailen du har oplyst hos mægleren og få tilsendt instrukser for nulstillelse/ændring af din adgangskode."));
2153 WriteLiteral(@"</p>
2154 <div class=""form-group"">
2155 <input name=""AccessUserEmail"" type=""email"" pattern=""[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$"" placeholder=""E-mail"" class=""form-control js-forgotpw-email"" required />
2156 </div>
2157 <button class=""btn btn-primary btn-block"" type=""submit"">");
2158 Write(Translate("forgot-pw-cta", "Nulstil adgangskode"));
2159 WriteLiteral("</button>\r\n <br />\r\n <div class=\"js-forgotpw-message\"></div>\r\n </form>\r\n\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-default btn-block action-login\">");
2160 Write(Translate("forgot-pw-back-to-login", "Tilbage til login"));
2161 WriteLiteral("</button>\r\n</div>\r\n\r\n </div>\r\n");
2162 }
2163 WriteLiteral("\r\n");
2164 WriteLiteral("\r\n");
2165
2166 string privacyPolicyText = Translate("Smartpage:PrivacyPolicyText", "* Der samles ingen personlige oplysninger uden dit udtrykkelige samtykke. Ved at klikke på denne checkboks giver du dit samtykke til, at dine data samles og behandles af RealMæglerne A/S for at kunne kontakte dig. Du kan til enhver tid tilbagekalde dit samtykke. For at gøre dette skal du blot sende en meddelelse til");
2167 WriteLiteral("\r\n<div id=\"panel-kontakt-koeberraadgivning\" class=\"panel panel-form\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"panel-form\" aria-label=\"Close\">\r\n <b></b>\r\n </button>\r\n <h2>");
2168 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler"));
2169 WriteLiteral("</h2>\r\n <form id=\"form-koeberraadgivning\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>");
2170 Write(Translate("form-navn", "Navn"));
2171 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\" tabindex=\"1\"");
2172 BeginWriteAttribute("placeholder", " placeholder=\'", 212568, "\'", 212650, 1);
2173 WriteAttributeValue("", 212582, Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn"), 212582, 68, false);
2174 EndWriteAttribute();
2175 BeginWriteAttribute("value", " value=\'", 212651, "\'", 212690, 1);
2176 WriteAttributeValue("", 212659, UserContext.Current.User?.Name, 212659, 31, false);
2177 EndWriteAttribute();
2178 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2179 Write(Translate("form-email", "E-mail"));
2180 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" tabindex=\"2\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2181 BeginWriteAttribute("placeholder", " placeholder=\'", 212967, "\'", 213052, 1);
2182 WriteAttributeValue("", 212981, Translate("Smartpage:Kontakt.Placeholder.Email", "Indtast din e-mail"), 212981, 71, false);
2183 EndWriteAttribute();
2184 BeginWriteAttribute("value", " value=\'", 213053, "\'", 213093, 1);
2185 WriteAttributeValue("", 213061, UserContext.Current.User?.Email, 213061, 32, false);
2186 EndWriteAttribute();
2187 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2188 Write(Translate("form-mobile", "Mobil nr."));
2189 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"3\" maxlength=\"20\" name=\"mobile\"");
2190 BeginWriteAttribute("placeholder", " placeholder=\'", 213404, "\'", 213489, 1);
2191 WriteAttributeValue("", 213418, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 213418, 71, false);
2192 EndWriteAttribute();
2193 BeginWriteAttribute("value", " value=\'", 213490, "\'", 213530, 1);
2194 WriteAttributeValue("", 213498, UserContext.Current.User?.Phone, 213498, 32, false);
2195 EndWriteAttribute();
2196 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2197 Write(Translate("form-telephone", "Telefon nr."));
2198 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"4\" maxlength=\"20\" name=\"telefonnummer\"");
2199 BeginWriteAttribute("placeholder", " placeholder=\'", 213813, "\'", 213897, 1);
2200 WriteAttributeValue("", 213827, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 213827, 70, false);
2201 EndWriteAttribute();
2202 BeginWriteAttribute("value", " value=\'", 213898, "\'", 213939, 1);
2203 WriteAttributeValue("", 213906, UserContext.Current?.User?.Phone, 213906, 33, false);
2204 EndWriteAttribute();
2205 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <h3>");
2206 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"));
2207 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2208 Write(Translate("form-zip", "Post nr"));
2209 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\" tabindex=\"5\"");
2210 BeginWriteAttribute("placeholder", " placeholder=\'", 214347, "\'", 214425, 1);
2211 WriteAttributeValue("", 214361, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 214361, 64, false);
2212 EndWriteAttribute();
2213 BeginWriteAttribute("value", " value=\"", 214426, "\"", 214442, 1);
2214 WriteAttributeValue("", 214434, userZip, 214434, 8, false);
2215 EndWriteAttribute();
2216 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2217 Write(Translate("form-city", "By"));
2218 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-city\" type=\"text\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"form-group overflow-unset\">\r\n <label><strong>");
2219 Write(Translate("form-adresse", "Adresse"));
2220 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\" tabindex=\"6\"");
2221 BeginWriteAttribute("placeholder", " placeholder=\'", 215009, "\'", 215099, 1);
2222 WriteAttributeValue("", 215023, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 215023, 76, false);
2223 EndWriteAttribute();
2224 WriteLiteral(" required />\r\n\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2225 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2226 WriteLiteral(@"</label>
2227 </div>
2228 <button class=""form-control text-left js-collapse-focus"" type=""button"" data-toggle=""collapse"" data-target=""#kontaktkoeberrradgiver-collapse"" aria-expanded=""false"" aria-controls=""kontaktkoeberrradgiver-collapse"">
2229 <strong class=""f-12""><i class=""fas fa-plus""></i> ");
2230 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar"));
2231 WriteLiteral("</strong>\r\n </button>\r\n <div class=\"collapse\" id=\"kontaktkoeberrradgiver-collapse\">\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\"");
2232 BeginWriteAttribute("placeholder", " placeholder=\'", 215893, "\'", 215971, 1);
2233 WriteAttributeValue("", 215907, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 215907, 64, false);
2234 EndWriteAttribute();
2235 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button type=\"submit\" class=\"btn btn-green btn-block\">");
2236 Write(Translate("KontaktMægler", "Kontakt Mægler"));
2237 WriteLiteral(@"</button>
2238 </div>
2239 </div>
2240 </div>
2241 <div class=""form-group mt-3"">
2242 <div class=""checkbox"">
2243 <label>
2244 <input type=""checkbox"" name=""kontaktmigok"" required />
2245
2246 <span>");
2247 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2248 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2249 Write(privacyPolicyText);
2250 WriteLiteral(" <a");
2251 BeginWriteAttribute("href", " href=\"", 216784, "\"", 216808, 2);
2252 WriteAttributeValue("", 216791, "mailto:", 216791, 7, true);
2253 WriteAttributeValue("", 216798, termsMail, 216798, 10, false);
2254 EndWriteAttribute();
2255 WriteLiteral(">");
2256 Write(termsMail);
2257 WriteLiteral("</a>.\r\n Læs mere på <a");
2258 BeginWriteAttribute("href", " href=\"", 216853, "\"", 216887, 1);
2259 WriteAttributeValue("", 216860, settings_Persondatapolitik, 216860, 27, false);
2260 EndWriteAttribute();
2261 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n\r\n <input type=\"hidden\" name=\"fn\" value=\"krk\" />\r\n <input type=\"hidden\" name=\"origin\"");
2262 BeginWriteAttribute("value", " value=\"", 217033, "\"", 217041, 0);
2263 EndWriteAttribute();
2264 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2265 BeginWriteAttribute("value", " value=\"", 217091, "\"", 217099, 0);
2266 EndWriteAttribute();
2267 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2268 BeginWriteAttribute("value", " value=\"", 217147, "\"", 217171, 1);
2269 WriteAttributeValue("", 217155, Pageview.AreaID, 217155, 16, false);
2270 EndWriteAttribute();
2271 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\"");
2272 BeginWriteAttribute("value", " value=\"", 217220, "\"", 217236, 1);
2273 WriteAttributeValue("", 217228, butikId, 217228, 8, false);
2274 EndWriteAttribute();
2275 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2276 BeginWriteAttribute("value", " value=\"", 217290, "\"", 217298, 0);
2277 EndWriteAttribute();
2278 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2279 BeginWriteAttribute("value", " value=\"", 217349, "\"", 217357, 0);
2280 EndWriteAttribute();
2281 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2282 BeginWriteAttribute("value", " value=\"", 217407, "\"", 217415, 0);
2283 EndWriteAttribute();
2284 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-advisor\" style=\"display:none;\">\r\n <h2>");
2285 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2286 WriteLiteral("</h2>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2287 BeginWriteAttribute("src", " src=\"", 217648, "\"", 217654, 0);
2288 EndWriteAttribute();
2289 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2290 </div>
2291 <div class=""col-6"">
2292 <p class=""js-maegler-name""></p>
2293 <p class=""js-maegler-address""></p>
2294 <p class=""js-maegler-phone""></p>
2295 <p class=""js-maegler-mail""></p>
2296 </div>
2297 </div>
2298 <p>");
2299 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2300 WriteLiteral(@"</p>
2301 </div>
2302 </div>
2303
2304 <!--ÅBENT HUS-->
2305 <div id=""panel-aabenthus"" class=""panel panel-form"">
2306 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2307 <b></b>
2308 </button>
2309
2310
2311 <form id=""form-aabenthus"" method=""POST"" action=""/InboxHandler"">
2312 <h2>");
2313 Write(Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus"));
2314 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>");
2315 Write(Translate("Smarptage:Adresse", "Adresse:"));
2316 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>");
2317 Write(Translate("Smarptage:Date", "Dato:"));
2318 WriteLiteral("</strong> <label class=\"js-aabenthus-date mb-0\"></label>\r\n </div>\r\n <div class=\"d-block mb-4\">\r\n <strong>");
2319 Write(Translate("Smarptage:Time", "Tidspunkt:"));
2320 WriteLiteral("</strong> <label class=\"js-aabenthus-time mb-0\"></label>\r\n </div>\r\n <h3>");
2321 Write(Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger"));
2322 WriteLiteral("</h3>\r\n <div class=\"form-group\">\r\n <label for=\"aabenthus-name\"><strong>");
2323 Write(Translate("form-navn", "Navn"));
2324 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2325 BeginWriteAttribute("placeholder", " placeholder=\'", 219272, "\'", 219356, 1);
2326 WriteAttributeValue("", 219286, Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn"), 219286, 70, false);
2327 EndWriteAttribute();
2328 BeginWriteAttribute("value", " value=\'", 219357, "\'", 219397, 1);
2329 WriteAttributeValue("", 219365, UserContext.Current?.User?.Name, 219365, 32, false);
2330 EndWriteAttribute();
2331 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2332 Write(Translate("form-email", "E-mail"));
2333 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2334 BeginWriteAttribute("placeholder", " placeholder=\'", 219661, "\'", 219748, 1);
2335 WriteAttributeValue("", 219675, Translate("Smartpage:Aabenthus.Placeholder.Email", "Indtast din e-mail"), 219675, 73, false);
2336 EndWriteAttribute();
2337 BeginWriteAttribute("value", " value=\'", 219749, "\'", 219789, 1);
2338 WriteAttributeValue("", 219757, UserContext.Current.User?.Email, 219757, 32, false);
2339 EndWriteAttribute();
2340 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2341 Write(Translate("form-mobile", "Mobil nr."));
2342 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2343 BeginWriteAttribute("placeholder", " placeholder=\'", 220082, "\'", 220169, 1);
2344 WriteAttributeValue("", 220096, Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr."), 220096, 73, false);
2345 EndWriteAttribute();
2346 BeginWriteAttribute("value", " value=\'", 220170, "\'", 220210, 1);
2347 WriteAttributeValue("", 220178, UserContext.Current.User?.Phone, 220178, 32, false);
2348 EndWriteAttribute();
2349 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2350 Write(Translate("form-telephone", "Telefon nr."));
2351 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2352 BeginWriteAttribute("placeholder", " placeholder=\'", 220480, "\'", 220566, 1);
2353 WriteAttributeValue("", 220494, Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr."), 220494, 72, false);
2354 EndWriteAttribute();
2355 BeginWriteAttribute("value", " value=\'", 220567, "\'", 220607, 1);
2356 WriteAttributeValue("", 220575, UserContext.Current.User?.Phone, 220575, 32, false);
2357 EndWriteAttribute();
2358 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button type=\"submit\" class=\"btn btn-block btn-green\">");
2359 Write(Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus"));
2360 WriteLiteral(@"</button>
2361 </div>
2362 </div>
2363 </div>
2364 <div class=""form-group"">
2365 <div class=""checkbox"">
2366 <label>
2367 <input type=""checkbox"" name=""kontaktmigok"" required />
2368
2369 <span class=""base-color"">");
2370 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2371 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n ");
2372 Write(string.Format(Translate("Smartpage:Panel.Accept", "Du accepterer samtidig vores {0} og giver samtykke til, at dine data samles og behandles af RealMæglerne A/S for at kunne kontakte dig"), "<a href='" + settings_Persondatapolitik + "'>privatlivspolitikkerne</a>"));
2373 WriteLiteral("\r\n\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"ah\" />\r\n <input type=\"hidden\" name=\"origin\"");
2374 BeginWriteAttribute("value", " value=\"", 221770, "\"", 221778, 0);
2375 EndWriteAttribute();
2376 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2377 BeginWriteAttribute("value", " value=\"", 221828, "\"", 221843, 1);
2378 WriteAttributeValue("", 221836, userID, 221836, 7, false);
2379 EndWriteAttribute();
2380 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2381 BeginWriteAttribute("value", " value=\"", 221891, "\"", 221915, 1);
2382 WriteAttributeValue("", 221899, Pageview.AreaID, 221899, 16, false);
2383 EndWriteAttribute();
2384 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\"");
2385 BeginWriteAttribute("value", " value=\"", 221964, "\"", 221980, 1);
2386 WriteAttributeValue("", 221972, butikId, 221972, 8, false);
2387 EndWriteAttribute();
2388 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsaddresse\"");
2389 BeginWriteAttribute("value", " value=\"", 222034, "\"", 222042, 0);
2390 EndWriteAttribute();
2391 WriteLiteral(" class=\"js-aabenthus-address-input\" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2392 BeginWriteAttribute("value", " value=\"", 222131, "\"", 222139, 0);
2393 EndWriteAttribute();
2394 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2395 BeginWriteAttribute("value", " value=\"", 222190, "\"", 222198, 0);
2396 EndWriteAttribute();
2397 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2398 BeginWriteAttribute("value", " value=\"", 222248, "\"", 222256, 0);
2399 EndWriteAttribute();
2400 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2401 BeginWriteAttribute("value", " value=\"", 222306, "\"", 222314, 0);
2402 EndWriteAttribute();
2403 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsnr\"");
2404 BeginWriteAttribute("value", " value=\"", 222362, "\"", 222370, 0);
2405 EndWriteAttribute();
2406 WriteLiteral(" class=\"js-sagsnr\" />\r\n <input type=\"hidden\" name=\"productId\"");
2407 BeginWriteAttribute("value", " value=\"", 222439, "\"", 222495, 1);
2408 WriteAttributeValue("", 222447, Dynamicweb.Context.Current.Request["ProductId"], 222447, 48, false);
2409 EndWriteAttribute();
2410 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"aftaleid\"");
2411 BeginWriteAttribute("value", " value=\"", 222545, "\"", 222553, 0);
2412 EndWriteAttribute();
2413 WriteLiteral(@" class=""js-aftaleid"" />
2414
2415 <input type=""hidden"" name=""dateMail"" class=""js-aabenthus-date-input"" />
2416 <input type=""hidden"" name=""timeMail"" class=""js-aabenthus-time-input"" />
2417 <input type=""hidden"" name=""brokerImageMail"" class=""property-broker-image-input"" />
2418 <input type=""hidden"" name=""employeeNameMail"" class=""js-maegler-employee-name-input"" />
2419 <input type=""hidden"" name=""employeeTitleMail"" class=""js-maegler-employee-title-input"" />
2420 <input type=""hidden"" name=""employeeMailMail"" class=""js-maegler-mail-input"" />
2421 <input type=""hidden"" name=""employeeMobileMail"" class=""js-maegler-mobile-input"" />
2422 <input type=""hidden"" name=""employeePhoneMail"" class=""js-maegler-phone-input"" />
2423
2424 <input type=""hidden"" name=""brokerNameMail"" class=""js-broker-name-input"" />
2425 <input type=""hidden"" name=""brokerAddressMail"" class=""js-broker-address-input"" />
2426 <input type=""hidden"" name=""brokerPhoneMail"" class=""js-broker-phone-input"" />
2427 </form>
2428 <di");
2429 WriteLiteral("v id=\"tak-aabenthus\" style=\"display:none;\">\r\n <h2>");
2430 Write(Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!"));
2431 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>");
2432 Write(Translate("Smarptage:Adresse", "Adresse:"));
2433 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>");
2434 Write(Translate("Smarptage:Date", "Dato:"));
2435 WriteLiteral("</strong> <label class=\"js-aabenthus-date mb-0\"></label>\r\n\r\n </div>\r\n <div class=\"d-block mb-4\">\r\n <strong>");
2436 Write(Translate("Smarptage:Time", "Tidspunkt:"));
2437 WriteLiteral("</strong> <label class=\"js-aabenthus-time mb-0\"></label>\r\n\r\n </div>\r\n\r\n <div class=\"js-employee\">\r\n <p>");
2438 Write(String.Format(Translate("Smartpage:Aabenthus.Tak", "Vi glæder os til at vise dig boligen. Har du spørgsmål inden vi ses, kan du kontakte {0} fra RealMæglerne"), "<b class='js-aabenthus-employee-name'></b>"));
2439 WriteLiteral("</p>\r\n </div>\r\n <div class=\"js-not-employee\">\r\n <p>");
2440 Write(Translate("Smartpage:Aabenthus.Tak.NoEmployee", "Vi glæder os til at vise dig boligen. Har du spørgsmål inden vi ses, er du velkommen til at kontakte os"));
2441 WriteLiteral("</p>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"js-employee\">\r\n <div class=\"col-12 js-maegler-img aabenthus-image\">\r\n <div class=\"property-broker-image\"");
2442 BeginWriteAttribute("style", " style=\"", 224945, "\"", 224953, 0);
2443 EndWriteAttribute();
2444 WriteLiteral(@"></div>
2445
2446 </div>
2447 </div>
2448 <div class=""col-12"">
2449 <div class=""bg-base"">
2450
2451 <div class=""js-employee"">
2452 <h4 class=""js-maegler-employee-name""></h4>
2453 <div class=""icon-container"">
2454 <i class=""fas fa-envelope""></i> <span class=""js-maegler-mail""></span>
2455 </div>
2456 <div class=""icon-container"">
2457 <i class=""fas fa-phone""></i> <span class=""js-maegler-mobile""></span>
2458 </div>
2459 </div>
2460
2461
2462 <h4 class=""js-maegler-name""></h4>
2463 <div class=""icon-container"">
2464 <i class=""fas fa-map-marker-alt""></i> <span class=""js-maegler-address""></span>
2465 </div>
2466 <div class=""icon-container"">
2467 <i class=""fas fa-phone""></i> <span class=""js-maegler-phone""></span>");
2468 WriteLiteral(@"
2469
2470 </div>
2471 <a class=""btn btn-border"" onclick=""panelKontaktmaeglerGuldkoeber()"">KONTAKT MÆGLER</a>
2472 </div>
2473 </div>
2474 </div>
2475 </div>
2476 </div>
2477
2478 <!-- KONTAKT GULDKØBER -->
2479 <div id=""panel-kontakt-guldkoeber"" class=""panel panel-form"">
2480 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2481 <b></b>
2482 </button>
2483 <h2>");
2484 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler"));
2485 WriteLiteral("</h2>\r\n <form id=\"form-kontaktmaegler\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>");
2486 Write(Translate("form-navn", "Navn"));
2487 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2488 BeginWriteAttribute("placeholder", " placeholder=\'", 226738, "\'", 226783, 1);
2489 WriteAttributeValue("", 226752, Translate("form-navn", "Navn"), 226752, 31, false);
2490 EndWriteAttribute();
2491 BeginWriteAttribute("value", " value=\'", 226784, "\'", 226823, 1);
2492 WriteAttributeValue("", 226792, UserContext.Current.User?.Name, 226792, 31, false);
2493 EndWriteAttribute();
2494 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2495 Write(Translate("form-email", "E-mail"));
2496 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2497 BeginWriteAttribute("placeholder", " placeholder=\'", 227087, "\'", 227135, 1);
2498 WriteAttributeValue("", 227101, Translate("form-email", "E-mail"), 227101, 34, false);
2499 EndWriteAttribute();
2500 BeginWriteAttribute("value", " value=\'", 227136, "\'", 227176, 1);
2501 WriteAttributeValue("", 227144, UserContext.Current.User?.Email, 227144, 32, false);
2502 EndWriteAttribute();
2503 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2504 Write(Translate("form-mobile", "Mobil nr."));
2505 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2506 BeginWriteAttribute("placeholder", " placeholder=\'", 227474, "\'", 227559, 1);
2507 WriteAttributeValue("", 227488, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 227488, 71, false);
2508 EndWriteAttribute();
2509 BeginWriteAttribute("value", " value=\'", 227560, "\'", 227600, 1);
2510 WriteAttributeValue("", 227568, UserContext.Current.User?.Phone, 227568, 32, false);
2511 EndWriteAttribute();
2512 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2513 Write(Translate("form-telephone", "Telefon nr."));
2514 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2515 BeginWriteAttribute("placeholder", " placeholder=\'", 227870, "\'", 227954, 1);
2516 WriteAttributeValue("", 227884, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 227884, 70, false);
2517 EndWriteAttribute();
2518 BeginWriteAttribute("value", " value=\'", 227955, "\'", 227995, 1);
2519 WriteAttributeValue("", 227963, UserContext.Current.User?.Phone, 227963, 32, false);
2520 EndWriteAttribute();
2521 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2522 Write(Translate("form-zip", "Post nr"));
2523 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\"");
2524 BeginWriteAttribute("placeholder", " placeholder=\'", 228311, "\'", 228389, 1);
2525 WriteAttributeValue("", 228325, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 228325, 64, false);
2526 EndWriteAttribute();
2527 BeginWriteAttribute("value", " value=\"", 228390, "\"", 228406, 1);
2528 WriteAttributeValue("", 228398, userZip, 228398, 8, false);
2529 EndWriteAttribute();
2530 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2531 Write(Translate("form-city", "By"));
2532 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-city\" type=\"text\" readonly />\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group overflow-unset\">\r\n <label><strong>");
2533 Write(Translate("form-adresse", "Adresse"));
2534 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\"");
2535 BeginWriteAttribute("placeholder", " placeholder=\'", 228962, "\'", 229052, 1);
2536 WriteAttributeValue("", 228976, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 228976, 76, false);
2537 EndWriteAttribute();
2538 BeginWriteAttribute("value", " value=\"", 229053, "\"", 229073, 1);
2539 WriteAttributeValue("", 229061, userAddress, 229061, 12, false);
2540 EndWriteAttribute();
2541 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2542 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2543 WriteLiteral("</label>\r\n </div>\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\"");
2544 BeginWriteAttribute("placeholder", " placeholder=\'", 229399, "\'", 229477, 1);
2545 WriteAttributeValue("", 229413, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 229413, 64, false);
2546 EndWriteAttribute();
2547 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"checkbox\">\r\n <label>\r\n <input type=\"checkbox\" name=\"kontaktmigok\" required />\r\n\r\n <span>");
2548 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2549 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button type=\"submit\" class=\"btn btn-green btn-block\">");
2550 Write(Translate("KontaktMægler", "Kontakt Mægler"));
2551 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2552 Write(privacyPolicyText);
2553 WriteLiteral(" <a");
2554 BeginWriteAttribute("href", " href=\"", 230263, "\"", 230287, 2);
2555 WriteAttributeValue("", 230270, "mailto:", 230270, 7, true);
2556 WriteAttributeValue("", 230277, termsMail, 230277, 10, false);
2557 EndWriteAttribute();
2558 WriteLiteral(">");
2559 Write(termsMail);
2560 WriteLiteral("</a>.\r\n Læs mere på <a");
2561 BeginWriteAttribute("href", " href=\"", 230332, "\"", 230366, 1);
2562 WriteAttributeValue("", 230339, settings_Persondatapolitik, 230339, 27, false);
2563 EndWriteAttribute();
2564 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"gk\" />\r\n <input type=\"hidden\" name=\"origin\"");
2565 BeginWriteAttribute("value", " value=\"", 230509, "\"", 230517, 0);
2566 EndWriteAttribute();
2567 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2568 BeginWriteAttribute("value", " value=\"", 230567, "\"", 230582, 1);
2569 WriteAttributeValue("", 230575, userID, 230575, 7, false);
2570 EndWriteAttribute();
2571 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2572 BeginWriteAttribute("value", " value=\"", 230630, "\"", 230654, 1);
2573 WriteAttributeValue("", 230638, Pageview.AreaID, 230638, 16, false);
2574 EndWriteAttribute();
2575 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\"");
2576 BeginWriteAttribute("value", " value=\"", 230703, "\"", 230719, 1);
2577 WriteAttributeValue("", 230711, butikId, 230711, 8, false);
2578 EndWriteAttribute();
2579 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2580 BeginWriteAttribute("value", " value=\"", 230773, "\"", 230781, 0);
2581 EndWriteAttribute();
2582 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2583 BeginWriteAttribute("value", " value=\"", 230832, "\"", 230840, 0);
2584 EndWriteAttribute();
2585 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2586 BeginWriteAttribute("value", " value=\"", 230890, "\"", 230898, 0);
2587 EndWriteAttribute();
2588 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2589 BeginWriteAttribute("value", " value=\"", 230948, "\"", 230956, 0);
2590 EndWriteAttribute();
2591 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-maegler-guldkoeber\" style=\"display:none;\">\r\n <h2>");
2592 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2593 WriteLiteral("</h2>\r\n <p>");
2594 Write(Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:"));
2595 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2596 BeginWriteAttribute("src", " src=\"", 231318, "\"", 231324, 0);
2597 EndWriteAttribute();
2598 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2599 </div>
2600 <div class=""col-6"">
2601 <p class=""js-maegler-name""></p>
2602 <p class=""js-maegler-address""></p>
2603 <p class=""js-maegler-phone""></p>
2604 <p class=""js-maegler-mail""></p>
2605 </div>
2606 </div>
2607 <p>");
2608 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2609 WriteLiteral(@"</p>
2610 </div>
2611 </div>
2612
2613 <!-- BESTIL SALGSVURDERING -->
2614 <div id=""panel-salgsvurdering"" class=""panel panel-form"">
2615 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2616 <b></b>
2617 </button>
2618
2619 <form id=""bestil-salgsvurdering"" class=""buyer-advisor-form js-buyer-advisor-form"" method=""POST"" action=""/InboxHandler"">
2620 <h2 class=""js-buyer-advisor-header"">");
2621 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering"));
2622 WriteLiteral("</h2>\r\n <p>");
2623 Write(Translate("form-salgsvurdering-beskrivelse", ""));
2624 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>");
2625 Write(Translate("form-navn", "Navn"));
2626 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2627 BeginWriteAttribute("placeholder", " placeholder=\'", 232481, "\'", 232570, 1);
2628 WriteAttributeValue("", 232495, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 232495, 75, false);
2629 EndWriteAttribute();
2630 BeginWriteAttribute("value", " value=\'", 232571, "\'", 232610, 1);
2631 WriteAttributeValue("", 232579, UserContext.Current.User?.Name, 232579, 31, false);
2632 EndWriteAttribute();
2633 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2634 Write(Translate("form-email", "E-mail"));
2635 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2636 BeginWriteAttribute("placeholder", " placeholder=\'", 232874, "\'", 232966, 1);
2637 WriteAttributeValue("", 232888, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 232888, 78, false);
2638 EndWriteAttribute();
2639 BeginWriteAttribute("value", " value=\'", 232967, "\'", 233007, 1);
2640 WriteAttributeValue("", 232975, UserContext.Current.User?.Email, 232975, 32, false);
2641 EndWriteAttribute();
2642 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2643 Write(Translate("form-mobile", "Mobil nr."));
2644 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2645 BeginWriteAttribute("placeholder", " placeholder=\'", 233305, "\'", 233397, 1);
2646 WriteAttributeValue("", 233319, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 233319, 78, false);
2647 EndWriteAttribute();
2648 BeginWriteAttribute("value", " value=\'", 233398, "\'", 233438, 1);
2649 WriteAttributeValue("", 233406, UserContext.Current.User?.Phone, 233406, 32, false);
2650 EndWriteAttribute();
2651 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2652 Write(Translate("form-telephone", "Telefon nr."));
2653 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2654 BeginWriteAttribute("placeholder", " placeholder=\'", 233708, "\'", 233799, 1);
2655 WriteAttributeValue("", 233722, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 233722, 77, false);
2656 EndWriteAttribute();
2657 BeginWriteAttribute("value", " value=\'", 233800, "\'", 233840, 1);
2658 WriteAttributeValue("", 233808, UserContext.Current.User?.Phone, 233808, 32, false);
2659 EndWriteAttribute();
2660 WriteLiteral(" />\r\n </div>\r\n\r\n </div>\r\n\r\n <h3>");
2661 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"));
2662 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2663 Write(Translate("form-zip", "Post nr"));
2664 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\"");
2665 BeginWriteAttribute("placeholder", " placeholder=\'", 234260, "\'", 234338, 1);
2666 WriteAttributeValue("", 234274, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 234274, 64, false);
2667 EndWriteAttribute();
2668 BeginWriteAttribute("value", " value=\"", 234339, "\"", 234355, 1);
2669 WriteAttributeValue("", 234347, userZip, 234347, 8, false);
2670 EndWriteAttribute();
2671 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2672 Write(Translate("form-city", "By"));
2673 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-city\" type=\"text\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"form-group overflow-unset\">\r\n <label><strong>");
2674 Write(Translate("form-adresse", "Adresse"));
2675 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\"");
2676 BeginWriteAttribute("placeholder", " placeholder=\'", 234909, "\'", 234999, 1);
2677 WriteAttributeValue("", 234923, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 234923, 76, false);
2678 EndWriteAttribute();
2679 BeginWriteAttribute("value", " value=\"", 235000, "\"", 235020, 1);
2680 WriteAttributeValue("", 235008, userAddress, 235008, 12, false);
2681 EndWriteAttribute();
2682 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2683 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2684 WriteLiteral(@"</label>
2685 </div>
2686
2687 <button class=""form-control text-left js-collapse-focus"" type=""button"" data-toggle=""collapse"" data-target=""#salgsvurdering-collapse"" aria-expanded=""false"" aria-controls=""salgsvurdering-collapse"">
2688 <strong class=""f-12""><i class=""fas fa-plus""></i> ");
2689 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar"));
2690 WriteLiteral("</strong>\r\n </button>\r\n <div class=\"collapse\" id=\"salgsvurdering-collapse\">\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\"");
2691 BeginWriteAttribute("placeholder", " placeholder=\'", 235790, "\'", 235868, 1);
2692 WriteAttributeValue("", 235804, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 235804, 64, false);
2693 EndWriteAttribute();
2694 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>");
2695 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:"));
2696 WriteLiteral("</h3>\r\n <div class=\"col-12\">\r\n <div class=\"choose-broker row align-items-center active\">\r\n <div class=\"col-2\">\r\n <input class=\"js-broker-radio\" type=\"radio\"");
2697 BeginWriteAttribute("id", " id=\"", 236314, "\"", 236319, 0);
2698 EndWriteAttribute();
2699 WriteLiteral(" name=\"choose-broker\"");
2700 BeginWriteAttribute("value", " value=\"", 236341, "\"", 236349, 0);
2701 EndWriteAttribute();
2702 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\"");
2703 BeginWriteAttribute("for", " for=\"", 236415, "\"", 236421, 0);
2704 EndWriteAttribute();
2705 WriteLiteral("></label><div class=\"check\">\r\n <div class=\"inside\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <img");
2706 BeginWriteAttribute("src", " src=\"", 236667, "\"", 236673, 0);
2707 EndWriteAttribute();
2708 WriteLiteral(@" class=""img-fluid js-broker-image"">
2709 </div>
2710 <div class=""col-6"">
2711 <span class=""d-block"">
2712 <strong class=""js-choose-broker-name""></strong>
2713 </span>
2714 <span class=""js-choose-broker-address""></span>
2715 <input type=""hidden"" class=""js-choose-broker-phone""");
2716 BeginWriteAttribute("value", " value=\"", 237085, "\"", 237093, 0);
2717 EndWriteAttribute();
2718 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\"");
2719 BeginWriteAttribute("value", " value=\"", 237174, "\"", 237182, 0);
2720 EndWriteAttribute();
2721 WriteLiteral(" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"salgsvurdering-broker\">\r\n <h3 class=\"js-brokerh3\">");
2722 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler"));
2723 WriteLiteral(@"</h3>
2724 <div class=""js-choose-broker col-12"">
2725 </div>
2726
2727 </div>
2728
2729 <div class=""form-group mt-4"">
2730 <div class=""checkbox"">
2731 <label>
2732 <input type=""checkbox"" name=""kontaktmigok"" required />
2733
2734 <span class=""consent-checkbox"">");
2735 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2736 WriteLiteral(@"</span>
2737
2738 </label>
2739 </div>
2740 </div>
2741 <div class=""form-group"">
2742 <div class=""row"">
2743 <div class=""col-12"">
2744 <button type=""submit"" class=""btn btn-green btn-block js-buyer-advisor-button"">");
2745 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering"));
2746 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2747 Write(privacyPolicyText);
2748 WriteLiteral(" <a");
2749 BeginWriteAttribute("href", " href=\"", 238342, "\"", 238366, 2);
2750 WriteAttributeValue("", 238349, "mailto:", 238349, 7, true);
2751 WriteAttributeValue("", 238356, termsMail, 238356, 10, false);
2752 EndWriteAttribute();
2753 WriteLiteral(">");
2754 Write(termsMail);
2755 WriteLiteral("</a>.\r\n Læs mere på <a");
2756 BeginWriteAttribute("href", " href=\"", 238411, "\"", 238445, 1);
2757 WriteAttributeValue("", 238418, settings_Persondatapolitik, 238418, 27, false);
2758 EndWriteAttribute();
2759 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"bsv\" />\r\n <input type=\"hidden\" name=\"origin\" class=\"js-salgsvurdering-origin\"");
2760 BeginWriteAttribute("value", " value=\"", 238622, "\"", 238630, 0);
2761 EndWriteAttribute();
2762 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2763 BeginWriteAttribute("value", " value=\"", 238680, "\"", 238695, 1);
2764 WriteAttributeValue("", 238688, userID, 238688, 7, false);
2765 EndWriteAttribute();
2766 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2767 BeginWriteAttribute("value", " value=\"", 238743, "\"", 238767, 1);
2768 WriteAttributeValue("", 238751, Pageview.AreaID, 238751, 16, false);
2769 EndWriteAttribute();
2770 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning\" name=\"boligvisning\"");
2771 BeginWriteAttribute("value", " value=\"", 238839, "\"", 238847, 0);
2772 EndWriteAttribute();
2773 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-butikid\" name=\"butikId\"");
2774 BeginWriteAttribute("value", " value=\"", 238930, "\"", 238938, 0);
2775 EndWriteAttribute();
2776 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-sagsnr\" name=\"sagsnr\"");
2777 BeginWriteAttribute("value", " value=\"", 239019, "\"", 239027, 0);
2778 EndWriteAttribute();
2779 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\"");
2780 BeginWriteAttribute("value", " value=\"", 239078, "\"", 239134, 1);
2781 WriteAttributeValue("", 239086, Dynamicweb.Context.Current.Request["ProductId"], 239086, 48, false);
2782 EndWriteAttribute();
2783 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2784 BeginWriteAttribute("value", " value=\"", 239188, "\"", 239196, 0);
2785 EndWriteAttribute();
2786 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2787 BeginWriteAttribute("value", " value=\"", 239247, "\"", 239255, 0);
2788 EndWriteAttribute();
2789 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2790 BeginWriteAttribute("value", " value=\"", 239305, "\"", 239313, 0);
2791 EndWriteAttribute();
2792 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2793 BeginWriteAttribute("value", " value=\"", 239363, "\"", 239371, 0);
2794 EndWriteAttribute();
2795 WriteLiteral(" />\r\n <input class=\"js-value-check\" type=\"hidden\" name=\"valueCheck\"");
2796 BeginWriteAttribute("value", " value=\"", 239446, "\"", 239454, 0);
2797 EndWriteAttribute();
2798 WriteLiteral(" />\r\n <input class=\"js-green-appraisal\" type=\"hidden\" name=\"greenAppraisal\"");
2799 BeginWriteAttribute("value", " value=\"", 239537, "\"", 239545, 0);
2800 EndWriteAttribute();
2801 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>");
2802 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2803 WriteLiteral("</h2>\r\n <p>");
2804 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:"));
2805 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2806 BeginWriteAttribute("src", " src=\"", 239907, "\"", 239913, 0);
2807 EndWriteAttribute();
2808 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2809 </div>
2810 <div class=""col-6"">
2811 <p class=""js-maegler-name""></p>
2812 <p class=""js-maegler-address""></p>
2813 <p class=""js-maegler-phone""></p>
2814 <p class=""js-maegler-mail""></p>
2815 </div>
2816 </div>
2817 <p>");
2818 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2819 WriteLiteral(@"</p>
2820 </div>
2821 </div>
2822
2823 <!-- BESTIL SALGSVURDERING GULDKØBER -->
2824 <div id=""panel-salgsvurdering-guldkoeber"" class=""panel panel-form"">
2825 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2826 <b></b>
2827 </button>
2828
2829 <form id=""bestil-salgsvurdering-guldkoeber"" method=""POST"" action=""/InboxHandler"">
2830 <h2>");
2831 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering"));
2832 WriteLiteral("</h2>\r\n <p>");
2833 Write(Translate("form-salgsvurdering-beskrivelse", ""));
2834 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>");
2835 Write(Translate("form-navn", "Navn"));
2836 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2837 BeginWriteAttribute("placeholder", " placeholder=\'", 241021, "\'", 241110, 1);
2838 WriteAttributeValue("", 241035, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 241035, 75, false);
2839 EndWriteAttribute();
2840 BeginWriteAttribute("value", " value=\'", 241111, "\'", 241150, 1);
2841 WriteAttributeValue("", 241119, UserContext.Current.User?.Name, 241119, 31, false);
2842 EndWriteAttribute();
2843 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2844 Write(Translate("form-email", "E-mail"));
2845 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2846 BeginWriteAttribute("placeholder", " placeholder=\'", 241414, "\'", 241506, 1);
2847 WriteAttributeValue("", 241428, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 241428, 78, false);
2848 EndWriteAttribute();
2849 BeginWriteAttribute("value", " value=\'", 241507, "\'", 241547, 1);
2850 WriteAttributeValue("", 241515, UserContext.Current.User?.Email, 241515, 32, false);
2851 EndWriteAttribute();
2852 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2853 Write(Translate("form-telephone", "Telefon nr."));
2854 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2855 BeginWriteAttribute("placeholder", " placeholder=\'", 241856, "\'", 241947, 1);
2856 WriteAttributeValue("", 241870, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 241870, 77, false);
2857 EndWriteAttribute();
2858 BeginWriteAttribute("value", " value=\'", 241948, "\'", 241988, 1);
2859 WriteAttributeValue("", 241956, UserContext.Current.User?.Phone, 241956, 32, false);
2860 EndWriteAttribute();
2861 WriteLiteral(" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2862 Write(Translate("form-mobile", "Mobil nr."));
2863 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2864 BeginWriteAttribute("placeholder", " placeholder=\'", 242238, "\'", 242330, 1);
2865 WriteAttributeValue("", 242252, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 242252, 78, false);
2866 EndWriteAttribute();
2867 BeginWriteAttribute("value", " value=\'", 242331, "\'", 242371, 1);
2868 WriteAttributeValue("", 242339, UserContext.Current.User?.Phone, 242339, 32, false);
2869 EndWriteAttribute();
2870 WriteLiteral(" required />\r\n </div>\r\n </div>\r\n\r\n <h3>");
2871 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"));
2872 WriteLiteral("</h3>\r\n\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2873 Write(Translate("form-zip", "Post nr"));
2874 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\"");
2875 BeginWriteAttribute("placeholder", " placeholder=\'", 242800, "\'", 242878, 1);
2876 WriteAttributeValue("", 242814, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 242814, 64, false);
2877 EndWriteAttribute();
2878 BeginWriteAttribute("value", " value=\"", 242879, "\"", 242895, 1);
2879 WriteAttributeValue("", 242887, userZip, 242887, 8, false);
2880 EndWriteAttribute();
2881 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2882 Write(Translate("form-city", "By"));
2883 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-city\" type=\"text\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"form-group overflow-unset\">\r\n <label><strong>");
2884 Write(Translate("form-adresse", "Adresse"));
2885 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\"");
2886 BeginWriteAttribute("placeholder", " placeholder=\'", 243449, "\'", 243539, 1);
2887 WriteAttributeValue("", 243463, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 243463, 76, false);
2888 EndWriteAttribute();
2889 BeginWriteAttribute("value", " value=\"", 243540, "\"", 243560, 1);
2890 WriteAttributeValue("", 243548, userAddress, 243548, 12, false);
2891 EndWriteAttribute();
2892 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2893 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2894 WriteLiteral(@"</label>
2895 </div>
2896
2897 <button class=""form-control text-left js-collapse-focus"" type=""button"" data-toggle=""collapse"" data-target=""#salgsvurdering-collapse"" aria-expanded=""false"" aria-controls=""salgsvurdering-collapse"">
2898 <strong class=""f-12""><i class=""fas fa-plus""></i> ");
2899 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar"));
2900 WriteLiteral("</strong>\r\n </button>\r\n <div class=\"collapse\" id=\"salgsvurdering-collapse\">\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\"");
2901 BeginWriteAttribute("placeholder", " placeholder=\'", 244330, "\'", 244408, 1);
2902 WriteAttributeValue("", 244344, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 244344, 64, false);
2903 EndWriteAttribute();
2904 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>");
2905 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:"));
2906 WriteLiteral("</h3>\r\n <div class=\"col-12\">\r\n <div class=\"choose-broker row align-items-center active\">\r\n <div class=\"col-2\">\r\n <input class=\"js-broker-radio\" type=\"radio\"");
2907 BeginWriteAttribute("id", " id=\"", 244852, "\"", 244857, 0);
2908 EndWriteAttribute();
2909 WriteLiteral(" name=\"choose-broker-gk\"");
2910 BeginWriteAttribute("value", " value=\"", 244882, "\"", 244890, 0);
2911 EndWriteAttribute();
2912 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\"");
2913 BeginWriteAttribute("for", " for=\"", 244956, "\"", 244962, 0);
2914 EndWriteAttribute();
2915 WriteLiteral("></label><div class=\"check\">\r\n <div class=\"inside\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <img");
2916 BeginWriteAttribute("src", " src=\"", 245208, "\"", 245214, 0);
2917 EndWriteAttribute();
2918 WriteLiteral(@" class=""img-fluid js-broker-image"">
2919 </div>
2920 <div class=""col-6"">
2921 <span class=""d-block"">
2922 <strong class=""js-choose-broker-name""></strong>
2923 </span>
2924 <span class=""js-choose-broker-address""></span>
2925 <input type=""hidden"" class=""js-choose-broker-phone""");
2926 BeginWriteAttribute("value", " value=\"", 245626, "\"", 245634, 0);
2927 EndWriteAttribute();
2928 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\"");
2929 BeginWriteAttribute("value", " value=\"", 245715, "\"", 245723, 0);
2930 EndWriteAttribute();
2931 WriteLiteral(" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"salgsvurdering-broker\">\r\n <h3 class=\"js-brokerh3\">");
2932 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler"));
2933 WriteLiteral(@"</h3>
2934 <div class=""js-choose-broker col-12"">
2935 </div>
2936
2937 </div>
2938
2939
2940 <div class=""form-group"">
2941 <div class=""row"">
2942 <div class=""col-12"">
2943 <button type=""submit"" class=""btn btn-green btn-block"">");
2944 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering"));
2945 WriteLiteral(@"</button>
2946 </div>
2947 </div>
2948 </div>
2949 <div class=""form-group"">
2950 <div class=""checkbox"">
2951 <label>
2952 <input type=""checkbox"" name=""kontaktmigok"" required />
2953
2954 <span>");
2955 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2956 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2957 Write(privacyPolicyText);
2958 WriteLiteral(" <a");
2959 BeginWriteAttribute("href", " href=\"", 246831, "\"", 246855, 2);
2960 WriteAttributeValue("", 246838, "mailto:", 246838, 7, true);
2961 WriteAttributeValue("", 246845, termsMail, 246845, 10, false);
2962 EndWriteAttribute();
2963 WriteLiteral(">");
2964 Write(termsMail);
2965 WriteLiteral("</a>.\r\n Læs mere på <a");
2966 BeginWriteAttribute("href", " href=\"", 246900, "\"", 246934, 1);
2967 WriteAttributeValue("", 246907, settings_Persondatapolitik, 246907, 27, false);
2968 EndWriteAttribute();
2969 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"bsg\" />\r\n <input type=\"hidden\" name=\"origin\" class=\"js-salgsvurdering-origin\"");
2970 BeginWriteAttribute("value", " value=\"", 247111, "\"", 247119, 0);
2971 EndWriteAttribute();
2972 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2973 BeginWriteAttribute("value", " value=\"", 247169, "\"", 247184, 1);
2974 WriteAttributeValue("", 247177, userID, 247177, 7, false);
2975 EndWriteAttribute();
2976 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2977 BeginWriteAttribute("value", " value=\"", 247232, "\"", 247256, 1);
2978 WriteAttributeValue("", 247240, Pageview.AreaID, 247240, 16, false);
2979 EndWriteAttribute();
2980 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning-gk\" name=\"boligvisning\"");
2981 BeginWriteAttribute("value", " value=\"", 247331, "\"", 247339, 0);
2982 EndWriteAttribute();
2983 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-butikid\" name=\"butikId\"");
2984 BeginWriteAttribute("value", " value=\"", 247425, "\"", 247433, 0);
2985 EndWriteAttribute();
2986 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-sagsnr\" name=\"sagsnr\"");
2987 BeginWriteAttribute("value", " value=\"", 247517, "\"", 247525, 0);
2988 EndWriteAttribute();
2989 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\"");
2990 BeginWriteAttribute("value", " value=\"", 247576, "\"", 247632, 1);
2991 WriteAttributeValue("", 247584, Dynamicweb.Context.Current.Request["ProductId"], 247584, 48, false);
2992 EndWriteAttribute();
2993 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2994 BeginWriteAttribute("value", " value=\"", 247686, "\"", 247694, 0);
2995 EndWriteAttribute();
2996 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2997 BeginWriteAttribute("value", " value=\"", 247745, "\"", 247753, 0);
2998 EndWriteAttribute();
2999 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
3000 BeginWriteAttribute("value", " value=\"", 247803, "\"", 247811, 0);
3001 EndWriteAttribute();
3002 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
3003 BeginWriteAttribute("value", " value=\"", 247861, "\"", 247869, 0);
3004 EndWriteAttribute();
3005 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>");
3006 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
3007 WriteLiteral("</h2>\r\n <p>");
3008 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:"));
3009 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
3010 BeginWriteAttribute("src", " src=\"", 248231, "\"", 248237, 0);
3011 EndWriteAttribute();
3012 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
3013 </div>
3014 <div class=""col-6"">
3015 <p class=""js-maegler-name""></p>
3016 <p class=""js-maegler-address""></p>
3017 <p class=""js-maegler-phone""></p>
3018 <p class=""js-maegler-mail""></p>
3019 </div>
3020 </div>
3021 <p>");
3022 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
3023 WriteLiteral("</p>\r\n </div>\r\n</div>\r\n\r\n");
3024 WriteLiteral("\r\n");
3025
3026 var areaItem = Pageview.Area.Item;
3027 bool turnstileDisabled = areaItem != null
3028 && areaItem.ContainsKey("DisableTurnstile")
3029 && Converter.ToBoolean(areaItem["DisableTurnstile"]);
3030 bool turnstileEnabled = !turnstileDisabled && RealMaeglerne.Dynamicweb.Config.IsTurnstileConfigured();
3031 WriteLiteral("\r\n");
3032 if (turnstileEnabled)
3033 {
3034 string turnstileSiteKey = RealMaeglerne.Dynamicweb.Config.GetTurnstileSiteKey();
3035 string turnstileAreaId = Converter.ToString(Pageview.Area.ID);
3036 string turnstileLanguage = Pageview.Area.CultureInfo.Name;
3037
3038 WriteLiteral(" <div class=\"js-turnstile-configuration d-none\"\r\n data-site-key=\"");
3039 Write(HtmlEncoder.HtmlAttributeEncode(turnstileSiteKey));
3040 WriteLiteral("\"\r\n data-area-id=\"");
3041 Write(HtmlEncoder.HtmlAttributeEncode(turnstileAreaId));
3042 WriteLiteral("\">\r\n <input type=\"hidden\"\r\n class=\"js-turnstile-language\"");
3043 BeginWriteAttribute("value", "\r\n value=\"", 249606, "\"", 249681, 1);
3044 WriteAttributeValue("", 249630, HtmlEncoder.HtmlAttributeEncode(turnstileLanguage), 249630, 51, false);
3045 EndWriteAttribute();
3046 WriteLiteral(" />\r\n <input type=\"hidden\"\r\n class=\"js-turnstile-validation-message-text\"");
3047 BeginWriteAttribute("value", "\r\n value=\"", 249776, "\"", 249926, 1);
3048 WriteAttributeValue("", 249800, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Turnstile.ValidationMessage", "Bekræft venligst, at du ikke er en robot.")), 249800, 126, false);
3049 EndWriteAttribute();
3050 WriteLiteral(" />\r\n </div>\r\n");
3051 }
3052 WriteLiteral("\r\n\r\n <div class=\"overlay-wrapper\"></div>\r\n <div class=\"dropdown-overlay\"></div>\r\n <div class=\"loader-inner ball-pulse\"></div>\r\n\r\n");
3053
3054 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js"));
3055 WriteLiteral(" <script type=\"text/javascript\"");
3056 BeginWriteAttribute("src", " src=\'", 250292, "\'", 250396, 3);
3057 WriteAttributeValue("", 250298, TemplateUrl, 250298, 14, false);
3058 WriteAttributeValue("", 250312, "assets/webpack/js/3rdparty/viamapstrap.js?", 250312, 42, true);
3059 WriteAttributeValue("", 250354, viamapstrapFileInfo.LastWriteTime.Ticks, 250354, 42, false);
3060 EndWriteAttribute();
3061 WriteLiteral(" async></script>\r\n");
3062
3063 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js"));
3064 WriteLiteral(" <script type=\"text/javascript\"");
3065 BeginWriteAttribute("src", " src=\'", 250599, "\'", 250686, 3);
3066 WriteAttributeValue("", 250605, TemplateUrl, 250605, 14, false);
3067 WriteAttributeValue("", 250619, "assets/dist/bundle.app.min.js?", 250619, 30, true);
3068 WriteAttributeValue("", 250649, bundleFileInfo.LastWriteTime.Ticks, 250649, 37, false);
3069 EndWriteAttribute();
3070 WriteLiteral(" async></script>\r\n");
3071 WriteLiteral("\r\n ");
3072 Write(RenderSnippet("JavaScriptBottom"));
3073 WriteLiteral("\r\n\r\n");
3074 if (Context.Current.Request.QueryString["ShowLogin"] == "true")
3075 {
3076 WriteLiteral(" <input class=\"js-showLogin\" value=\"true\" />\r\n");
3077 }
3078 WriteLiteral("\r\n");
3079 if (!string.IsNullOrEmpty(settings_ConduzeId))
3080 {
3081 WriteLiteral(" <script type=\"text/javascript\" id=\"conduze-sdk\"");
3082 BeginWriteAttribute("src", " src=\"", 251010, "\"", 251071, 3);
3083 WriteAttributeValue("", 251016, "https://cdn.conduze.com/", 251016, 24, true);
3084 WriteAttributeValue("", 251040, settings_ConduzeId, 251040, 19, false);
3085 WriteAttributeValue("", 251059, "/tracking.js", 251059, 12, true);
3086 EndWriteAttribute();
3087 WriteLiteral(" async></script>\r\n");
3088 }
3089 WriteLiteral("\r\n");
3090 if (!string.IsNullOrEmpty(settings_Weply))
3091 {
3092 WriteLiteral(" <script");
3093 BeginWriteAttribute("src", " src=\"", 251170, "\"", 251221, 2);
3094 WriteAttributeValue("", 251176, "https://app.weply.chat/widget/", 251176, 30, true);
3095 WriteAttributeValue("", 251206, settings_Weply, 251206, 15, false);
3096 EndWriteAttribute();
3097 WriteLiteral(" async></script>\r\n");
3098 }
3099 WriteLiteral("\r\n</body>\r\n</html>\r\n\r\n");
3100 }
3101 #pragma warning restore 1998
3102
3103 void RenderErhvervsTypeCheckboxes(string productGroupFilter)
3104 {
3105 WriteLiteral(@" <div class=""col-xs-6 col-md-4"">
3106 <div class=""checkbox"">
3107 <label>
3108 <input type=""checkbox"" name=""propertytype"" value=""bolig/erhverv, kombineret erhverv og bolig, byejendom (kontor, butik, beboelse)"" />
3109 <span>Bolig/erhverv</span>
3110 </label>
3111 </div>
3112 <div class=""checkbox"">
3113 <label>
3114 <input type=""checkbox"" name=""propertytype"" value=""erhvervsgrund"" />
3115 <span>Erhvervsgrund</span>
3116 </label>
3117 </div>
3118 <div class=""checkbox"">
3119 <label>
3120 <input type=""checkbox"" name=""propertytype"" value=""boligudlejning"" />
3121 <span>Boligudlejningsejendom</span>
3122 </label>
3123 </div>
3124 <div class=""checkbox"">
3125 <label>
3126 <input type=""checkbox"" name=""propertytype"" value=""kontor, klinik, kontorhotel, showroom, under");
3127 WriteLiteral(@"visningslokaler"" />
3128 <span>Kontor</span>
3129 </label>
3130 </div>
3131 </div>
3132 <div class=""col-xs-6 col-md-4"">
3133 <div class=""checkbox"">
3134 <label>
3135 <input type=""checkbox"" name=""propertytype"" value=""butik / detail, butik / detailhandel"" />
3136 <span>Butik/detailhandel</span>
3137 </label>
3138 </div>
3139 <div class=""checkbox"">
3140 <label>
3141 <input type=""checkbox"" name=""propertytype"" value=""industri / logistik, håndværk, industri, kontor / lager, logistik"" />
3142 <span>Produktion/lager</span>
3143 </label>
3144 </div>
3145 <div class=""checkbox"">
3146 <label>
3147 <input type=""checkbox"" name=""propertytype"" value=""hotel - kursusejendom, restaurant"" />
3148 <span>Hotel og restaurant</span>
3149 </label>
3150 </div>
3151 <div c");
3152 WriteLiteral(@"lass=""checkbox"">
3153 <label>
3154 <input type=""checkbox"" name=""propertytype"" value=""projekt ejendom"" />
3155 <span>Projektejendom</span>
3156 </label>
3157 </div>
3158 </div>
3159 <div class=""col-xs-6 col-md-4"">
3160 <div class=""checkbox"">
3161 <label>
3162 <input type=""checkbox"" name=""propertytype"" value=""andet"" />
3163 <span>Andet</span>
3164 </label>
3165 </div>
3166 </div>
3167 ");
3168 WriteLiteral(" <input type=\"hidden\" name=\"propertycategory\" value=\"erhverv, udlejning\" />\r\n <input type=\"hidden\" name=\"filtrering\"");
3169 BeginWriteAttribute("value", " value=\"", 3445, "\"", 3472, 1);
3170 WriteAttributeValue("", 3453, productGroupFilter, 3453, 19, false);
3171 EndWriteAttribute();
3172 WriteLiteral(" />\r\n");
3173 }
3174 void RenderBoligtypeCheckboxes()
3175 {
3176 WriteLiteral(@" <div class=""col-6 col-md-4"">
3177 <div class=""checkbox"">
3178 <label>
3179 <input type=""checkbox"" name=""propertytype"" value=""villa"" />
3180 <span>Villa</span>
3181 </label>
3182 </div>
3183 <div class=""checkbox"">
3184 <label>
3185 <input type=""checkbox"" name=""propertytype"" value=""rækkehus"" />
3186 <span>Rækkehus</span>
3187 </label>
3188 </div>
3189 <div class=""checkbox"">
3190 <label>
3191 <input type=""checkbox"" name=""propertytype"" value=""villalejlighed"" />
3192 <span>Villalejlighed</span>
3193 </label>
3194 </div>
3195 <div class=""checkbox"">
3196 <label>
3197 <input type=""checkbox"" name=""propertytype"" value=""andelsbolig"" />
3198 <span>Andelsbolig</span>
3199 </label>
3200 </div>
3201 </div>
3202 <div class=""co");
3203 WriteLiteral(@"l-6 col-md-4"">
3204 <div class=""checkbox"">
3205 <label>
3206 <input type=""checkbox"" name=""propertytype"" value=""fritidshus, fritidsbolig"" />
3207 <span>Fritidsbolig</span>
3208 </label>
3209 </div>
3210 <div class=""checkbox"">
3211 <label>
3212 <input type=""checkbox"" name=""propertytype"" value=""ejerlejlighed"" class=""specialOption"" data-disable-slider=""#grundareal"" data-disable-slider-ranges=""#grundarealmin,#grundarealmax"" />
3213 <span>Ejerlejlighed</span>
3214 </label>
3215 </div>
3216 <div class=""checkbox"">
3217 <label>
3218 <input type=""checkbox"" name=""propertytype"" value=""helårsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" />
3219 <span>Helårsgrund</span>
3220 </label>
3221 </div>
3222 <div ");
3223 WriteLiteral(@"class=""checkbox"">
3224 <label>
3225 <input type=""checkbox"" name=""propertytype"" value=""fritidsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" />
3226 <span>Fritidsgrund</span>
3227 </label>
3228 </div>
3229 </div>
3230 <div class=""col-6 col-md-4"">
3231 <div class=""checkbox"">
3232 <label>
3233 <input type=""checkbox"" name=""propertytype"" value=""landejendom, lystejendom"" class=""specialOption"" data-disable-checkbox=""true"" />
3234 <span>Landejendom</span>
3235 </label>
3236 </div>
3237 <div class=""checkbox"">
3238 <label>
3239 <input type=""checkbox"" name=""propertytype"" value=""erhverv"" class=""specialOption"" data-disable-checkbox=""true"" data-disable-slider=""#roomsslider"" data-disable-slider-ranges=""#roomsmin"" />
3240 <span>Erhverv<");
3241 WriteLiteral("/span>\r\n </label>\r\n </div>\r\n </div>\r\n");
3242 }
3243
3244 void RenderChecked(string queryString)
3245 {
3246 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString)
3247 {
3248 Write("checked");
3249
3250 }
3251 }
3252
3253 void RenderBoligtypeCheckboxesDropdown()
3254 {
3255 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){
3256 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" },
3257 { "Andelsbolig", "andelsbolig" }
3258 };
3259 foreach (KeyValuePair<string, string> type in propertyTypes)
3260 {
3261 bool ischecked = false;
3262 string[] propertytypeSplit = new string[0];
3263 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
3264 {
3265 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
3266 }
3267 foreach (var propertytypeParams in propertytypeSplit)
3268 {
3269 if (propertytypeParams == type.Value)
3270 {
3271 ischecked = true;
3272 }
3273 }
3274 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3275 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3276 WriteLiteral("\r\n <input type=\"checkbox\" name=\"propertytype\"");
3277 BeginWriteAttribute("value", " value=\"", 8068, "\"", 8087, 1);
3278 WriteAttributeValue("", 8076, type.Value, 8076, 11, false);
3279 EndWriteAttribute();
3280 WriteLiteral(" class=\"js-input-check datavalue js-datavalue js-count\" data-val=\"");
3281 Write(type.Key);
3282 WriteLiteral("\" onchange=\"submitFilter()\"");
3283 BeginWriteAttribute("checked", " checked=\"", 8190, "\"", 8210, 1);
3284 WriteAttributeValue("", 8200, ischecked, 8200, 10, false);
3285 EndWriteAttribute();
3286 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3287 }
3288
3289 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){
3290 { "Fritidsbolig", "fritidshus, fritidsbolig" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" },
3291 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" }
3292 };
3293 foreach (KeyValuePair<string, string> type in propertyTypes2)
3294 {
3295 bool ischecked = false;
3296 string[] propertytypeSplit2 = new string[0];
3297 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
3298 {
3299 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
3300 }
3301 foreach (var propertytypeParams in propertytypeSplit2)
3302 {
3303 if (propertytypeParams == type.Value)
3304 {
3305 ischecked = true;
3306 }
3307 }
3308 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3309 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3310 WriteLiteral("\r\n");
3311 if (type.Value == "ejerlejlighed")
3312 {
3313 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3314 BeginWriteAttribute("value", " value=\"", 9634, "\"", 9653, 1);
3315 WriteAttributeValue("", 9642, type.Value, 9642, 11, false);
3316 EndWriteAttribute();
3317 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#grundareal\" data-disable-slider-ranges=\"#grundarealmin,#grundarealmax\" data-val=\"");
3318 Write(type.Key);
3319 WriteLiteral("\" onchange=\"submitFilter()\"");
3320 BeginWriteAttribute("checked", " checked=\"", 9827, "\"", 9847, 1);
3321 WriteAttributeValue("", 9837, ischecked, 9837, 10, false);
3322 EndWriteAttribute();
3323 WriteLiteral(" />\r\n");
3324 }
3325 else if (type.Value == "helårsgrund")
3326 {
3327 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3328 BeginWriteAttribute("value", " value=\"", 10024, "\"", 10043, 1);
3329 WriteAttributeValue("", 10032, type.Value, 10032, 11, false);
3330 EndWriteAttribute();
3331 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\"");
3332 Write(type.Key);
3333 WriteLiteral("\" onchange=\"submitFilter()\"");
3334 BeginWriteAttribute("checked", " checked=\"", 10240, "\"", 10260, 1);
3335 WriteAttributeValue("", 10250, ischecked, 10250, 10, false);
3336 EndWriteAttribute();
3337 WriteLiteral(" />\r\n");
3338 }
3339 else if (type.Value == "fritidsgrund")
3340 {
3341 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3342 BeginWriteAttribute("value", " value=\"", 10438, "\"", 10457, 1);
3343 WriteAttributeValue("", 10446, type.Value, 10446, 11, false);
3344 EndWriteAttribute();
3345 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\"");
3346 Write(type.Key);
3347 WriteLiteral("\" onchange=\"submitFilter()\"");
3348 BeginWriteAttribute("checked", " checked=\"", 10654, "\"", 10674, 1);
3349 WriteAttributeValue("", 10664, ischecked, 10664, 10, false);
3350 EndWriteAttribute();
3351 WriteLiteral(" />\r\n");
3352 }
3353 else
3354 {
3355 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3356 BeginWriteAttribute("value", " value=\"", 10818, "\"", 10837, 1);
3357 WriteAttributeValue("", 10826, type.Value, 10826, 11, false);
3358 EndWriteAttribute();
3359 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\"");
3360 Write(type.Key);
3361 WriteLiteral("\" onchange=\"submitFilter()\"");
3362 BeginWriteAttribute("checked", " checked=\"", 10918, "\"", 10938, 1);
3363 WriteAttributeValue("", 10928, ischecked, 10928, 10, false);
3364 EndWriteAttribute();
3365 WriteLiteral(" />\r\n");
3366 }
3367 WriteLiteral(" <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3368 }
3369 }
3370
3371 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false)
3372 {
3373 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3374 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" },
3375 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" }
3376 };
3377 var submitonchange = "";
3378 if (submitOnChange)
3379 {
3380 submitonchange = "onchange='submitFilter()'";
3381 }
3382
3383 foreach (KeyValuePair<string, string> type in erhverType)
3384 {
3385 string ischecked = "";
3386 string[] olineParamsSplit = new string[0];
3387 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
3388 {
3389 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
3390 }
3391 foreach (var olineParams in olineParamsSplit)
3392 {
3393 if (olineParams == type.Value)
3394 {
3395 ischecked = "checked";
3396 }
3397 }
3398
3399 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3400 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3401 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\"");
3402 BeginWriteAttribute("value", " value=\"", 12582, "\"", 12601, 1);
3403 WriteAttributeValue("", 12590, type.Value, 12590, 11, false);
3404 EndWriteAttribute();
3405 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\"");
3406 Write(type.Key);
3407 WriteLiteral("\" ");
3408 Write(submitonchange);
3409 WriteLiteral(" ");
3410 Write(ischecked);
3411 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3412 }
3413 }
3414
3415 void RenderBoligTypeErhvervInvest(bool submitOnChange = false)
3416 {
3417 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3418 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" },
3419 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" }
3420 };
3421
3422 foreach (KeyValuePair<string, string> type in erhverType)
3423 {
3424 bool ischecked = false;
3425 string[] olineParamsSplit = new string[0];
3426 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
3427 {
3428 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
3429 }
3430 foreach (var olineParams in olineParamsSplit)
3431 {
3432 if (olineParams == type.Value)
3433 {
3434 ischecked = true;
3435 }
3436 }
3437
3438 WriteLiteral(" <li>\r\n <label class=\"checkbox-container\">\r\n ");
3439 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3440 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\"");
3441 BeginWriteAttribute("value", " value=\"", 14192, "\"", 14211, 1);
3442 WriteAttributeValue("", 14200, type.Value, 14200, 11, false);
3443 EndWriteAttribute();
3444 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\"");
3445 Write(type.Key);
3446 WriteLiteral("\" onchange=\"submitFilter()\"");
3447 BeginWriteAttribute("checked", " checked=\"", 14292, "\"", 14312, 1);
3448 WriteAttributeValue("", 14302, ischecked, 14302, 10, false);
3449 EndWriteAttribute();
3450 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3451 }
3452 }
3453 int GetWebsiteSettingsPageId(string pageSysName)
3454 {
3455 int sideId = 0;
3456
3457 var pw = Dynamicweb.Frontend.PageView.Current();
3458
3459 string settingsItemId = "1";
3460
3461 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true")
3462 {
3463 settingsItemId = "2";
3464 }
3465
3466 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId);
3467
3468 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName))
3469 {
3470 return sideId;
3471 }
3472
3473 string boligsideLink = settingsItem[pageSysName] as String;
3474 string linkPrefix = "Default.aspx?ID=";
3475
3476 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
3477 {
3478 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
3479 }
3480
3481 return sideId;
3482 }
3483
3484 int GetPageSettingsPageId(string pageSysName)
3485 {
3486 int sideId = 0;
3487
3488 var pw = Dynamicweb.Frontend.PageView.Current();
3489
3490 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName))
3491 {
3492 return sideId;
3493 }
3494
3495 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String;
3496 string linkPrefix = "Default.aspx?ID=";
3497
3498 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
3499 {
3500 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
3501 }
3502
3503 return sideId;
3504 }
3505 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname)
3506 {
3507 WriteLiteral(" <select");
3508 BeginWriteAttribute("class", " class=\"", 16255, "\"", 16310, 5);
3509 WriteAttributeValue("", 16263, "form-control", 16263, 12, true);
3510 WriteAttributeValue(" ", 16275, "d-block", 16276, 8, true);
3511 WriteAttributeValue(" ", 16283, "d-lg-none", 16284, 10, true);
3512 WriteAttributeValue(" ", 16293, "mb-10", 16294, 6, true);
3513 WriteAttributeValue(" ", 16299, className, 16300, 10, false);
3514 EndWriteAttribute();
3515 WriteLiteral(" onchange=\"submitFilter()\"");
3516 BeginWriteAttribute("name", " name=\"", 16337, "\"", 16354, 1);
3517 WriteAttributeValue("", 16344, inputname, 16344, 10, false);
3518 EndWriteAttribute();
3519 WriteLiteral(">\r\n <option selected=\"true\" disabled=\"disabled\">");
3520 Write(Translate("Smartpage:Search.Placeholder." + name + "", "" + name + ""));
3521 WriteLiteral("</option>\r\n\r\n");
3522 for (var i = 0; i <= max; i += step)
3523 {
3524 var selected = string.Empty;
3525 var current = string.Empty;
3526 if (i == max)
3527 {
3528 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
3529 {
3530 WriteLiteral(" <option");
3531 BeginWriteAttribute("value", " value=\"", 16950, "\"", 16960, 1);
3532 WriteAttributeValue("", 16958, i, 16958, 2, false);
3533 EndWriteAttribute();
3534 WriteLiteral(" data-value=\'");
3535 Write(Convert.ToInt32(i).ToString("N0"));
3536 WriteLiteral("\' selected=\"selected\">");
3537 Write(Convert.ToInt32(i).ToString("N0"));
3538 WriteLiteral("+</option>\r\n");
3539 }
3540 else
3541 {
3542 WriteLiteral(" <option");
3543 BeginWriteAttribute("value", " value=\"", 17179, "\"", 17189, 1);
3544 WriteAttributeValue("", 17187, i, 17187, 2, false);
3545 EndWriteAttribute();
3546 WriteLiteral(" data-value=\'");
3547 Write(Convert.ToInt32(i).ToString("N0"));
3548 WriteLiteral("\'>");
3549 Write(Convert.ToInt32(i).ToString("N0"));
3550 WriteLiteral("+</option>\r\n");
3551 }
3552 }
3553 else
3554 {
3555 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
3556 {
3557 WriteLiteral(" <option");
3558 BeginWriteAttribute("value", " value=\"", 17613, "\"", 17623, 1);
3559 WriteAttributeValue("", 17621, i, 17621, 2, false);
3560 EndWriteAttribute();
3561 WriteLiteral(" data-value=\'");
3562 Write(Convert.ToInt32(i).ToString("N0"));
3563 WriteLiteral("\' selected=\"selected\">");
3564 Write(Convert.ToInt32(i).ToString("N0"));
3565 WriteLiteral("</option>\r\n");
3566 }
3567 else
3568 {
3569 WriteLiteral(" <option");
3570 BeginWriteAttribute("value", " value=\"", 17841, "\"", 17851, 1);
3571 WriteAttributeValue("", 17849, i, 17849, 2, false);
3572 EndWriteAttribute();
3573 WriteLiteral(" data-value=\'");
3574 Write(Convert.ToInt32(i).ToString("N0"));
3575 WriteLiteral("\'>");
3576 Write(Convert.ToInt32(i).ToString("N0"));
3577 WriteLiteral("</option>\r\n");
3578 }
3579 }
3580 }
3581 WriteLiteral(" </select>\r\n");
3582 }
3583
3584 void RenderTopFilter(string parameter)
3585 {
3586 if (parameter == "pricemin" || parameter == "pricemax")
3587 {
3588 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"]))
3589 {
3590 if (parameter == "pricemin")
3591 {
3592 Write("<div class='search-terms' id='priceFilter'>");
3593 Write("Pris ");
3594 Write(Dynamicweb.Context.Current.Request[parameter]);
3595
3596 }
3597
3598 else
3599 {
3600 Write(" - ");
3601 Write(Dynamicweb.Context.Current.Request[parameter]);
3602 Write(" kr.");
3603 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"pricemin,pricemax\"></i>\r\n");
3604 Write("</div>");
3605
3606 }
3607 }
3608 }
3609
3610 else if (parameter == "subsidymin" || parameter == "subsidymax")
3611 {
3612 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"]))
3613 {
3614 if (parameter == "subsidymin")
3615 {
3616 Write("<div class='search-terms' id='subsidyFilter'>");
3617 Write("Årlig leje ");
3618 Write(Dynamicweb.Context.Current.Request[parameter]);
3619
3620 }
3621
3622 else
3623 {
3624 Write(" - ");
3625 Write(Dynamicweb.Context.Current.Request[parameter]);
3626 Write(" kr.");
3627 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidymin,subsidymax\"></i>\r\n");
3628 Write("</div>");
3629
3630 }
3631 }
3632 }
3633 else if (parameter == "etagearealmin" || parameter == "etagearealmax")
3634 {
3635 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"]))
3636 {
3637 if (parameter == "etagearealmin")
3638 {
3639 Write("<div class='search-terms' id='etagearealFilter'>");
3640 Write("Etageareal ");
3641 Write(Dynamicweb.Context.Current.Request[parameter]);
3642
3643 }
3644
3645 else
3646 {
3647 Write(" - ");
3648 Write(Dynamicweb.Context.Current.Request[parameter]);
3649 Write(" kvm.");
3650 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"etagearealmin,etagearealmax\"></i>\r\n");
3651 Write("</div>");
3652
3653 }
3654 }
3655 }
3656
3657 else if (parameter == "grundarealmin" || parameter == "grundarealmax")
3658 {
3659 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"]))
3660 {
3661 if (parameter == "grundarealmin")
3662 {
3663 Write("<div class='search-terms' id='grundarealFilter'>");
3664 Write("Grundareal ");
3665 Write(Dynamicweb.Context.Current.Request[parameter]);
3666
3667 }
3668
3669 else
3670 {
3671 Write(" - ");
3672 Write(Dynamicweb.Context.Current.Request[parameter]);
3673 Write(" kvm.");
3674 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"grundarealmin,grundarealmax\"></i>\r\n");
3675 Write("</div>");
3676
3677 }
3678 }
3679 }
3680
3681 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax")
3682 {
3683 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"]))
3684 {
3685 if (parameter == "subsidykvmmin")
3686 {
3687 Write("<div class='search-terms' id='subsidykvmFilter'>");
3688 Write("Årlig leje kvm ");
3689 Write(Dynamicweb.Context.Current.Request[parameter]);
3690
3691 }
3692
3693 else
3694 {
3695 Write(" - ");
3696 Write(Dynamicweb.Context.Current.Request[parameter]);
3697 Write(" kr.");
3698 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidykvmmin,subsidykvmmax\"></i>\r\n");
3699 Write("</div>");
3700
3701 }
3702 }
3703 }
3704
3705 else if (parameter == "olinecategory")
3706 {
3707
3708 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"]))
3709 {
3710 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3711 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" },
3712 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"},
3713 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" },
3714 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" }
3715 };
3716
3717
3718 foreach (var er in erhverType)
3719 {
3720 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
3721 {
3722 WriteLiteral(" <div class=\"search-terms\"");
3723 BeginWriteAttribute("id", " id=\"", 23021, "\"", 23036, 1);
3724 WriteAttributeValue("", 23026, parameter, 23026, 10, false);
3725 EndWriteAttribute();
3726 WriteLiteral(">\r\n ");
3727 Write(er.Value);
3728 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3729 Write(parameter);
3730 WriteLiteral("\" data-val=\"");
3731 Write(er.Key);
3732 WriteLiteral("\"></i>\r\n </div>\r\n");
3733 }
3734 }
3735 }
3736 }
3737 else if (parameter == "search")
3738 {
3739 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"]))
3740 {
3741 WriteLiteral(" <div class=\"search-terms\"");
3742 BeginWriteAttribute("id", " id=\"", 23484, "\"", 23499, 1);
3743 WriteAttributeValue("", 23489, parameter, 23489, 10, false);
3744 EndWriteAttribute();
3745 WriteLiteral(">\r\n ");
3746 Write(Dynamicweb.Context.Current.Request[parameter]);
3747 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3748 Write(parameter);
3749 WriteLiteral("\"></i>\r\n </div>\r\n");
3750 }
3751 }
3752 else
3753 {
3754 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]))
3755 {
3756 Dictionary<string, string>
3757 ubudsform = new Dictionary<string, string>
3758 (){
3759 {"salg", "Salg" }, { "leje","Leje" }
3760 };
3761
3762 foreach (var er in ubudsform)
3763 {
3764 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
3765 {
3766 WriteLiteral(" <div class=\"search-terms\"");
3767 BeginWriteAttribute("id", " id=\"", 24648, "\"", 24663, 1);
3768 WriteAttributeValue("", 24653, parameter, 24653, 10, false);
3769 EndWriteAttribute();
3770 WriteLiteral(">\r\n ");
3771 Write(er.Value);
3772 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3773 Write(parameter);
3774 WriteLiteral("\" data-val=\"");
3775 Write(er.Key);
3776 WriteLiteral("\"></i>\r\n </div>\r\n");
3777 }
3778 }
3779
3780
3781 }
3782 }
3783 }
3784
3785 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString)
3786 {
3787 var selected = "";
3788 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue)
3789 {
3790 selected = "selected";
3791 }
3792
3793 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected);
3794
3795 Write(current);
3796
3797 }
3798
3799 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "")
3800 {
3801 WriteLiteral(" <div");
3802 BeginWriteAttribute("class", " class=\"", 25667, "\"", 25713, 3);
3803 WriteAttributeValue("", 25675, "main-search-form", 25675, 16, true);
3804 WriteAttributeValue(" ", 25691, "frontpage", 25692, 10, true);
3805 WriteAttributeValue(" ", 25701, cssClasses, 25702, 11, false);
3806 EndWriteAttribute();
3807 WriteLiteral(">\r\n <div class=\"dropdown-overlay\"></div>\r\n <div class=\"row mb-3 align-items-center\">\r\n <div class=\"col-xs-12 col-md-3 border-right\">\r\n <h3>");
3808 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
3809 WriteLiteral("</h3>\r\n </div>\r\n <div class=\"col-xs-12 col-md-9 home-count d-none d-md-block\">\r\n <span class=\"search-count\" id=\"searchCounter\">0</span> <span>");
3810 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg"));
3811 WriteLiteral("</span>\r\n </div>\r\n </div>\r\n\r\n <form id=\"main-search-frontpage\" class=\"searchbar-wrapper\" action=\"/Default.aspx\" method=\"GET\">\r\n <input type=\"hidden\" name=\"ID\"");
3812 BeginWriteAttribute("value", " value=\'", 26428, "\'", 26449, 1);
3813 WriteAttributeValue("", 26436, searchPageId, 26436, 13, false);
3814 EndWriteAttribute();
3815 WriteLiteral(@" id=""searchPageId-frontpage"" disabled=""disabled"" />
3816 <div class=""row form-wrapper no-gutters"">
3817
3818 <div class=""col-xs-12 col-md-5 col-searchbar"">
3819 <div class=""searchbar"">
3820 <input type=""text""");
3821 BeginWriteAttribute("name", " name=\"", 26727, "\"", 26754, 1);
3822 WriteAttributeValue("", 26734, querySearchNameAttr, 26734, 20, false);
3823 EndWriteAttribute();
3824 WriteLiteral(" id=\"searchfield-frontpage\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\"");
3825 BeginWriteAttribute("value", " value=\"", 26867, "\"", 26945, 1);
3826 WriteAttributeValue("", 26875, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 26875, 70, false);
3827 EndWriteAttribute();
3828 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom-frontpage\" name=\"zipcodefrom\"");
3829 BeginWriteAttribute("value", " value=\"", 27045, "\"", 27128, 1);
3830 WriteAttributeValue("", 27053, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 27053, 75, false);
3831 EndWriteAttribute();
3832 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto-frontpage\" name=\"zipcodeto\"");
3833 BeginWriteAttribute("value", " value=\"", 27224, "\"", 27305, 1);
3834 WriteAttributeValue("", 27232, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 27232, 73, false);
3835 EndWriteAttribute();
3836 WriteLiteral(@" />
3837 </div>
3838 </div>
3839 <div class=""col-xs-12 col-md-5"">
3840 <div class=""row no-gutters"">
3841 <div class=""col-xs-12 col-md-6 input-col"">
3842 <div class=""dropdown w-overlay"">
3843 <button class=""btn btn-dropdown dropdown-toggle reverse position-absolute-md"" type=""button"" id=""Boligtype-frontpage"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
3844 ");
3845 Write(Translate("Smartpage:Search.Boligtype", "Boligtype"));
3846 WriteLiteral(@"
3847 </button>
3848 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
3849 <ul class=""bolig-dropdown list-unstyled"">
3850 ");
3851
3852 RenderBoligtypeCheckboxesDropdown();
3853 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">");
3854 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
3855 WriteLiteral(@"</button>
3856 </div>
3857
3858 </div>
3859
3860 </div>
3861 <div class=""col-xs-12 col-md-6 input-col"">
3862 <div class=""dropdown w-overlay"">
3863 <button class=""btn btn-dropdown dropdown-toggle reverse position-absolute-md"" type=""button"" id=""Pris-frontpage"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
3864 ");
3865 Write(Translate("Smartpage:Search.Pris", "Pris"));
3866 WriteLiteral(@"
3867 </button>
3868 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris"">
3869 <input type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input""");
3870 BeginWriteAttribute("placeholder", " placeholder=\'", 29484, "\'", 29560, 1);
3871 WriteAttributeValue("", 29498, Translate("Smartpage:Search.Placeholder.MinPris","Min. pris"), 29498, 62, false);
3872 EndWriteAttribute();
3873 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3874 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"));
3875 WriteLiteral("</option>\r\n");
3876 for (var i = 0; i <= 10000000; i += 100000)
3877 {
3878 if (i == 10000000)
3879 {
3880 WriteLiteral(" <option");
3881 BeginWriteAttribute("value", " value=\"", 30169, "\"", 30179, 1);
3882 WriteAttributeValue("", 30177, i, 30177, 2, false);
3883 EndWriteAttribute();
3884 WriteLiteral(" data-value=\'");
3885 Write(Convert.ToInt32(i).ToString("N0"));
3886 WriteLiteral("+\'>");
3887 Write(Convert.ToInt32(i).ToString("N0"));
3888 WriteLiteral("+</option>\r\n");
3889 }
3890 else
3891 {
3892 WriteLiteral(" <option");
3893 BeginWriteAttribute("value", " value=\"", 30491, "\"", 30501, 1);
3894 WriteAttributeValue("", 30499, i, 30499, 2, false);
3895 EndWriteAttribute();
3896 WriteLiteral(" data-value=\'");
3897 Write(Convert.ToInt32(i).ToString("N0"));
3898 WriteLiteral("\'>");
3899 Write(Convert.ToInt32(i).ToString("N0"));
3900 WriteLiteral("</option>\r\n");
3901 }
3902 }
3903 WriteLiteral(@" </select>
3904 <input type=""hidden"" id=""pricemin-frontpage"" name=""pricemin"" />
3905
3906 <input type=""text"" class=""form-control js-auto-thousand js-pricemax-frontpage-input""");
3907 BeginWriteAttribute("placeholder", " placeholder=\'", 30976, "\'", 31052, 1);
3908 WriteAttributeValue("", 30990, Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris"), 30990, 62, false);
3909 EndWriteAttribute();
3910 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3911 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"));
3912 WriteLiteral("</option>\r\n");
3913 for (var i = 0; i <= 10000000; i += 100000)
3914 {
3915 if (i == 10000000)
3916 {
3917 WriteLiteral(" <option");
3918 BeginWriteAttribute("value", " value=\"", 31655, "\"", 31665, 1);
3919 WriteAttributeValue("", 31663, i, 31663, 2, false);
3920 EndWriteAttribute();
3921 WriteLiteral(" data-value=\'");
3922 Write(Convert.ToInt32(i).ToString("N0"));
3923 WriteLiteral("+\'>");
3924 Write(Convert.ToInt32(i).ToString("N0"));
3925 WriteLiteral("+</option>\r\n");
3926 }
3927 else
3928 {
3929 WriteLiteral(" <option");
3930 BeginWriteAttribute("value", " value=\"", 31977, "\"", 31987, 1);
3931 WriteAttributeValue("", 31985, i, 31985, 2, false);
3932 EndWriteAttribute();
3933 WriteLiteral(" data-value=\'");
3934 Write(Convert.ToInt32(i).ToString("N0"));
3935 WriteLiteral("\'>");
3936 Write(Convert.ToInt32(i).ToString("N0"));
3937 WriteLiteral("</option>\r\n");
3938 }
3939 }
3940 WriteLiteral(" </select>\r\n <input type=\"hidden\" id=\"pricemax-frontpage\" name=\"pricemax\" />\r\n <button class=\"btn btn-primary js-close-dropdown mt-3\">");
3941 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
3942 WriteLiteral(@"</button>
3943 </div>
3944 </div>
3945 </div>
3946 </div>
3947 </div>
3948 <div class=""col-xs-12 col-md-2 d-none d-md-block"">
3949 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
3950 Write(Translate("Smartpage:Search.Søg", "Søg"));
3951 WriteLiteral(@"</button>
3952 </div>
3953 </div>
3954
3955 <div class=""row moresearch-btn no-gutters"">
3956 <div class=""col-sm-12"">
3957 <div class=""row align-items-center no-gutters"">
3958 <div class=""col-12 col-md-4"">
3959 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch"" aria-expanded=""false"" aria-controls=""moreSearch"">
3960 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open"">");
3961 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder"));
3962 WriteLiteral("</span> <span class=\"open\"><span class=\"js-filter-count\">0</span> ");
3963 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt"));
3964 WriteLiteral(" </span></span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-md-2 mb-xs-4\">\r\n <a class=\"js-reset reset-btn\">");
3965 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg"));
3966 WriteLiteral("</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"collapse\" id=\"moreSearch\">\r\n <h4 class=\"mt-20\"><b>");
3967 Write(Translate("Smartpage:Search.Bolig", "Bolig"));
3968 WriteLiteral(@"</b></h4>
3969 <div class=""row align-items-end mb-30"">
3970 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
3971 <div class=""filter-container row"">
3972 <label class=""d-block col-12"">");
3973 Write(Translate("Smartpage:Search.Boligareal", "Boligareal"));
3974 WriteLiteral(@"</label>
3975 <div class=""col-6 pr-sm-0 pr-2"">
3976 <input type=""text"" name=""boligarealmin"" id=""boligarealmin-frontpage"" class=""form-control js-boligarealmin-frontpage-input js-count""");
3977 BeginWriteAttribute("placeholder", " placeholder=\'", 34853, "\'", 34925, 1);
3978 WriteAttributeValue("", 34867, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 34867, 58, false);
3979 EndWriteAttribute();
3980 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3981 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
3982 WriteLiteral("</option>\r\n");
3983 for (var i = 0; i <= 300; i += 10)
3984 {
3985 if (i == 300)
3986 {
3987 WriteLiteral(" <option");
3988 BeginWriteAttribute("value", " value=\"", 35532, "\"", 35542, 1);
3989 WriteAttributeValue("", 35540, i, 35540, 2, false);
3990 EndWriteAttribute();
3991 WriteLiteral(">");
3992 Write(i);
3993 WriteLiteral("+</option>\r\n");
3994 }
3995 else
3996 {
3997 WriteLiteral(" <option");
3998 BeginWriteAttribute("value", " value=\"", 35789, "\"", 35799, 1);
3999 WriteAttributeValue("", 35797, i, 35797, 2, false);
4000 EndWriteAttribute();
4001 WriteLiteral(">");
4002 Write(i);
4003 WriteLiteral("</option>\r\n");
4004 }
4005 }
4006 WriteLiteral(@" </select>
4007 </div>
4008 <div class=""col-6 pl-sm-0 pl-2"">
4009 <input type=""text"" name=""boligarealmax"" id=""boligarealmax-frontpage"" class=""form-control js-boligarealmax-frontpage-input js-count""");
4010 BeginWriteAttribute("placeholder", " placeholder=\'", 36272, "\'", 36344, 1);
4011 WriteAttributeValue("", 36286, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 36286, 58, false);
4012 EndWriteAttribute();
4013 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4014 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
4015 WriteLiteral("</option>\r\n");
4016 for (var i = 0; i <= 300; i += 10)
4017 {
4018 if (i == 300)
4019 {
4020 WriteLiteral(" <option");
4021 BeginWriteAttribute("value", " value=\"", 36951, "\"", 36961, 1);
4022 WriteAttributeValue("", 36959, i, 36959, 2, false);
4023 EndWriteAttribute();
4024 WriteLiteral(">");
4025 Write(i);
4026 WriteLiteral("+</option>\r\n");
4027 }
4028 else
4029 {
4030 WriteLiteral(" <option");
4031 BeginWriteAttribute("value", " value=\"", 37208, "\"", 37218, 1);
4032 WriteAttributeValue("", 37216, i, 37216, 2, false);
4033 EndWriteAttribute();
4034 WriteLiteral(">");
4035 Write(i);
4036 WriteLiteral("</option>\r\n");
4037 }
4038 }
4039 WriteLiteral(@" </select>
4040 </div>
4041 </div>
4042 </div>
4043 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
4044 <div class=""filter-container row"">
4045 <label class=""d-block col-12"">");
4046 Write(Translate("Smartpage:Search.Grundareal", "Grundareal"));
4047 WriteLiteral(@"</label>
4048 <div class=""col-6 pr-sm-0 pr-2"">
4049 <input type=""text"" name=""grundarealmin"" id=""grundarealmin-frontpage"" class=""form-control js-grundarealmin-frontpage-input js-count""");
4050 BeginWriteAttribute("placeholder", " placeholder=\'", 38067, "\'", 38139, 1);
4051 WriteAttributeValue("", 38081, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 38081, 58, false);
4052 EndWriteAttribute();
4053 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4054 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
4055 WriteLiteral("</option>\r\n");
4056 for (var i = 0; i <= 10000; i += 100)
4057 {
4058 if (i == 10000)
4059 {
4060 WriteLiteral(" <option");
4061 BeginWriteAttribute("value", " value=\"", 38751, "\"", 38761, 1);
4062 WriteAttributeValue("", 38759, i, 38759, 2, false);
4063 EndWriteAttribute();
4064 WriteLiteral(">");
4065 Write(i);
4066 WriteLiteral("+</option>\r\n");
4067 }
4068 else
4069 {
4070 WriteLiteral(" <option");
4071 BeginWriteAttribute("value", " value=\"", 39008, "\"", 39018, 1);
4072 WriteAttributeValue("", 39016, i, 39016, 2, false);
4073 EndWriteAttribute();
4074 WriteLiteral(">");
4075 Write(i);
4076 WriteLiteral("</option>\r\n");
4077 }
4078 }
4079 WriteLiteral(@" </select>
4080 </div>
4081 <div class=""col-6 pl-sm-0 pl-2"">
4082 <input type=""text"" name=""grundarealmax"" id=""grundarealmax-frontpage"" class=""form-control js-grundarealmax-frontpage-input js-count""");
4083 BeginWriteAttribute("placeholder", " placeholder=\'", 39491, "\'", 39563, 1);
4084 WriteAttributeValue("", 39505, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 39505, 58, false);
4085 EndWriteAttribute();
4086 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4087 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
4088 WriteLiteral("</option>\r\n");
4089 for (var i = 0; i <= 10000; i += 100)
4090 {
4091 if (i == 10000)
4092 {
4093 WriteLiteral(" <option");
4094 BeginWriteAttribute("value", " value=\"", 40175, "\"", 40185, 1);
4095 WriteAttributeValue("", 40183, i, 40183, 2, false);
4096 EndWriteAttribute();
4097 WriteLiteral(">");
4098 Write(i);
4099 WriteLiteral("+</option>\r\n");
4100 }
4101 else
4102 {
4103 WriteLiteral(" <option");
4104 BeginWriteAttribute("value", " value=\"", 40432, "\"", 40442, 1);
4105 WriteAttributeValue("", 40440, i, 40440, 2, false);
4106 EndWriteAttribute();
4107 WriteLiteral(">");
4108 Write(i);
4109 WriteLiteral("</option>\r\n");
4110 }
4111 }
4112 WriteLiteral(@" </select>
4113 </div>
4114 </div>
4115 </div>
4116 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
4117 <div class=""filter-container row"">
4118 <label class=""d-block col-12"">Antal rum</label>
4119
4120 <div class=""col-6 pr-sm-0 pr-2"">
4121 <select name=""roomsmin"" id=""roomsmin-frontpage"" class=""form-control reverse js-count"">
4122 <option selected=""true"" disabled=""disabled"">");
4123 Write(Translate("Smartpage:Search.Placeholder.Min", "Min"));
4124 WriteLiteral(@"</option>
4125 <option value=""1"">1</option>
4126 <option value=""2"">2</option>
4127 <option value=""3"">3</option>
4128 <option value=""4"">4</option>
4129 <option value=""5+"">5+</option>
4130 </select>
4131 </div>
4132 <div class=""col-6 pl-sm-0 pl-2"">
4133 <select name=""roomsmax"" id=""roomsmax-frontpage"" class=""form-control reverse js-count"">
4134 <option selected=""true"" disabled=""disabled"">");
4135 Write(Translate("Smartpage:Search.Placeholder.Max", "Max"));
4136 WriteLiteral(@"</option>
4137 <option value=""1"">1</option>
4138 <option value=""2"">2</option>
4139 <option value=""3"">3</option>
4140 <option value=""4"">4</option>
4141 <option value=""5+"">");
4142 Write(Translate("Smartpage:Rooms.5", "5"));
4143 WriteLiteral(@"</option>
4144 </select>
4145 </div>
4146 </div>
4147 </div>
4148 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
4149 <div class=""row"">
4150 <div class=""col-12"">
4151 <div class=""filter-container"">
4152 <label class=""d-block"">Energimærke</label>
4153 <select name=""energylabel"" id=""energylabel-frontpage"" class=""form-control reverse js-count"">
4154 <option disabled selected=""selected"">");
4155 Write(Translate("Smartpage:Search.Vælg", "Vælg"));
4156 WriteLiteral(@"</option>
4157 <option value=""01"">G</option>
4158 <option value=""02"">F</option>
4159 <option value=""03"">E</option>
4160 <option value=""04"">D</option>
4161 <option value=""05"">C</option>
4162 <option value=""06"">B</option>
4163 <option value=""07"">A</option>
4164 <option value=""08"">A2010</option>
4165 <option value=""09"">A2015</option>
4166 <option value=""10"">A2020+</option>
4167 </select>
4168 </div>
4169 </div>
4170 ");
4171 WriteLiteral(" </div>\r\n </div>\r\n <div class=\"col-12 col-sm-6 col-lg-3 mt-3\">\r\n <h4");
4172 BeginWriteAttribute("class", " class=\"", 44687, "\"", 44695, 0);
4173 EndWriteAttribute();
4174 WriteLiteral("><b>");
4175 Write(Translate("Smartpage:Search.Økonomi", "Økonomi"));
4176 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">");
4177 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned"));
4178 WriteLiteral("</label>\r\n <div class=\"col-6 pr-sm-0 pr-2\">\r\n <input type=\"text\" name=\"subsidymin\" id=\"subsidymin-frontpage\" class=\"form-control js-subsidymin-frontpage-input js-count\"");
4179 BeginWriteAttribute("placeholder", " placeholder=\'", 45251, "\'", 45325, 1);
4180 WriteAttributeValue("", 45265, Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK"), 45265, 60, false);
4181 EndWriteAttribute();
4182 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4183 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"));
4184 WriteLiteral("</option>\r\n");
4185 for (var i = 0; i <= 25000; i += 1250)
4186 {
4187 if (i == 25000)
4188 {
4189 WriteLiteral(" <option>");
4190 Write(Convert.ToInt32(i).ToString("N0"));
4191 WriteLiteral("+</option>\r\n");
4192 }
4193 else
4194 {
4195 WriteLiteral(" <option>");
4196 Write(Convert.ToInt32(i).ToString("N0"));
4197 WriteLiteral("</option>\r\n");
4198 }
4199 }
4200 WriteLiteral(@" </select>
4201 </div>
4202 <div class=""col-6 pl-sm-0 pl-2"">
4203 <input type=""text"" name=""subsidymax"" id=""subsidymax-frontpage"" class=""form-control js-subsidymax-frontpage-input js-count""");
4204 BeginWriteAttribute("placeholder", " placeholder=\'", 46710, "\'", 46784, 1);
4205 WriteAttributeValue("", 46724, Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK"), 46724, 60, false);
4206 EndWriteAttribute();
4207 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4208 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"));
4209 WriteLiteral("</option>\r\n");
4210 for (var i = 0; i <= 25000; i += 1250)
4211 {
4212 if (i == 25000)
4213 {
4214 WriteLiteral(" <option");
4215 BeginWriteAttribute("value", " value=\"", 47396, "\"", 47423, 1);
4216 WriteAttributeValue("", 47404, Convert.ToInt32(i), 47404, 19, false);
4217 EndWriteAttribute();
4218 WriteLiteral(">");
4219 Write(Convert.ToInt32(i).ToString("N0"));
4220 WriteLiteral("+</option>\r\n");
4221 }
4222 else
4223 {
4224 WriteLiteral(" <option");
4225 BeginWriteAttribute("value", " value=\"", 47702, "\"", 47729, 1);
4226 WriteAttributeValue("", 47710, Convert.ToInt32(i), 47710, 19, false);
4227 EndWriteAttribute();
4228 WriteLiteral(">");
4229 Write(Convert.ToInt32(i).ToString("N0"));
4230 WriteLiteral("</option>\r\n");
4231 }
4232 }
4233 WriteLiteral(@" </select>
4234 </div>
4235 </div>
4236 </div>
4237 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0"">
4238 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
4239 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre"));
4240 WriteLiteral(@"</button>
4241 </div>
4242 </div>
4243 </div>
4244 </div>
4245 </div>
4246
4247 <div class=""row d-block d-md-none form-wrapper no-gutters"">
4248 <div class=""col-xs-12 col-md-2"">
4249 <button type=""submit"" class=""btn btn-block btn-search btn-mobile-search"">");
4250 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig"));
4251 WriteLiteral(@"<i class=""fa fa-search cta-icon""></i></button>
4252 </div>
4253 </div>
4254 </form>
4255 <div class=""front-page-actions d-md-none"">
4256 <div>
4257 <button class=""btn btn-block btn-search btn-mobile-search js-search-mobile"">");
4258 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig"));
4259 WriteLiteral("<i class=\"fa fa-search cta-icon\"></i></button>\r\n </div>\r\n <div>\r\n");
4260
4261 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : "";
4262 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER");
4263 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\">\r\n <input name=\"id\"");
4264 BeginWriteAttribute("value", " value=\"", 49672, "\"", 49695, 1);
4265 WriteAttributeValue("", 49680, brokerSearchId, 49680, 15, false);
4266 EndWriteAttribute();
4267 WriteLiteral(@" type=""hidden"" />
4268 <div class=""icon-wrapper-wclick"">
4269 <i class=""fas fa-search ta-submit-on-icon-click""></i>
4270 <input class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" name=""q"" type=""text""");
4271 BeginWriteAttribute("placeholder", " placeholder=\"", 49999, "\"", 50021, 1);
4272 WriteAttributeValue("", 50013, ctaText, 50013, 8, false);
4273 EndWriteAttribute();
4274 WriteLiteral(" onfocus=\"this.placeholder = \'\'\"");
4275 BeginWriteAttribute("onblur", " onblur=\"", 50054, "\"", 50090, 3);
4276 WriteAttributeValue("", 50063, "this.placeholder=\'", 50063, 18, true);
4277 WriteAttributeValue("", 50081, ctaText, 50081, 8, false);
4278 WriteAttributeValue("", 50089, "\'", 50089, 1, true);
4279 EndWriteAttribute();
4280 WriteLiteral(" />\r\n </div>\r\n </form>\r\n");
4281 WriteLiteral(" </div>\r\n <div>\r\n <a href=\"javascript:panelSalgsvurdering(\'Hovedmenu\')\" class=\"btn btn-orange btn-block\">");
4282 Write(Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING"));
4283 WriteLiteral("<i class=\"cta-icon fa fa-angle-right\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n");
4284
4285 }
4286 Custom.Integration.Brokers.Models.BrokerEmployee GetBrokerFromCurrentProduct()
4287 {
4288 string productId = Dynamicweb.Context.Current.Request["ProductId"];
4289
4290 if (string.IsNullOrWhiteSpace(productId))
4291 {
4292 return null;
4293 }
4294
4295 var propertyProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(productId, string.Empty, true);
4296 if (propertyProduct == null)
4297 {
4298 return null;
4299 }
4300
4301 string employee = Dynamicweb.Core.Converter.ToString(
4302 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xAktoererMaeglerKontaktEmail")
4303 );
4304 string storeId = Dynamicweb.Core.Converter.ToString(
4305 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xButikID")
4306 );
4307
4308 if (string.IsNullOrWhiteSpace(employee) || string.IsNullOrWhiteSpace(storeId))
4309 {
4310 return null;
4311 }
4312
4313 return Custom.Integration.Brokers.Search.GetEmployee(storeId, employee);
4314 }
4315
4316 string GetAgentTitleFromCurrentProduct()
4317 {
4318 var propBroker = GetBrokerFromCurrentProduct();
4319
4320 if (propBroker?.Broker == null)
4321 {
4322 return string.Empty;
4323 }
4324
4325 if (!string.IsNullOrEmpty(propBroker.Broker.CompanyName))
4326 {
4327 return propBroker.Broker.CompanyName;
4328 }
4329
4330 return propBroker.Broker.Name ?? string.Empty;
4331 }
4332
4333 string GetMasterBrokerUrlFromCurrentProduct()
4334 {
4335 var propBroker = GetBrokerFromCurrentProduct();
4336
4337 var itemId = propBroker?.Broker?.ItemId;
4338 var itemType = propBroker?.Broker?.ItemType;
4339
4340 if (string.IsNullOrWhiteSpace(itemId) || string.IsNullOrWhiteSpace(itemType))
4341 {
4342 return string.Empty;
4343 }
4344 var brokerItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(itemType, itemId);
4345
4346 if (brokerItem == null)
4347 {
4348 return string.Empty;
4349 }
4350
4351 var websiteId = Dynamicweb.Core.Converter.ToInt32(brokerItem["WebsiteId"]);
4352 var page = Dynamicweb.Content.Services.Pages.GetFirstPageForArea(websiteId);
4353 return Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?Id=" + page?.ID);
4354 }
4355
4356 // === Video link helpers (used by the property page) ===
4357
4358 // True when the link points directly at a video file we can play in a <video> element. Everything else is iframed.
4359 bool IsDirectVideoFile(string url)
4360 {
4361 if (string.IsNullOrWhiteSpace(url)) { return false; }
4362
4363 // Strip query/fragment before checking the file extension.
4364 string path = url.Split('?', '#')[0];
4365 string[] directExtensions = { ".mp4", ".webm", ".ogg", ".ogv", ".mov", ".m4v" };
4366 foreach (var ext in directExtensions)
4367 {
4368 if (path.EndsWith(ext, StringComparison.InvariantCultureIgnoreCase)) { return true; }
4369 }
4370 return false;
4371 }
4372
4373 string GetYouTubeId(string url)
4374 {
4375 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; }
4376
4377 string[] patterns = { @"youtu\.be/([^?&/]+)", @"[?&]v=([^?&]+)", @"/embed/([^?&/]+)", @"/shorts/([^?&/]+)" };
4378 foreach (var pattern in patterns)
4379 {
4380 var match = System.Text.RegularExpressions.Regex.Match(url, pattern);
4381 if (match.Success) { return match.Groups[1].Value; }
4382 }
4383
4384 return string.Empty;
4385 }
4386
4387 string GetVimeoId(string url)
4388 {
4389 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; }
4390 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?(\d+)");
4391 return match.Success ? match.Groups[1].Value : string.Empty;
4392 }
4393
4394 string GetVimeoHash(string url)
4395 {
4396 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; }
4397 // Unlisted videos carry a privacy hash: vimeo.com/{id}/{hash}
4398 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?\d+/(\w+)");
4399 return match.Success ? match.Groups[1].Value : string.Empty;
4400 }
4401
4402 // Builds the iframe src for a non-file link. YouTube/Vimeo share links are rewritten to their embeddable form
4403 // (their pages block framing); every other link (Matterport, CR3, already-embeddable pages) is used as-is.
4404 string BuildEmbedUrl(string url, bool background)
4405 {
4406 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; }
4407
4408 if (url.Contains("youtube", StringComparison.InvariantCultureIgnoreCase) || url.Contains("youtu.be", StringComparison.InvariantCultureIgnoreCase))
4409 {
4410 string id = GetYouTubeId(url);
4411 if (!string.IsNullOrEmpty(id))
4412 {
4413 string baseUrl = "https://www.youtube-nocookie.com/embed/" + id;
4414 return background
4415 ? baseUrl + "?autoplay=1&mute=1&loop=1&playlist=" + id + "&controls=0&playsinline=1&rel=0"
4416 : baseUrl + "?rel=0";
4417 }
4418 }
4419 else if (url.Contains("vimeo", StringComparison.InvariantCultureIgnoreCase))
4420 {
4421 string id = GetVimeoId(url);
4422 if (!string.IsNullOrEmpty(id))
4423 {
4424 string baseUrl = "https://player.vimeo.com/video/" + id;
4425 var queryParams = new List<string>();
4426 string hash = GetVimeoHash(url);
4427 if (!string.IsNullOrEmpty(hash)) { queryParams.Add("h=" + hash); }
4428 if (background) { queryParams.Add("background=1"); }
4429 return queryParams.Count > 0 ? baseUrl + "?" + string.Join("&", queryParams) : baseUrl;
4430 }
4431 }
4432
4433 // Matterport, CR3 and any already-embeddable link frame as-is.
4434 return url;
4435 }
4436
4437 void RenderSlideMenu(bool erhverv, string maeglersoegning)
4438 {
4439 WriteLiteral(" <div id=\"menu\" \r\n class=\"main-menu-slide \"\r\n role=\"navigation\"");
4440 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 56824, "\"", 56940, 1);
4441 WriteAttributeValue("", 56851, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.MainMenu", "Hovedmenu")), 56851, 89, false);
4442 EndWriteAttribute();
4443 WriteLiteral(@"
4444 aria-modal=""true"">
4445 <div class=""container"">
4446 <div class=""row"">
4447 <div class=""col-12"">
4448 <span class=""menu-headline"">MENU</span>
4449 </div>
4450 <div class=""menu-slide""
4451 role=""button""
4452 tabindex=""0""");
4453 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 57305, "\"", 57433, 1);
4454 WriteAttributeValue("", 57344, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.CloseMenu", "Luk menu")), 57344, 89, false);
4455 EndWriteAttribute();
4456 WriteLiteral(">\r\n <b aria-hidden=\"true\"></b>\r\n </div>\r\n <div class=\"col-12 main-slidemenu\" role=\"region\"");
4457 BeginWriteAttribute("aria-label", " aria-label=\"", 57585, "\"", 57701, 1);
4458 WriteAttributeValue("", 57598, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.NavigationLinks", "Navigationslinks")), 57598, 103, false);
4459 EndWriteAttribute();
4460 WriteLiteral(">\r\n");
4461
4462 var navigationSettings = new NavigationSettings();
4463 navigationSettings.StartLevel = 1;
4464 navigationSettings.StopLevel = 2;
4465 navigationSettings.ExpandMode = ExpandMode.All;
4466 navigationSettings.RootAreaId = Pageview.Area.ID;
4467
4468 Write(Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings));
4469 WriteLiteral(" </div>\r\n <div class=\"col-12 bottom-btns\">\r\n\r\n");
4470
4471 string[] maeglerid;
4472 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0";
4473
4474 if (erhverv)
4475 {
4476 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None);
4477 }
4478 else
4479 {
4480 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None);
4481 }
4482
4483 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\" role=\"search\">\r\n <input name=\"id\"");
4484 BeginWriteAttribute("value", " value=\"", 59198, "\"", 59219, 1);
4485 WriteAttributeValue("", 59206, maeglerid[1], 59206, 13, false);
4486 EndWriteAttribute();
4487 WriteLiteral(" type=\"hidden\" />\r\n <div class=\"icon-wrapper-wclick\">\r\n <label for=\"broker-search-menu-vm\" class=\"sr-only\">");
4488 Write(Translate("Custom:Accessibility.FindBroker", "Find mægler"));
4489 WriteLiteral(@"</label>
4490 <i class=""fas fa-search ta-submit-on-icon-click""
4491 aria-hidden=""true""
4492 role=""button""
4493 tabindex=""0""");
4494 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 59714, "\"", 59867, 1);
4495 WriteAttributeValue("", 59767, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.SearchBroker", "Søg efter mægler")), 59767, 100, false);
4496 EndWriteAttribute();
4497 WriteLiteral(@"></i>
4498 <input id=""broker-search-menu-vm""
4499 class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter""
4500 name=""q""
4501 type=""text""");
4502 BeginWriteAttribute("placeholder", " \r\n placeholder=\"", 60175, "\"", 60326, 1);
4503 WriteAttributeValue("", 60234, HtmlEncoder.HtmlAttributeEncode(Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER")), 60234, 92, false);
4504 EndWriteAttribute();
4505 BeginWriteAttribute("aria-label", " \r\n aria-label=\"", 60327, "\"", 60523, 1);
4506 WriteAttributeValue("", 60385, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.BrokerSearchField", "Indtast postnummer eller navn for at finde mægler")), 60385, 138, false);
4507 EndWriteAttribute();
4508 WriteLiteral("\r\n onfocus=\"this.placeholder = \'FIND MÆGLER\'\" />\r\n </div>\r\n </form>\r\n");
4509 WriteLiteral(" <br />\r\n");
4510
4511 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + "";
4512 WriteLiteral(" <a");
4513 BeginWriteAttribute("href", " href=\"", 60933, "\"", 61004, 5);
4514 WriteAttributeValue("", 60940, "javascript:panelSalgsvurdering(\'", 60940, 32, true);
4515 WriteAttributeValue("", 60972, dpmaegler, 60972, 10, false);
4516 WriteAttributeValue("", 60982, "\',\'", 60982, 3, true);
4517 WriteAttributeValue("", 60985, Pageview.AreaID, 60985, 16, false);
4518 WriteAttributeValue("", 61001, "\');", 61001, 3, true);
4519 EndWriteAttribute();
4520 WriteLiteral(" \r\n class=\"btn btn-block btn-default-invert js-close-menu\"");
4521 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 61089, "\"", 61245, 1);
4522 WriteAttributeValue("", 61130, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.FreeSalesAssessment", "Få gratis salgsvurdering")), 61130, 115, false);
4523 EndWriteAttribute();
4524 WriteLiteral(">Gratis salgsvurdering <i class=\"cta-icon fa fa-angle-right\" aria-hidden=\"true\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n");
4525 }
4526
4527 void RenderBlockList(List<Block> blocks)
4528 {
4529 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
4530 blocks = blocks.OrderBy(item => item.SortId).ToList();
4531
4532 foreach (Block item in blocks)
4533 {
4534 if (debug) {
4535 WriteLiteral(" <!-- Block START: ");
4536 Write(item.Id);
4537 WriteLiteral(" -->\r\n");
4538 }
4539
4540 if (item.Design == null)
4541 {
4542 RenderBlock(item);
4543 }
4544 else if (item.Design.RenderType == RenderType.None) {
4545 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
4546
4547 WriteLiteral(" <div");
4548 BeginWriteAttribute("class", " class=\"", 62500, "\"", 62524, 2);
4549 WriteAttributeValue("", 62508, cssClass, 62508, 9, false);
4550 WriteAttributeValue(" ", 62517, "dw-mod", 62518, 7, true);
4551 EndWriteAttribute();
4552 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4553 }
4554 else if (item.Design.RenderType != RenderType.Hide)
4555 {
4556 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
4557
4558 if (!item.SkipRenderBlocksList) {
4559 if (item.Design.RenderType == RenderType.Row)
4560 {
4561 WriteLiteral(" <div");
4562 BeginWriteAttribute("class", " class=\"", 62951, "\"", 63006, 4);
4563 WriteAttributeValue("", 62959, "grid", 62959, 4, true);
4564 WriteAttributeValue(" ", 62963, "grid--align-content-start", 62964, 26, true);
4565 WriteAttributeValue(" ", 62989, cssClass, 62990, 9, false);
4566 WriteAttributeValue(" ", 62999, "dw-mod", 63000, 7, true);
4567 EndWriteAttribute();
4568 BeginWriteAttribute("id", " id=\"", 63007, "\"", 63027, 2);
4569 WriteAttributeValue("", 63012, "Block__", 63012, 7, true);
4570 WriteAttributeValue("", 63019, item.Id, 63019, 8, false);
4571 EndWriteAttribute();
4572 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4573 }
4574
4575 if (item.Design.RenderType == RenderType.Column)
4576 {
4577 string hidePadding = item.Design.HidePadding ? "u-no-padding" : "";
4578 string size = item.Design.Size ?? "12";
4579 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size;
4580
4581 WriteLiteral(" <div");
4582 BeginWriteAttribute("class", " class=\"", 63523, "\"", 63654, 9);
4583 WriteAttributeValue("", 63531, "grid__col-lg-", 63531, 13, true);
4584 WriteAttributeValue("", 63544, item.Design.Size, 63544, 17, false);
4585 WriteAttributeValue(" ", 63561, "grid__col-md-", 63562, 14, true);
4586 WriteAttributeValue("", 63575, item.Design.Size, 63575, 17, false);
4587 WriteAttributeValue(" ", 63592, "grid__col-sm-12", 63593, 16, true);
4588 WriteAttributeValue(" ", 63608, "grid__col-xs-12", 63609, 16, true);
4589 WriteAttributeValue(" ", 63624, hidePadding, 63625, 12, false);
4590 WriteAttributeValue(" ", 63637, cssClass, 63638, 9, false);
4591 WriteAttributeValue(" ", 63647, "dw-mod", 63648, 7, true);
4592 EndWriteAttribute();
4593 BeginWriteAttribute("id", " id=\"", 63655, "\"", 63675, 2);
4594 WriteAttributeValue("", 63660, "Block__", 63660, 7, true);
4595 WriteAttributeValue("", 63667, item.Id, 63667, 8, false);
4596 EndWriteAttribute();
4597 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4598 }
4599
4600 if (item.Design.RenderType == RenderType.Table)
4601 {
4602 WriteLiteral(" <table");
4603 BeginWriteAttribute("class", " class=\"", 63906, "\"", 63936, 3);
4604 WriteAttributeValue("", 63914, "table", 63914, 5, true);
4605 WriteAttributeValue(" ", 63919, cssClass, 63920, 9, false);
4606 WriteAttributeValue(" ", 63929, "dw-mod", 63930, 7, true);
4607 EndWriteAttribute();
4608 BeginWriteAttribute("id", " id=\"", 63937, "\"", 63957, 2);
4609 WriteAttributeValue("", 63942, "Block__", 63942, 7, true);
4610 WriteAttributeValue("", 63949, item.Id, 63949, 8, false);
4611 EndWriteAttribute();
4612 WriteLiteral(">\r\n RenderBlock(item);\r\n </table>\r\n");
4613 }
4614
4615 if (item.Design.RenderType == RenderType.TableRow)
4616 {
4617 WriteLiteral(" <tr");
4618 BeginWriteAttribute("class", " class=\"", 64190, "\"", 64214, 2);
4619 WriteAttributeValue("", 64198, cssClass, 64198, 9, false);
4620 WriteAttributeValue(" ", 64207, "dw-mod", 64208, 7, true);
4621 EndWriteAttribute();
4622 BeginWriteAttribute("id", " id=\"", 64215, "\"", 64235, 2);
4623 WriteAttributeValue("", 64220, "Block__", 64220, 7, true);
4624 WriteAttributeValue("", 64227, item.Id, 64227, 8, false);
4625 EndWriteAttribute();
4626 WriteLiteral(">\r\n RenderBlock(item);\r\n </tr>\r\n");
4627 }
4628
4629 if (item.Design.RenderType == RenderType.TableColumn)
4630 {
4631 WriteLiteral(" <td");
4632 BeginWriteAttribute("class", " class=\"", 64468, "\"", 64492, 2);
4633 WriteAttributeValue("", 64476, cssClass, 64476, 9, false);
4634 WriteAttributeValue(" ", 64485, "dw-mod", 64486, 7, true);
4635 EndWriteAttribute();
4636 BeginWriteAttribute("id", " id=\"", 64493, "\"", 64513, 2);
4637 WriteAttributeValue("", 64498, "Block__", 64498, 7, true);
4638 WriteAttributeValue("", 64505, item.Id, 64505, 8, false);
4639 EndWriteAttribute();
4640 WriteLiteral(">\r\n RenderBlock(item);\r\n </td>\r\n");
4641 }
4642
4643 if (item.Design.RenderType == RenderType.CardHeader)
4644 {
4645 WriteLiteral(" <div");
4646 BeginWriteAttribute("class", " class=\"", 64746, "\"", 64782, 3);
4647 WriteAttributeValue("", 64754, "card-header", 64754, 11, true);
4648 WriteAttributeValue(" ", 64765, cssClass, 64766, 9, false);
4649 WriteAttributeValue(" ", 64775, "dw-mod", 64776, 7, true);
4650 EndWriteAttribute();
4651 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4652 }
4653
4654 if (item.Design.RenderType == RenderType.CardBody)
4655 {
4656 WriteLiteral(" <div");
4657 BeginWriteAttribute("class", " class=\"", 65014, "\"", 65043, 3);
4658 WriteAttributeValue("", 65022, "card", 65022, 4, true);
4659 WriteAttributeValue(" ", 65026, cssClass, 65027, 9, false);
4660 WriteAttributeValue(" ", 65036, "dw-mod", 65037, 7, true);
4661 EndWriteAttribute();
4662 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4663 }
4664
4665 if (item.Design.RenderType == RenderType.CardFooter)
4666 {
4667 WriteLiteral(" <div");
4668 BeginWriteAttribute("class", " class=\"", 65277, "\"", 65313, 3);
4669 WriteAttributeValue("", 65285, "card-footer", 65285, 11, true);
4670 WriteAttributeValue(" ", 65296, cssClass, 65297, 9, false);
4671 WriteAttributeValue(" ", 65306, "dw-mod", 65307, 7, true);
4672 EndWriteAttribute();
4673 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4674 }
4675 }
4676 else
4677 {
4678 RenderBlock(item);
4679 }
4680 }
4681
4682 if (debug) {
4683 WriteLiteral(" <!-- Block END: ");
4684 Write(item.Id);
4685 WriteLiteral(" -->\r\n");
4686 }
4687 }
4688 }
4689
4690 void RenderBlock(Block item)
4691 {
4692 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
4693
4694 if (item.Template != null)
4695 {
4696 Write(BlocksPage.RenderTemplate(item.Template));
4697
4698 }
4699
4700 if (item.Component != null)
4701 {
4702 string customSufix = "Custom";
4703 string methodName = item.Component.HelperName;
4704
4705 ComponentBase[] methodParameters = new ComponentBase[1];
4706 methodParameters[0] = item.Component;
4707 Type methodType = this.GetType();
4708
4709 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix);
4710 MethodInfo generalMethod = methodType.GetMethod(methodName);
4711
4712 try {
4713 if (debug) {
4714 WriteLiteral(" <!-- Component: ");
4715 Write(methodName.Replace("Render", ""));
4716 WriteLiteral(" -->\r\n");
4717 }
4718 Write(customMethod.Invoke(this, methodParameters).ToString());
4719 ;
4720 } catch {
4721 try {
4722 Write(generalMethod.Invoke(this, methodParameters).ToString());
4723
4724 ;
4725 } catch(Exception ex) {
4726 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex);
4727 }
4728 }
4729 }
4730
4731 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList)
4732 {
4733 RenderBlockList(item.BlocksList);
4734 }
4735 }
4736
4737 void Render(ComponentBase component)
4738 {
4739 if (component != null)
4740 {
4741 Write(component.Render(this));
4742
4743 }
4744 }
4745
4746 void RenderIcon(Icon settings)
4747 {
4748 if (settings != null)
4749 {
4750 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
4751
4752 if (settings.Name != null)
4753 {
4754 if (string.IsNullOrEmpty(settings.Label))
4755 {
4756 WriteLiteral(" <i");
4757 BeginWriteAttribute("class", " class=\"", 68209, "\"", 68267, 3);
4758 WriteAttributeValue("", 68217, settings.Prefix, 68217, 16, false);
4759 WriteAttributeValue(" ", 68233, settings.Name, 68234, 14, false);
4760 WriteAttributeValue(" ", 68248, settings.CssClass, 68249, 18, false);
4761 EndWriteAttribute();
4762 WriteLiteral(" ");
4763 Write(color);
4764 WriteLiteral("></i>\r\n");
4765 }
4766 else
4767 {
4768 if (settings.LabelPosition == IconLabelPosition.Before)
4769 {
4770 WriteLiteral(" <div");
4771 BeginWriteAttribute("class", " class=\"", 68470, "\"", 68530, 3);
4772 WriteAttributeValue("", 68478, "u-flex", 68478, 6, true);
4773 WriteAttributeValue(" ", 68484, "u-flex--align-items-center", 68485, 27, true);
4774 WriteAttributeValue(" ", 68511, settings.CssClass, 68512, 18, false);
4775 EndWriteAttribute();
4776 WriteLiteral(">");
4777 Write(settings.Label);
4778 WriteLiteral(" <i");
4779 BeginWriteAttribute("class", " class=\"", 68550, "\"", 68603, 3);
4780 WriteAttributeValue("", 68558, settings.Prefix, 68558, 16, false);
4781 WriteAttributeValue(" ", 68574, settings.Name, 68575, 14, false);
4782 WriteAttributeValue(" ", 68589, "u-margin-left", 68590, 14, true);
4783 EndWriteAttribute();
4784 WriteLiteral(" ");
4785 Write(color);
4786 WriteLiteral("></i></div>\r\n");
4787 }
4788 else
4789 {
4790 WriteLiteral(" <div");
4791 BeginWriteAttribute("class", " class=\"", 68724, "\"", 68784, 3);
4792 WriteAttributeValue("", 68732, "u-flex", 68732, 6, true);
4793 WriteAttributeValue(" ", 68738, "u-flex--align-items-center", 68739, 27, true);
4794 WriteAttributeValue(" ", 68765, settings.CssClass, 68766, 18, false);
4795 EndWriteAttribute();
4796 WriteLiteral("><i");
4797 BeginWriteAttribute("class", " class=\"", 68788, "\"", 68854, 4);
4798 WriteAttributeValue("", 68796, settings.Prefix, 68796, 16, false);
4799 WriteAttributeValue(" ", 68812, settings.Name, 68813, 14, false);
4800 WriteAttributeValue(" ", 68827, "u-margin-right--lg", 68828, 19, true);
4801 WriteAttributeValue(" ", 68846, "u-w20px", 68847, 8, true);
4802 EndWriteAttribute();
4803 WriteLiteral(" ");
4804 Write(color);
4805 WriteLiteral("></i>");
4806 Write(settings.Label);
4807 WriteLiteral("</div>\r\n");
4808 }
4809 }
4810 }
4811 else if (!string.IsNullOrEmpty(settings.Label))
4812 {
4813 Write(settings.Label);
4814
4815 }
4816 }
4817 }
4818
4819 void RenderButton(Button settings)
4820 {
4821 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
4822 {
4823 Dictionary<string, string> attributes = new Dictionary<string, string>();
4824 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
4825 if (settings.Disabled) {
4826 attributes.Add("disabled", "true");
4827 classList.Add("disabled");
4828 }
4829
4830 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle))
4831 {
4832 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
4833 RenderConfirmDialog(settings);
4834 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true";
4835 }
4836
4837 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
4838 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
4839 if (!string.IsNullOrEmpty(settings.AltText))
4840 {
4841 attributes.Add("title", settings.AltText);
4842 }
4843 else if (!string.IsNullOrEmpty(settings.Title))
4844 {
4845 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty);
4846 cleanTitle = cleanTitle.Replace(" ", " ");
4847 attributes.Add("title", cleanTitle);
4848 }
4849
4850 var onClickEvents = new List<string>();
4851 if (!string.IsNullOrEmpty(settings.OnClick))
4852 {
4853 onClickEvents.Add(settings.OnClick);
4854 }
4855 if (!string.IsNullOrEmpty(settings.Href))
4856 {
4857 if (settings.Href.Contains("javascript"))
4858 {
4859 settings.Href = settings.Href.Replace("http://", "");
4860 }
4861 onClickEvents.Add("location.href='" + settings.Href + "'");
4862 }
4863 if (onClickEvents.Count > 0)
4864 {
4865 attributes.Add("onClick", string.Join(";", onClickEvents));
4866 }
4867
4868 if (settings.ButtonLayout != ButtonLayout.None)
4869 {
4870 classList.Add("btn");
4871 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
4872 if (btnLayout == "linkclean")
4873 {
4874 btnLayout = "link-clean"; //fix
4875 }
4876 classList.Add("btn--" + btnLayout);
4877 }
4878
4879 if (settings.Icon == null)
4880 {
4881 settings.Icon = new Icon();
4882 }
4883
4884 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : "";
4885 settings.Icon.Label = settings.Title;
4886
4887 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower());
4888
4889 WriteLiteral(" <button");
4890 BeginWriteAttribute("class", " class=\"", 72447, "\"", 72490, 2);
4891 WriteAttributeValue("", 72455, string.Join(" ", classList), 72455, 28, false);
4892 WriteAttributeValue(" ", 72483, "dw-mod", 72484, 7, true);
4893 EndWriteAttribute();
4894 WriteLiteral(" ");
4895 Write(ComponentMethods.AddAttributes(attributes));
4896 WriteLiteral(" ");
4897 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
4898 WriteLiteral(">");
4899 RenderIcon(settings.Icon);WriteLiteral("</button>\r\n");
4900 }
4901 }
4902
4903 void RenderConfirmDialog(Button settings)
4904 {
4905 Modal confirmDialog = new Modal {
4906 Id = settings.Id,
4907 Width = ModalWidth.Sm,
4908 Heading = new Heading
4909 {
4910 Level = 2,
4911 Title = settings.ConfirmTitle
4912 },
4913 BodyText = settings.ConfirmText
4914 };
4915
4916 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"});
4917 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick });
4918
4919 RenderModal(confirmDialog);
4920 }
4921
4922 void RenderLink(Link settings)
4923 {
4924 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
4925 {
4926 Dictionary<string, string> attributes = new Dictionary<string, string>();
4927 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
4928 if (settings.Disabled)
4929 {
4930 attributes.Add("disabled", "true");
4931 classList.Add("disabled");
4932 }
4933
4934 if (!string.IsNullOrEmpty(settings.AltText))
4935 {
4936 attributes.Add("title", settings.AltText);
4937 }
4938 else if (!string.IsNullOrEmpty(settings.Title))
4939 {
4940 attributes.Add("title", settings.Title);
4941 }
4942
4943 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
4944 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
4945 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); }
4946 attributes.Add("href", settings.Href);
4947
4948 if (settings.ButtonLayout != ButtonLayout.None)
4949 {
4950 classList.Add("btn");
4951 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
4952 if (btnLayout == "linkclean")
4953 {
4954 btnLayout = "link-clean"; //fix
4955 }
4956 classList.Add("btn--" + btnLayout);
4957 }
4958
4959 if (settings.Icon == null)
4960 {
4961 settings.Icon = new Icon();
4962 }
4963 settings.Icon.Label = settings.Title;
4964
4965 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None)
4966 {
4967 settings.Rel = LinkRelType.Noopener;
4968 }
4969 if (settings.Target != LinkTargetType.None)
4970 {
4971 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower());
4972 }
4973 if (settings.Download)
4974 {
4975 attributes.Add("download", "true");
4976 }
4977 if (settings.Rel != LinkRelType.None)
4978 {
4979 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower());
4980 }
4981
4982 WriteLiteral(" <a");
4983 BeginWriteAttribute("class", " class=\"", 76222, "\"", 76265, 2);
4984 WriteAttributeValue("", 76230, string.Join(" ", classList), 76230, 28, false);
4985 WriteAttributeValue(" ", 76258, "dw-mod", 76259, 7, true);
4986 EndWriteAttribute();
4987 WriteLiteral(" ");
4988 Write(ComponentMethods.AddAttributes(attributes));
4989 WriteLiteral(" ");
4990 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
4991 WriteLiteral(">Render(settings.Icon);</a>\r\n");
4992 }
4993 }
4994
4995 void RenderRating(Rating settings)
4996 {
4997 if (settings.Score > 0)
4998 {
4999 int rating = settings.Score;
5000 string iconType = "fa-star";
5001
5002 switch (settings.Type.ToString()) {
5003 case "Stars":
5004 iconType = "fa-star";
5005 break;
5006 case "Hearts":
5007 iconType = "fa-heart";
5008 break;
5009 case "Lemons":
5010 iconType = "fa-lemon";
5011 break;
5012 case "Bombs":
5013 iconType = "fa-bomb";
5014 break;
5015 }
5016
5017 WriteLiteral(" <div class=\"u-ta-right\">\r\n");
5018 for (int i = 0; i < settings.OutOf; i++)
5019 {
5020 WriteLiteral(" <i");
5021 BeginWriteAttribute("class", " class=\"", 77399, "\"", 77446, 2);
5022 WriteAttributeValue("", 77407, rating > i ? "fas" : "far", 77407, 29, false);
5023 WriteAttributeValue(" ", 77436, iconType, 77437, 9, false);
5024 EndWriteAttribute();
5025 WriteLiteral("></i>\r\n");
5026 }
5027 WriteLiteral(" </div>\r\n");
5028 }
5029 }
5030
5031 void RenderNavigation(Navigation settings) {
5032 RenderNavigation(new
5033 {
5034 id = settings.Id,
5035 cssclass = settings.CssClass,
5036 startLevel = settings.StartLevel,
5037 endlevel = settings.EndLevel,
5038 expandmode = settings.Expandmode,
5039 sitemapmode = settings.SitemapMode,
5040 template = settings.Template
5041 });
5042 }
5043
5044 void RenderLeftNavigation(LeftNavigation settings) {
5045 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id;
5046 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template;
5047 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel;
5048 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel;
5049 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode;
5050
5051 WriteLiteral(" <div class=\"grid__cell\">\r\n RenderNavigation(settings);\r\n </div> \r\n");
5052 }
5053
5054 void RenderHeading(Heading settings)
5055 {
5056 if (settings != null && !string.IsNullOrEmpty(settings.Title))
5057 {
5058 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
5059 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div";
5060
5061 Write("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">");
5062
5063 if (!string.IsNullOrEmpty(settings.Link))
5064 {
5065 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None });
5066 }
5067 else
5068 {
5069 if (settings.Icon == null)
5070 {
5071 settings.Icon = new Icon();
5072 }
5073 settings.Icon.Label = settings.Title;
5074 RenderIcon(settings.Icon);
5075 }
5076 Write("</" + tagName + ">");
5077 ;
5078 }
5079 }
5080
5081 void RenderImage(Image settings)
5082 {
5083 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None)
5084 {
5085 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
5086 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); }
5087
5088 if (settings.Caption != null)
5089 {
5090 WriteLiteral(" ");
5091 WriteLiteral("<div>\r\n");
5092 }
5093
5094 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower();
5095 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower();
5096
5097 WriteLiteral(" <div");
5098 BeginWriteAttribute("class", " class=\"", 80927, "\"", 81008, 5);
5099 WriteAttributeValue("", 80935, "image-filter", 80935, 12, true);
5100 WriteAttributeValue(" ", 80947, "image-filter--", 80948, 15, true);
5101 WriteAttributeValue("", 80962, primaryFilterClass, 80962, 19, false);
5102 WriteAttributeValue(" ", 80981, "u-position-relative", 80982, 20, true);
5103 WriteAttributeValue(" ", 81001, "dw-mod", 81002, 7, true);
5104 EndWriteAttribute();
5105 WriteLiteral(" ");
5106 Write(ComponentMethods.AddAttributes(optionalAttributes));
5107 WriteLiteral(">\r\n <div");
5108 BeginWriteAttribute("class", " class=\"", 81088, "\"", 81151, 4);
5109 WriteAttributeValue("", 81096, "image-filter", 81096, 12, true);
5110 WriteAttributeValue(" ", 81108, "image-filter--", 81109, 15, true);
5111 WriteAttributeValue("", 81123, secondaryFilterClass, 81123, 21, false);
5112 WriteAttributeValue(" ", 81144, "dw-mod", 81145, 7, true);
5113 EndWriteAttribute();
5114 WriteLiteral(">\r\n");
5115 if (settings.Link != null)
5116 {
5117 WriteLiteral(" <a");
5118 BeginWriteAttribute("href", " href=\"", 81265, "\"", 81286, 1);
5119 WriteAttributeValue("", 81272, settings.Link, 81272, 14, false);
5120 EndWriteAttribute();
5121 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n");
5122 }
5123 else
5124 {
5125 RenderTheImage(settings);
5126 }
5127 WriteLiteral(" </div>\r\n </div>\r\n");
5128
5129 if (settings.Caption != null)
5130 {
5131 WriteLiteral(" <span class=\"image-caption dw-mod\">");
5132 Write(settings.Caption);
5133 WriteLiteral("</span>\r\n ");
5134 WriteLiteral("</div>\r\n");
5135 }
5136 }
5137 else
5138 {
5139 if (settings.Caption != null)
5140 {
5141 WriteLiteral(" ");
5142 WriteLiteral("<div>\r\n");
5143 }
5144 if (!string.IsNullOrEmpty(settings.Link))
5145 {
5146 WriteLiteral(" <a");
5147 BeginWriteAttribute("href", " href=\"", 82029, "\"", 82050, 1);
5148 WriteAttributeValue("", 82036, settings.Link, 82036, 14, false);
5149 EndWriteAttribute();
5150 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n");
5151 }
5152 else
5153 {
5154 RenderTheImage(settings);
5155 }
5156
5157 if (settings.Caption != null)
5158 {
5159 WriteLiteral(" <span class=\"image-caption dw-mod\">");
5160 Write(settings.Caption);
5161 WriteLiteral("</span>\r\n ");
5162 WriteLiteral("</div>\r\n");
5163 }
5164 }
5165 }
5166
5167 void RenderTheImage(Image settings)
5168 {
5169 if (settings != null)
5170 {
5171 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg";
5172 string placeholderImage = "/Files/Images/placeholder.gif";
5173 string imageEngine = "/Admin/Public/GetImage.ashx?";
5174
5175 string imageStyle = "";
5176
5177 switch (settings.Style)
5178 {
5179 case ImageStyle.Ball:
5180 imageStyle = "grid__cell-img--ball";
5181 break;
5182
5183 case ImageStyle.Triangle:
5184 imageStyle = "grid__cell-img--triangle";
5185 break;
5186 }
5187
5188 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle)
5189 {
5190 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop;
5191
5192 if (settings.ImageDefault != null)
5193 {
5194 settings.ImageDefault.Height = settings.ImageDefault.Width;
5195 }
5196 if (settings.ImageMedium != null)
5197 {
5198 settings.ImageMedium.Height = settings.ImageMedium.Width;
5199 }
5200 if (settings.ImageSmall != null)
5201 {
5202 settings.ImageSmall.Height = settings.ImageSmall.Width;
5203 }
5204 }
5205
5206 string defaultImage = imageEngine;
5207 string imageSmall = "";
5208 string imageMedium = "";
5209
5210 if (settings.DisableImageEngine)
5211 {
5212 defaultImage = settings.Path;
5213 }
5214 else
5215 {
5216 if (settings.ImageDefault != null)
5217 {
5218 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault);
5219
5220 if (settings.Path.GetType() != typeof(string))
5221 {
5222 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
5223 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
5224 }
5225 else
5226 {
5227 defaultImage += settings.Path != null ? "Image=" + settings.Path : "";
5228 }
5229
5230 defaultImage += "&AlternativeImage=" + alternativeImage;
5231 }
5232
5233 if (settings.ImageSmall != null)
5234 {
5235 imageSmall = "data-src-small=\"" + imageEngine;
5236 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall);
5237
5238 if (settings.Path.GetType() != typeof(string))
5239 {
5240 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
5241 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
5242 }
5243 else
5244 {
5245 imageSmall += settings.Path != null ? "Image=" + settings.Path : "";
5246 }
5247
5248 imageSmall += "&alternativeImage=" + alternativeImage;
5249
5250 imageSmall += "\"";
5251 }
5252
5253 if (settings.ImageMedium != null)
5254 {
5255 imageMedium = "data-src-medium=\"" + imageEngine;
5256 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium);
5257
5258 if (settings.Path.GetType() != typeof(string))
5259 {
5260 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
5261 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
5262 }
5263 else
5264 {
5265 imageMedium += settings.Path != null ? "Image=" + settings.Path : "";
5266 }
5267
5268 imageMedium += "&alternativeImage=" + alternativeImage;
5269
5270 imageMedium += "\"";
5271 }
5272 }
5273
5274 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
5275 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); }
5276 if (!string.IsNullOrEmpty(settings.Title))
5277 {
5278 optionalAttributes.Add("alt", settings.Title);
5279 optionalAttributes.Add("title", settings.Title);
5280 }
5281
5282 if (settings.DisableLazyLoad)
5283 {
5284 WriteLiteral(" <img");
5285 BeginWriteAttribute("id", " id=\"", 87529, "\"", 87546, 1);
5286 WriteAttributeValue("", 87534, settings.Id, 87534, 12, false);
5287 EndWriteAttribute();
5288 BeginWriteAttribute("class", " class=\"", 87547, "\"", 87592, 3);
5289 WriteAttributeValue("", 87555, imageStyle, 87555, 11, false);
5290 WriteAttributeValue(" ", 87566, settings.CssClass, 87567, 18, false);
5291 WriteAttributeValue(" ", 87585, "dw-mod", 87586, 7, true);
5292 EndWriteAttribute();
5293 BeginWriteAttribute("src", " src=\"", 87593, "\"", 87612, 1);
5294 WriteAttributeValue("", 87599, defaultImage, 87599, 13, false);
5295 EndWriteAttribute();
5296 WriteLiteral(" ");
5297 Write(ComponentMethods.AddAttributes(optionalAttributes));
5298 WriteLiteral(" ");
5299 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5300 WriteLiteral(" />\r\n");
5301 }
5302 else
5303 {
5304
5305 WriteLiteral(" <img");
5306 BeginWriteAttribute("id", " id=\"", 87810, "\"", 87827, 1);
5307 WriteAttributeValue("", 87815, settings.Id, 87815, 12, false);
5308 EndWriteAttribute();
5309 BeginWriteAttribute("class", " class=\"", 87828, "\"", 87873, 3);
5310 WriteAttributeValue("", 87836, imageStyle, 87836, 11, false);
5311 WriteAttributeValue(" ", 87847, settings.CssClass, 87848, 18, false);
5312 WriteAttributeValue(" ", 87866, "dw-mod", 87867, 7, true);
5313 EndWriteAttribute();
5314 WriteLiteral(" loading=\"lazy\"");
5315 BeginWriteAttribute("src", " src=\"", 87889, "\"", 87908, 1);
5316 WriteAttributeValue("", 87895, defaultImage, 87895, 13, false);
5317 EndWriteAttribute();
5318 WriteLiteral(" ");
5319 Write(ComponentMethods.AddAttributes(optionalAttributes));
5320 WriteLiteral(" ");
5321 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5322 WriteLiteral(" />\r\n");
5323 }
5324 }
5325 }
5326
5327 void RenderHiddenField(HiddenField settings) {
5328 var attributes = new Dictionary<string, string>();
5329 attributes.Add("type", "hidden");
5330 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5331 if (settings.Value != null) { attributes.Add("value", settings.Value); }
5332 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
5333
5334 WriteLiteral(" <input ");
5335 Write(ComponentMethods.AddAttributes(attributes));
5336 WriteLiteral(" ");
5337 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5338 WriteLiteral("/>\r\n");
5339 }
5340
5341 void RenderRadioButtonField(RadioButtonField settings)
5342 {
5343 var attributes = new Dictionary<string, string>();
5344 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id))
5345 {
5346 settings.Id = Guid.NewGuid().ToString("N");
5347 }
5348
5349 /*base settings*/
5350 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5351 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); }
5352 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); }
5353 if (settings.Disabled) { attributes.Add("disabled", "true"); }
5354 if (settings.Required) { attributes.Add("required", "true"); }
5355 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
5356 /*end*/
5357
5358 attributes.Add("type", "radio");
5359 if (settings.Checked) { attributes.Add("checked", "true"); }
5360 settings.CssClass = "form__control " + settings.CssClass;
5361 if (settings.Value != null) { attributes.Add("value", settings.Value); }
5362
5363 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value);
5364
5365 WriteLiteral(" <div");
5366 BeginWriteAttribute("class", " class=\"", 90228, "\"", 90286, 3);
5367 WriteAttributeValue("", 90236, "form__field-group", 90236, 17, true);
5368 WriteAttributeValue(" ", 90253, settings.WrapperCssClass, 90254, 25, false);
5369 WriteAttributeValue(" ", 90279, "dw-mod", 90280, 7, true);
5370 EndWriteAttribute();
5371 WriteLiteral(">\r\n <input ");
5372 Write(ComponentMethods.AddAttributes(resultAttributes));
5373 WriteLiteral(" class=\"");
5374 Write(settings.CssClass);
5375 WriteLiteral(" dw-mod\" />\r\n");
5376 if (!string.IsNullOrEmpty(settings.Label))
5377 {
5378 WriteLiteral(" <label");
5379 BeginWriteAttribute("for", " for=\"", 90491, "\"", 90509, 1);
5380 WriteAttributeValue("", 90497, settings.Id, 90497, 12, false);
5381 EndWriteAttribute();
5382 WriteLiteral(" class=\"dw-mod\">");
5383 Write(settings.Label);
5384 WriteLiteral("</label>\r\n");
5385 }
5386 if (!string.IsNullOrEmpty(settings.HelpText))
5387 {
5388 WriteLiteral(" <small class=\"form__help-text\">");
5389 Write(settings.HelpText);
5390 WriteLiteral("</small>\r\n");
5391 }
5392 WriteLiteral(" Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n");
5393 }
5394
5395 void RenderRadioButtonListField(RadioButtonListField settings)
5396 {
5397 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; }
5398
5399 WriteLiteral(" <div");
5400 BeginWriteAttribute("class", " class=\"", 91224, "\"", 91298, 4);
5401 WriteAttributeValue("", 91232, "form__field-group", 91232, 17, true);
5402 WriteAttributeValue(" ", 91249, settings.WrapperCssClass, 91250, 25, false);
5403 WriteAttributeValue(" ", 91275, "u-margin-bottom", 91276, 16, true);
5404 WriteAttributeValue(" ", 91291, "dw-mod", 91292, 7, true);
5405 EndWriteAttribute();
5406 WriteLiteral(" ");
5407 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5408 WriteLiteral(">\r\n");
5409 if (!string.IsNullOrEmpty(settings.Label))
5410 {
5411 WriteLiteral(" <label>");
5412 Write(settings.Label);
5413 WriteLiteral("</label>\r\n");
5414 }
5415 if (!string.IsNullOrEmpty(settings.HelpText))
5416 {
5417 WriteLiteral(" <small class=\"form__help-text\">");
5418 Write(settings.HelpText);
5419 WriteLiteral("</small>\r\n");
5420 }
5421 WriteLiteral("\r\n");
5422 foreach (var item in settings.Options)
5423 {
5424 if (settings.Required)
5425 {
5426 item.Required = true;
5427 }
5428 if (settings.Disabled)
5429 {
5430 item.Disabled = true;
5431 }
5432 if (!string.IsNullOrEmpty(settings.Name))
5433 {
5434 item.Name = settings.Name;
5435 }
5436 if (settings.Value != null && settings.Value == item.Value)
5437 {
5438 item.Checked = true;
5439 }
5440 if (!string.IsNullOrEmpty(settings.OnClick))
5441 {
5442 item.OnClick += settings.OnClick;
5443 }
5444 if (!string.IsNullOrEmpty(settings.OnChange))
5445 {
5446 item.OnChange += settings.OnChange;
5447 }
5448 if (!string.IsNullOrEmpty(settings.CssClass))
5449 {
5450 item.CssClass += settings.CssClass;
5451 }
5452 Render(item);
5453 }
5454 WriteLiteral("\r\n Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n");
5455 }
5456
5457 void RenderForm(Form settings) {
5458 if (settings != null)
5459 {
5460 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
5461 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); };
5462 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); };
5463 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); };
5464 var enctypes = new Dictionary<string, string>
5465 {
5466 { "multipart", "multipart/form-data" },
5467 { "text", "text/plain" },
5468 { "application", "application/x-www-form-urlencoded" }
5469 };
5470 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); };
5471 optionalAttributes.Add("method", settings.Method.ToString());
5472
5473 if (!string.IsNullOrEmpty(settings.FormStartMarkup))
5474 {
5475 Write(settings.FormStartMarkup);
5476
5477 }
5478 else
5479 {
5480 WriteLiteral(" ");
5481 WriteLiteral("<form class=\"");
5482 Write(settings.CssClass);
5483 WriteLiteral(" u-no-margin dw-mod\" ");
5484 Write(ComponentMethods.AddAttributes(optionalAttributes));
5485 WriteLiteral(" ");
5486 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5487 WriteLiteral(">\r\n");
5488 }
5489
5490 foreach (var field in settings.GetFields())
5491 {
5492 Render(field);
5493 }
5494
5495 WriteLiteral(" ");
5496 WriteLiteral("</form>\r\n");
5497 }
5498 }
5499
5500 void RenderText(Text settings)
5501 {
5502 Write(settings.Content);
5503
5504 }
5505
5506 void RenderContentModule(ContentModule settings) {
5507 if (!string.IsNullOrEmpty(settings.Content))
5508 {
5509 Write(settings.Content);
5510
5511 }
5512 }
5513
5514 void RenderModal(Modal settings) {
5515 if (settings != null)
5516 {
5517 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
5518
5519 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : "";
5520
5521 WriteLiteral(" <input type=\"checkbox\"");
5522 BeginWriteAttribute("id", " id=\"", 95694, "\"", 95721, 2);
5523 WriteAttributeValue("", 95699, modalId, 95699, 10, false);
5524 WriteAttributeValue("", 95709, "ModalTrigger", 95709, 12, true);
5525 EndWriteAttribute();
5526 WriteLiteral(" class=\"modal-trigger\" ");
5527 Write(onchange);
5528 WriteLiteral(" />\r\n");
5529 WriteLiteral(" <div class=\"modal-container\">\r\n");
5530 if (!settings.DisableDarkOverlay)
5531 {
5532 WriteLiteral(" <label");
5533 BeginWriteAttribute("for", " for=\"", 95901, "\"", 95929, 2);
5534 WriteAttributeValue("", 95907, modalId, 95907, 10, false);
5535 WriteAttributeValue("", 95917, "ModalTrigger", 95917, 12, true);
5536 EndWriteAttribute();
5537 BeginWriteAttribute("id", " id=\"", 95930, "\"", 95957, 2);
5538 WriteAttributeValue("", 95935, modalId, 95935, 10, false);
5539 WriteAttributeValue("", 95945, "ModalOverlay", 95945, 12, true);
5540 EndWriteAttribute();
5541 WriteLiteral(" class=\"modal-overlay\"></label>\r\n");
5542 }
5543 WriteLiteral(" <div");
5544 BeginWriteAttribute("class", " class=\"", 96030, "\"", 96139, 5);
5545 WriteAttributeValue("", 96038, "modal", 96038, 5, true);
5546 WriteAttributeValue(" ", 96043, "modal--", 96044, 8, true);
5547 WriteAttributeValue("", 96051, settings.Width.ToString().ToLower(), 96051, 36, false);
5548 WriteAttributeValue(" ", 96087, "modal-height--", 96088, 15, true);
5549 WriteAttributeValue("", 96102, settings.Height.ToString().ToLower(), 96102, 37, false);
5550 EndWriteAttribute();
5551 BeginWriteAttribute("id", " id=\"", 96140, "\"", 96160, 2);
5552 WriteAttributeValue("", 96145, modalId, 96145, 10, false);
5553 WriteAttributeValue("", 96155, "Modal", 96155, 5, true);
5554 EndWriteAttribute();
5555 WriteLiteral(">\r\n");
5556 if (settings.Heading != null)
5557 {
5558 if (!string.IsNullOrEmpty(settings.Heading.Title))
5559 {
5560 WriteLiteral(" <div class=\"modal__header\">\r\n RenderHeading(settings.Heading);\r\n </div>\r\n");
5561 }
5562 }
5563 WriteLiteral(" <div");
5564 BeginWriteAttribute("class", " class=\"", 96575, "\"", 96670, 2);
5565 WriteAttributeValue("", 96583, "modal__body", 96583, 11, true);
5566 WriteAttributeValue(" ", 96594, settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "", 96595, 75, false);
5567 EndWriteAttribute();
5568 WriteLiteral(">\r\n");
5569 if (!string.IsNullOrEmpty(settings.BodyText))
5570 {
5571 Write(settings.BodyText);
5572
5573 }
5574 if (settings.BodyTemplate != null)
5575 {
5576 Write(settings.BodyTemplate);
5577
5578 }
5579
5580 var actions = settings.GetActions();
5581 WriteLiteral(" </div>\r\n");
5582 if (actions.Length > 0)
5583 {
5584 WriteLiteral(" <div class=\"modal__footer\">\r\n");
5585 foreach (var action in actions)
5586 {
5587 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") {
5588 action.CssClass += " u-no-margin";
5589 } else {
5590 action.CssClass += " u-full-width u-margin-bottom";
5591 }
5592
5593 Render(action);
5594 }
5595 WriteLiteral(" </div>\r\n");
5596 }
5597 WriteLiteral(" <label class=\"modal__close-btn\"");
5598 BeginWriteAttribute("for", " for=\"", 97914, "\"", 97942, 2);
5599 WriteAttributeValue("", 97920, modalId, 97920, 10, false);
5600 WriteAttributeValue("", 97930, "ModalTrigger", 97930, 12, true);
5601 EndWriteAttribute();
5602 WriteLiteral("></label>\r\n </div>\r\n </div>\r\n");
5603 }
5604 }
5605
5606 void RenderMediaListItem(MediaListItem settings)
5607 {
5608 WriteLiteral(" <div");
5609 BeginWriteAttribute("class", " class=\"", 98180, "\"", 98229, 3);
5610 WriteAttributeValue("", 98188, "media-list-item", 98188, 15, true);
5611 WriteAttributeValue(" ", 98203, settings.CssClass, 98204, 18, false);
5612 WriteAttributeValue(" ", 98222, "dw-mod", 98223, 7, true);
5613 EndWriteAttribute();
5614 WriteLiteral(" ");
5615 Write(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : "");
5616 WriteLiteral(">\r\n");
5617 if (!string.IsNullOrEmpty(settings.Label))
5618 {
5619 if (!string.IsNullOrEmpty(settings.Link))
5620 {
5621 Render(new Link
5622 {
5623 Href = settings.Link,
5624 CssClass = "media-list-item__sticker dw-mod",
5625 ButtonLayout = ButtonLayout.None,
5626 Title = settings.Label,
5627 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
5628 });
5629 }
5630 else if (!string.IsNullOrEmpty(settings.OnClick))
5631 {
5632 WriteLiteral(" <span class=\"media-list-item__sticker dw-mod\"");
5633 BeginWriteAttribute("onclick", " onclick=\"", 99037, "\"", 99066, 1);
5634 WriteAttributeValue("", 99047, settings.OnClick, 99047, 19, false);
5635 EndWriteAttribute();
5636 WriteLiteral(">\r\n <span class=\"u-uppercase\">");
5637 Write(settings.Label);
5638 WriteLiteral("</span>\r\n </span>\r\n");
5639 }
5640 else
5641 {
5642 WriteLiteral(" <span class=\"media-list-item__sticker media-list-item__sticker--no-link dw-mod\">\r\n <span class=\"u-uppercase\">");
5643 Write(settings.Label);
5644 WriteLiteral("</span>\r\n </span>\r\n");
5645 }
5646 }
5647 WriteLiteral(" <div class=\"media-list-item__wrap\">\r\n <div class=\"media-list-item__info dw-mod\">\r\n <div class=\"media-list-item__header dw-mod\">\r\n");
5648 if (!string.IsNullOrEmpty(settings.Title))
5649 {
5650 if (!string.IsNullOrEmpty(settings.Link))
5651 {
5652 Render(new Link
5653 {
5654 Href = settings.Link,
5655 CssClass = "media-list-item__name dw-mod",
5656 ButtonLayout = ButtonLayout.None,
5657 Title = settings.Title,
5658 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
5659 });
5660 }
5661 else if (!string.IsNullOrEmpty(settings.OnClick))
5662 {
5663 WriteLiteral(" <span class=\"media-list-item__name dw-mod\"");
5664 BeginWriteAttribute("onclick", " onclick=\"", 100563, "\"", 100592, 1);
5665 WriteAttributeValue("", 100573, settings.OnClick, 100573, 19, false);
5666 EndWriteAttribute();
5667 WriteLiteral(">");
5668 Write(settings.Title);
5669 WriteLiteral("</span>\r\n");
5670 }
5671 else
5672 {
5673 WriteLiteral(" <span class=\"media-list-item__name media-list-item__name--no-link dw-mod\">");
5674 Write(settings.Title);
5675 WriteLiteral("</span>\r\n");
5676 }
5677 }
5678 WriteLiteral("\r\n");
5679 if (!string.IsNullOrEmpty(settings.Status))
5680 {
5681 WriteLiteral(" <div class=\"media-list-item__state dw-mod\">");
5682 Write(settings.Status);
5683 WriteLiteral("</div>\r\n");
5684 }
5685 WriteLiteral(" </div>\r\n");
5686
5687 settings.InfoTable.CssClass += " media-list-item__parameters-table";
5688 WriteLiteral("\r\n Render(settings.InfoTable);\r\n </div>\r\n <div class=\"media-list-item__actions dw-mod\">\r\n <div class=\"media-list-item__actions-list dw-mod\">\r\n");
5689
5690 var actions = settings.GetActions();
5691
5692 foreach (ButtonBase action in actions)
5693 {
5694 action.ButtonLayout = ButtonLayout.None;
5695 action.CssClass += " media-list-item__action link";
5696
5697 Render(action);
5698 }
5699 WriteLiteral(" </div>\r\n\r\n");
5700 if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title))
5701 {
5702 settings.SelectButton.CssClass += " u-no-margin";
5703
5704 WriteLiteral(" <div class=\"media-list-item__action-button\">\r\n Render(settings.SelectButton);\r\n </div>\r\n");
5705 }
5706 WriteLiteral(" </div>\r\n </div>\r\n </div>\r\n");
5707 }
5708
5709 void RenderTable(Table settings)
5710 {
5711 Dictionary<string, string> attributes = new Dictionary<string, string>();
5712 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5713
5714 var enumToClasses = new Dictionary<TableDesign, string>
5715 {
5716 { TableDesign.Clean, "table--clean" },
5717 { TableDesign.Bordered, "table--bordered" },
5718 { TableDesign.Striped, "table--striped" },
5719 { TableDesign.Hover, "table--hover" },
5720 { TableDesign.Compact, "table--compact" },
5721 { TableDesign.Condensed, "table--condensed" },
5722 { TableDesign.NoTopBorder, "table--no-top-border" }
5723 };
5724 string tableDesignClass = "";
5725 if (settings.Design != TableDesign.None)
5726 {
5727 tableDesignClass = enumToClasses[settings.Design];
5728 }
5729
5730 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); }
5731
5732 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
5733
5734 WriteLiteral(" <table ");
5735 Write(ComponentMethods.AddAttributes(resultAttributes));
5736 WriteLiteral(">\r\n");
5737 if (settings.Header != null)
5738 {
5739 WriteLiteral(" <thead>\r\n Render(settings.Header);\r\n </thead>\r\n");
5740 }
5741 WriteLiteral(" <tbody>\r\n");
5742 foreach (var row in settings.Rows)
5743 {
5744 Render(row);
5745 }
5746 WriteLiteral(" </tbody>\r\n");
5747 if (settings.Footer != null)
5748 {
5749 WriteLiteral(" <tfoot>\r\n Render(settings.Footer);\r\n </tfoot>\r\n");
5750 }
5751 WriteLiteral(" </table>\r\n");
5752 }
5753
5754 void RenderTableRow(TableRow settings)
5755 {
5756 Dictionary<string, string> attributes = new Dictionary<string, string>();
5757 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5758
5759 var enumToClasses = new Dictionary<TableRowDesign, string>
5760 {
5761 { TableRowDesign.NoBorder, "table__row--no-border" },
5762 { TableRowDesign.Border, "table__row--border" },
5763 { TableRowDesign.TopBorder, "table__row--top-line" },
5764 { TableRowDesign.BottomBorder, "table__row--bottom-line" },
5765 { TableRowDesign.Solid, "table__row--solid" }
5766 };
5767
5768 string tableRowDesignClass = "";
5769 if (settings.Design != TableRowDesign.None)
5770 {
5771 tableRowDesignClass = enumToClasses[settings.Design];
5772 }
5773
5774 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); }
5775
5776 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
5777
5778 WriteLiteral(" <tr ");
5779 Write(ComponentMethods.AddAttributes(resultAttributes));
5780 WriteLiteral(">\r\n");
5781 foreach (var cell in settings.Cells)
5782 {
5783 if (settings.IsHeaderRow)
5784 {
5785 cell.IsHeader = true;
5786 }
5787 Render(cell);
5788 }
5789 WriteLiteral(" </tr>\r\n");
5790 }
5791
5792 void RenderTableCell(TableCell settings)
5793 {
5794 Dictionary<string, string> attributes = new Dictionary<string, string>();
5795 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5796 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); }
5797 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); }
5798 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); }
5799
5800 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
5801
5802 string tagName = settings.IsHeader ? "th" : "td";
5803
5804 Write("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">");
5805 Write(settings.Content);
5806 Write("</" + tagName + ">");
5807 ;
5808 }
5809
5810 BlocksPage articlePage = BlocksPage.GetBlockPage("DynamicArticle");
5811
5812 public string GetParentSettingsItem(string systemName)
5813 {
5814 string item = null;
5815
5816 Dynamicweb.Content.Page current = Dynamicweb.Services.Pages.GetPage(Model.ID);
5817 while (current != null && current.Parent != current)
5818 {
5819 var temp = current.Item != null ? current.Item[systemName] : "";
5820
5821 if (temp != null)
5822 {
5823 item = temp.ToString();
5824
5825 if (!String.IsNullOrEmpty(item) && !String.Equals("default", item, StringComparison.OrdinalIgnoreCase))
5826 {
5827 break;
5828 }
5829 }
5830
5831 current = current.Parent;
5832 }
5833
5834 return item;
5835 }
5836
5837 public string GetArticleCategory(int pageId)
5838 {
5839 string categoryName = null;
5840
5841 //Secure that the article is not in the root folder = Actual has a category
5842 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null)
5843 {
5844 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null)
5845 {
5846 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType))
5847 {
5848 categoryName = Dynamicweb.Services.Pages.GetPage(pageId).Parent.GetDisplayName();
5849 }
5850 }
5851 }
5852
5853 return categoryName;
5854 }
5855
5856 public string GetArticleCategoryColor(int pageId)
5857 {
5858 string categoryColor = "";
5859
5860 //Secure that the article is not in the root folder = Actual has a category
5861 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null)
5862 {
5863 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null)
5864 {
5865 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType))
5866 {
5867 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"] != null)
5868 {
5869 var service = new ColorSwatchService();
5870 categoryColor = Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"].ToString();
5871
5872 if (!categoryColor.Contains("#"))
5873 {
5874 categoryColor = service.GetHexColor(Converter.ToInt32(Model.Area.ID), categoryColor);
5875 }
5876 }
5877 }
5878 }
5879 }
5880
5881 return categoryColor;
5882 }
5883 }
5884 }
5885 #pragma warning restore 1591
5886
1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
2 @using System
3 @using System.Globalization;
4 @using System.Text.RegularExpressions;
5 @using Custom.Integration.Brokers;
6 @using RealMaeglerne.Dynamicweb;
7 @using Dynamicweb.Content.Items;
8 @using Dynamicweb.Environment;
9 @using Newtonsoft.Json;
10 @using Dynamicweb.Logging;
11 @using Dynamicweb.Core;
12 @using Dynamicweb.Frontend.Navigation;
13 @using Dynamicweb;
14 @using static RealMaeglerne.Library.Helper;
15
16 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
17 @using Dynamicweb.Content.Items;
18
19 @functions{
20 void RenderErhvervsTypeCheckboxes(string productGroupFilter)
21 {
22 <div class="col-xs-6 col-md-4">
23 <div class="checkbox">
24 <label>
25 <input type="checkbox" name="propertytype" value="bolig/erhverv, kombineret erhverv og bolig, byejendom (kontor, butik, beboelse)" />
26 <span>Bolig/erhverv</span>
27 </label>
28 </div>
29 <div class="checkbox">
30 <label>
31 <input type="checkbox" name="propertytype" value="erhvervsgrund" />
32 <span>Erhvervsgrund</span>
33 </label>
34 </div>
35 <div class="checkbox">
36 <label>
37 <input type="checkbox" name="propertytype" value="boligudlejning" />
38 <span>Boligudlejningsejendom</span>
39 </label>
40 </div>
41 <div class="checkbox">
42 <label>
43 <input type="checkbox" name="propertytype" value="kontor, klinik, kontorhotel, showroom, undervisningslokaler" />
44 <span>Kontor</span>
45 </label>
46 </div>
47 </div>
48 <div class="col-xs-6 col-md-4">
49 <div class="checkbox">
50 <label>
51 <input type="checkbox" name="propertytype" value="butik / detail, butik / detailhandel" />
52 <span>Butik/detailhandel</span>
53 </label>
54 </div>
55 <div class="checkbox">
56 <label>
57 <input type="checkbox" name="propertytype" value="industri / logistik, håndværk, industri, kontor / lager, logistik" />
58 <span>Produktion/lager</span>
59 </label>
60 </div>
61 <div class="checkbox">
62 <label>
63 <input type="checkbox" name="propertytype" value="hotel - kursusejendom, restaurant" />
64 <span>Hotel og restaurant</span>
65 </label>
66 </div>
67 <div class="checkbox">
68 <label>
69 <input type="checkbox" name="propertytype" value="projekt ejendom" />
70 <span>Projektejendom</span>
71 </label>
72 </div>
73 </div>
74 <div class="col-xs-6 col-md-4">
75 <div class="checkbox">
76 <label>
77 <input type="checkbox" name="propertytype" value="andet" />
78 <span>Andet</span>
79 </label>
80 </div>
81 </div>
82
83 <input type="hidden" name="propertycategory" value="erhverv, udlejning" />
84 <input type="hidden" name="filtrering" value="@productGroupFilter" />
85 }
86 void RenderBoligtypeCheckboxes()
87 {
88 <div class="col-6 col-md-4">
89 <div class="checkbox">
90 <label>
91 <input type="checkbox" name="propertytype" value="villa" />
92 <span>Villa</span>
93 </label>
94 </div>
95 <div class="checkbox">
96 <label>
97 <input type="checkbox" name="propertytype" value="rækkehus" />
98 <span>Rækkehus</span>
99 </label>
100 </div>
101 <div class="checkbox">
102 <label>
103 <input type="checkbox" name="propertytype" value="villalejlighed" />
104 <span>Villalejlighed</span>
105 </label>
106 </div>
107 <div class="checkbox">
108 <label>
109 <input type="checkbox" name="propertytype" value="andelsbolig" />
110 <span>Andelsbolig</span>
111 </label>
112 </div>
113 </div>
114 <div class="col-6 col-md-4">
115 <div class="checkbox">
116 <label>
117 <input type="checkbox" name="propertytype" value="fritidshus, fritidsbolig" />
118 <span>Fritidsbolig</span>
119 </label>
120 </div>
121 <div class="checkbox">
122 <label>
123 <input type="checkbox" name="propertytype" value="ejerlejlighed" class="specialOption" data-disable-slider="#grundareal" data-disable-slider-ranges="#grundarealmin,#grundarealmax" />
124 <span>Ejerlejlighed</span>
125 </label>
126 </div>
127 <div class="checkbox">
128 <label>
129 <input type="checkbox" name="propertytype" value="helårsgrund" class="specialOption" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" />
130 <span>Helårsgrund</span>
131 </label>
132 </div>
133 <div class="checkbox">
134 <label>
135 <input type="checkbox" name="propertytype" value="fritidsgrund" class="specialOption" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" />
136 <span>Fritidsgrund</span>
137 </label>
138 </div>
139 </div>
140 <div class="col-6 col-md-4">
141 <div class="checkbox">
142 <label>
143 <input type="checkbox" name="propertytype" value="landejendom, lystejendom" class="specialOption" data-disable-checkbox="true" />
144 <span>Landejendom</span>
145 </label>
146 </div>
147 <div class="checkbox">
148 <label>
149 <input type="checkbox" name="propertytype" value="erhverv" class="specialOption" data-disable-checkbox="true" data-disable-slider="#roomsslider" data-disable-slider-ranges="#roomsmin" />
150 <span>Erhverv</span>
151 </label>
152 </div>
153 </div>
154 }
155
156 void RenderChecked(string queryString)
157 {
158 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString)
159 {
160 @("checked")
161 }
162 }
163
164 void RenderBoligtypeCheckboxesDropdown()
165 {
166 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){
167 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" },
168 { "Andelsbolig", "andelsbolig" }
169 };
170 foreach (KeyValuePair<string, string> type in propertyTypes)
171 {
172 bool ischecked = false;
173 string[] propertytypeSplit = new string[0];
174 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
175 {
176 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
177 }
178 foreach (var propertytypeParams in propertytypeSplit)
179 {
180 if (propertytypeParams == type.Value)
181 {
182 ischecked = true;
183 }
184 }
185 <li>
186 <label class="checkbox-container d-flex">
187 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
188 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue js-datavalue js-count" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
189 <span class="checkmark grey"></span>
190 </label>
191 </li>
192 }
193
194 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){
195 { "Fritidsbolig", "fritidshus, fritidsbolig" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" },
196 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" }
197 };
198 foreach (KeyValuePair<string, string> type in propertyTypes2)
199 {
200 bool ischecked = false;
201 string[] propertytypeSplit2 = new string[0];
202 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
203 {
204 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
205 }
206 foreach (var propertytypeParams in propertytypeSplit2)
207 {
208 if (propertytypeParams == type.Value)
209 {
210 ischecked = true;
211 }
212 }
213 <li>
214 <label class="checkbox-container d-flex">
215 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
216 @if (type.Value == "ejerlejlighed")
217 {
218 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-disable-slider="#grundareal" data-disable-slider-ranges="#grundarealmin,#grundarealmax" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
219 }
220 else if (type.Value == "helårsgrund")
221 {
222 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
223 }
224 else if (type.Value == "fritidsgrund")
225 {
226 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
227 }
228 else
229 {
230 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
231 }
232 <span class="checkmark grey"></span>
233 </label>
234 </li>
235 }
236 }
237
238 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false)
239 {
240 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
241 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" },
242 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" }
243 };
244 var submitonchange = "";
245 if (submitOnChange)
246 {
247 submitonchange = "onchange='submitFilter()'";
248 }
249
250 foreach (KeyValuePair<string, string> type in erhverType)
251 {
252 string ischecked = "";
253 string[] olineParamsSplit = new string[0];
254 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
255 {
256 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
257 }
258 foreach (var olineParams in olineParamsSplit)
259 {
260 if (olineParams == type.Value)
261 {
262 ischecked = "checked";
263 }
264 }
265
266 <li>
267 <label class="checkbox-container d-flex">
268 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
269 <input type="checkbox" name="olinecategory" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" @submitonchange @ischecked />
270 <span class="checkmark grey"></span>
271 </label>
272 </li>
273 }
274 }
275
276 void RenderBoligTypeErhvervInvest(bool submitOnChange = false)
277 {
278 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
279 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" },
280 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" }
281 };
282
283 foreach (KeyValuePair<string, string> type in erhverType)
284 {
285 bool ischecked = false;
286 string[] olineParamsSplit = new string[0];
287 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
288 {
289 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
290 }
291 foreach (var olineParams in olineParamsSplit)
292 {
293 if (olineParams == type.Value)
294 {
295 ischecked = true;
296 }
297 }
298
299 <li>
300 <label class="checkbox-container">
301 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
302 <input type="checkbox" name="olinecategory" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
303 <span class="checkmark grey"></span>
304 </label>
305 </li>
306 }
307 }
308 int GetWebsiteSettingsPageId(string pageSysName)
309 {
310 int sideId = 0;
311
312 var pw = Dynamicweb.Frontend.PageView.Current();
313
314 string settingsItemId = "1";
315
316 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true")
317 {
318 settingsItemId = "2";
319 }
320
321 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId);
322
323 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName))
324 {
325 return sideId;
326 }
327
328 string boligsideLink = settingsItem[pageSysName] as String;
329 string linkPrefix = "Default.aspx?ID=";
330
331 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
332 {
333 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
334 }
335
336 return sideId;
337 }
338
339 int GetPageSettingsPageId(string pageSysName)
340 {
341 int sideId = 0;
342
343 var pw = Dynamicweb.Frontend.PageView.Current();
344
345 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName))
346 {
347 return sideId;
348 }
349
350 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String;
351 string linkPrefix = "Default.aspx?ID=";
352
353 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
354 {
355 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
356 }
357
358 return sideId;
359 }
360 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname)
361 {
362 <select class="form-control d-block d-lg-none mb-10 @className" onchange="submitFilter()" name="@inputname">
363 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder." + name + "", "" + name + "")</option>
364
365 @for (var i = 0; i <= max; i += step)
366 {
367 var selected = string.Empty;
368 var current = string.Empty;
369 if (i == max)
370 {
371 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
372 {
373 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")' selected="selected">@Convert.ToInt32(i).ToString("N0")+</option>
374 }
375 else
376 {
377 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")+</option>
378 }
379 }
380 else
381 {
382 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
383 {
384 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")' selected="selected">@Convert.ToInt32(i).ToString("N0")</option>
385 }
386 else
387 {
388 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
389 }
390 }
391 }
392 </select>
393 }
394
395 void RenderTopFilter(string parameter)
396 {
397 if (parameter == "pricemin" || parameter == "pricemax")
398 {
399 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"]))
400 {
401 if (parameter == "pricemin")
402 {
403 @("<div class='search-terms' id='priceFilter'>")
404 @("Pris ") @Dynamicweb.Context.Current.Request[parameter]
405 }
406
407 else
408 {
409 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="pricemin,pricemax"></i>
410 @("</div>")
411 }
412 }
413 }
414
415 else if (parameter == "subsidymin" || parameter == "subsidymax")
416 {
417 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"]))
418 {
419 if (parameter == "subsidymin")
420 {
421 @("<div class='search-terms' id='subsidyFilter'>")
422 @("Årlig leje ") @Dynamicweb.Context.Current.Request[parameter]
423 }
424
425 else
426 {
427 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="subsidymin,subsidymax"></i>
428 @("</div>")
429 }
430 }
431 }
432 else if (parameter == "etagearealmin" || parameter == "etagearealmax")
433 {
434 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"]))
435 {
436 if (parameter == "etagearealmin")
437 {
438 @("<div class='search-terms' id='etagearealFilter'>")
439 @("Etageareal ") @Dynamicweb.Context.Current.Request[parameter]
440 }
441
442 else
443 {
444 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kvm.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="etagearealmin,etagearealmax"></i>
445 @("</div>")
446 }
447 }
448 }
449
450 else if (parameter == "grundarealmin" || parameter == "grundarealmax")
451 {
452 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"]))
453 {
454 if (parameter == "grundarealmin")
455 {
456 @("<div class='search-terms' id='grundarealFilter'>")
457 @("Grundareal ") @Dynamicweb.Context.Current.Request[parameter]
458 }
459
460 else
461 {
462 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kvm.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="grundarealmin,grundarealmax"></i>
463 @("</div>")
464 }
465 }
466 }
467
468 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax")
469 {
470 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"]))
471 {
472 if (parameter == "subsidykvmmin")
473 {
474 @("<div class='search-terms' id='subsidykvmFilter'>")
475 @("Årlig leje kvm ") @Dynamicweb.Context.Current.Request[parameter]
476 }
477
478 else
479 {
480 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="subsidykvmmin,subsidykvmmax"></i>
481 @("</div>")
482 }
483 }
484 }
485
486 else if (parameter == "olinecategory")
487 {
488
489 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"]))
490 {
491 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
492 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" },
493 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"},
494 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" },
495 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" }
496 };
497
498
499 foreach (var er in erhverType)
500 {
501 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
502 {
503 <div class="search-terms" id="@parameter">
504 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i>
505 </div>
506 }
507 }
508 }
509 }
510 else if (parameter == "search")
511 {
512 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"]))
513 {
514 <div class="search-terms" id="@parameter">
515 @Dynamicweb.Context.Current.Request[parameter] <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter"></i>
516 </div>
517 }
518 }
519 else
520 {
521 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]))
522 {
523 Dictionary<string, string>
524 ubudsform = new Dictionary<string, string>
525 (){
526 {"salg", "Salg" }, { "leje","Leje" }
527 };
528
529 foreach (var er in ubudsform)
530 {
531 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
532 {
533 <div class="search-terms" id="@parameter">
534 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i>
535 </div>
536 }
537 }
538
539
540 }
541 }
542 }
543
544 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString)
545 {
546 var selected = "";
547 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue)
548 {
549 selected = "selected";
550 }
551
552 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected);
553
554 @current
555 }
556
557 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "")
558 {
559 <div class="main-search-form frontpage @cssClasses">
560 <div class="dropdown-overlay"></div>
561 <div class="row mb-3 align-items-center">
562 <div class="col-xs-12 col-md-3 border-right">
563 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
564 </div>
565 <div class="col-xs-12 col-md-9 home-count d-none d-md-block">
566 <span class="search-count" id="searchCounter">0</span> <span>@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")</span>
567 </div>
568 </div>
569
570 <form id="main-search-frontpage" class="searchbar-wrapper" action="/Default.aspx" method="GET">
571 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId-frontpage" disabled="disabled" />
572 <div class="row form-wrapper no-gutters">
573
574 <div class="col-xs-12 col-md-5 col-searchbar">
575 <div class="searchbar">
576 <input type="text" name="@querySearchNameAttr" id="searchfield-frontpage" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch)" />
577 <input type="hidden" id="zipcodefrom-frontpage" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" />
578 <input type="hidden" id="zipcodeto-frontpage" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" />
579 </div>
580 </div>
581 <div class="col-xs-12 col-md-5">
582 <div class="row no-gutters">
583 <div class="col-xs-12 col-md-6 input-col">
584 <div class="dropdown w-overlay">
585 <button class="btn btn-dropdown dropdown-toggle reverse position-absolute-md" type="button" id="Boligtype-frontpage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
586 @Translate("Smartpage:Search.Boligtype", "Boligtype")
587 </button>
588 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
589 <ul class="bolig-dropdown list-unstyled">
590 @{
591 RenderBoligtypeCheckboxesDropdown();
592 }
593 </ul>
594 <span class="border-fat"></span>
595 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
596 </div>
597
598 </div>
599
600 </div>
601 <div class="col-xs-12 col-md-6 input-col">
602 <div class="dropdown w-overlay">
603 <button class="btn btn-dropdown dropdown-toggle reverse position-absolute-md" type="button" id="Pris-frontpage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
604 @Translate("Smartpage:Search.Pris", "Pris")
605 </button>
606 <div class="dropdown-menu box-shadow dropdown-price" aria-labelledby="Pris">
607 <input type="text" class="form-control mb-10 js-auto-thousand js-pricemin-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MinPris","Min. pris")' />
608 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
609 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
610 @for (var i = 0; i <= 10000000; i += 100000)
611 {
612 if (i == 10000000)
613 {
614 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
615 }
616 else
617 {
618 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
619 }
620 }
621 </select>
622 <input type="hidden" id="pricemin-frontpage" name="pricemin" />
623
624 <input type="text" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris")' />
625 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
626 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
627 @for (var i = 0; i <= 10000000; i += 100000)
628 {
629 if (i == 10000000)
630 {
631 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
632 }
633 else
634 {
635 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
636 }
637 }
638 </select>
639 <input type="hidden" id="pricemax-frontpage" name="pricemax" />
640 <button class="btn btn-primary js-close-dropdown mt-3">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
641 </div>
642 </div>
643 </div>
644 </div>
645 </div>
646 <div class="col-xs-12 col-md-2 d-none d-md-block">
647 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
648 </div>
649 </div>
650
651 <div class="row moresearch-btn no-gutters">
652 <div class="col-sm-12">
653 <div class="row align-items-center no-gutters">
654 <div class="col-12 col-md-4">
655 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch" aria-expanded="false" aria-controls="moreSearch">
656 <span class="moreSearch-text"><i class="fas fa-plus open-close"></i> <span class="not-open">@Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")</span> <span class="open"><span class="js-filter-count">0</span> @Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt") </span></span>
657 </button>
658 </div>
659 <div class="col-6 col-md-2 mb-xs-4">
660 <a class="js-reset reset-btn">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
661 </div>
662 </div>
663
664 <div class="collapse" id="moreSearch">
665 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
666 <div class="row align-items-end mb-30">
667 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
668 <div class="filter-container row">
669 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
670 <div class="col-6 pr-sm-0 pr-2">
671 <input type="text" name="boligarealmin" id="boligarealmin-frontpage" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2","Min. m2")' />
672 <select class="form-control js-boligarealmin-frontpage-select js-count">
673 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
674 @for (var i = 0; i <= 300; i += 10)
675 {
676 if (i == 300)
677 {
678 <option value="@i">@i+</option>
679 }
680 else
681 {
682 <option value="@i">@i</option>
683 }
684 }
685 </select>
686 </div>
687 <div class="col-6 pl-sm-0 pl-2">
688 <input type="text" name="boligarealmax" id="boligarealmax-frontpage" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2")' />
689 <select class="form-control js-boligarealmax-frontpage-select js-count">
690 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
691 @for (var i = 0; i <= 300; i += 10)
692 {
693 if (i == 300)
694 {
695 <option value="@i">@i+</option>
696 }
697 else
698 {
699 <option value="@i">@i</option>
700 }
701 }
702 </select>
703 </div>
704 </div>
705 </div>
706 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
707 <div class="filter-container row">
708 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
709 <div class="col-6 pr-sm-0 pr-2">
710 <input type="text" name="grundarealmin" id="grundarealmin-frontpage" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2","Min. m2")' />
711 <select class="form-control js-grundarealmin-frontpage-select js-count">
712 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
713 @for (var i = 0; i <= 10000; i += 100)
714 {
715 if (i == 10000)
716 {
717 <option value="@i">@i+</option>
718 }
719 else
720 {
721 <option value="@i">@i</option>
722 }
723 }
724 </select>
725 </div>
726 <div class="col-6 pl-sm-0 pl-2">
727 <input type="text" name="grundarealmax" id="grundarealmax-frontpage" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2")' />
728 <select class="form-control js-grundarealmax-frontpage-select js-count">
729 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
730 @for (var i = 0; i <= 10000; i += 100)
731 {
732 if (i == 10000)
733 {
734 <option value="@i">@i+</option>
735 }
736 else
737 {
738 <option value="@i">@i</option>
739 }
740 }
741 </select>
742 </div>
743 </div>
744 </div>
745 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
746 <div class="filter-container row">
747 <label class="d-block col-12">Antal rum</label>
748
749 <div class="col-6 pr-sm-0 pr-2">
750 <select name="roomsmin" id="roomsmin-frontpage" class="form-control reverse js-count">
751 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
752 <option value="1">1</option>
753 <option value="2">2</option>
754 <option value="3">3</option>
755 <option value="4">4</option>
756 <option value="5+">5+</option>
757 </select>
758 </div>
759 <div class="col-6 pl-sm-0 pl-2">
760 <select name="roomsmax" id="roomsmax-frontpage" class="form-control reverse js-count">
761 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
762 <option value="1">1</option>
763 <option value="2">2</option>
764 <option value="3">3</option>
765 <option value="4">4</option>
766 <option value="5+">@Translate("Smartpage:Rooms.5", "5")</option>
767 </select>
768 </div>
769 </div>
770 </div>
771 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
772 <div class="row">
773 <div class="col-12">
774 <div class="filter-container">
775 <label class="d-block">Energimærke</label>
776 <select name="energylabel" id="energylabel-frontpage" class="form-control reverse js-count">
777 <option disabled selected="selected">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
778 <option value="01">G</option>
779 <option value="02">F</option>
780 <option value="03">E</option>
781 <option value="04">D</option>
782 <option value="05">C</option>
783 <option value="06">B</option>
784 <option value="07">A</option>
785 <option value="08">A2010</option>
786 <option value="09">A2015</option>
787 <option value="10">A2020+</option>
788 </select>
789 </div>
790 </div>
791 </div>
792 </div>
793 <div class="col-12 col-sm-6 col-lg-3 mt-3">
794 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
795 <div class="filter-container row">
796 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
797 <div class="col-6 pr-sm-0 pr-2">
798 <input type="text" name="subsidymin" id="subsidymin-frontpage" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK")' />
799 <select class="form-control js-subsidymin-frontpage-select js-count">
800 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
801 @for (var i = 0; i <= 25000; i += 1250)
802 {
803 if (i == 25000)
804 {
805 <option>@Convert.ToInt32(i).ToString("N0")+</option>
806 }
807 else
808 {
809 <option>@Convert.ToInt32(i).ToString("N0")</option>
810 }
811 }
812 </select>
813 </div>
814 <div class="col-6 pl-sm-0 pl-2">
815 <input type="text" name="subsidymax" id="subsidymax-frontpage" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK")' />
816 <select class="form-control js-subsidymax-frontpage-select js-count">
817 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
818 @for (var i = 0; i <= 25000; i += 1250)
819 {
820 if (i == 25000)
821 {
822 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
823 }
824 else
825 {
826 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
827 }
828 }
829 </select>
830 </div>
831 </div>
832 </div>
833 <div class="col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0">
834 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
835 </div>
836 </div>
837 </div>
838 </div>
839 </div>
840
841 <div class="row d-block d-md-none form-wrapper no-gutters">
842 <div class="col-xs-12 col-md-2">
843 <button type="submit" class="btn btn-block btn-search btn-mobile-search">@Translate("Smartpage:Search.SøgBolig", "Søg Bolig")<i class="fa fa-search cta-icon"></i></button>
844 </div>
845 </div>
846 </form>
847 <div class="front-page-actions d-md-none">
848 <div>
849 <button class="btn btn-block btn-search btn-mobile-search js-search-mobile">@Translate("Smartpage:Search.SøgBolig", "Søg Bolig")<i class="fa fa-search cta-icon"></i></button>
850 </div>
851 <div>
852 @{
853 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : "";
854 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER");
855 <form method="GET" action="/Default.aspx">
856 <input name="id" value="@brokerSearchId" type="hidden" />
857 <div class="icon-wrapper-wclick">
858 <i class="fas fa-search ta-submit-on-icon-click"></i>
859 <input class="box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter" name="q" type="text" placeholder="@ctaText" onfocus="this.placeholder = ''" onblur="this.placeholder='@ctaText'" />
860 </div>
861 </form>
862 }
863 </div>
864 <div>
865 <a href="javascript:panelSalgsvurdering('Hovedmenu')" class="btn btn-orange btn-block">@Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING")<i class="cta-icon fa fa-angle-right"></i></a>
866 </div>
867 </div>
868 </div>
869
870 }
871 Custom.Integration.Brokers.Models.BrokerEmployee GetBrokerFromCurrentProduct()
872 {
873 string productId = Dynamicweb.Context.Current.Request["ProductId"];
874
875 if (string.IsNullOrWhiteSpace(productId))
876 {
877 return null;
878 }
879
880 var propertyProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(productId, string.Empty, true);
881 if (propertyProduct == null)
882 {
883 return null;
884 }
885
886 string employee = Dynamicweb.Core.Converter.ToString(
887 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xAktoererMaeglerKontaktEmail")
888 );
889 string storeId = Dynamicweb.Core.Converter.ToString(
890 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xButikID")
891 );
892
893 if (string.IsNullOrWhiteSpace(employee) || string.IsNullOrWhiteSpace(storeId))
894 {
895 return null;
896 }
897
898 return Custom.Integration.Brokers.Search.GetEmployee(storeId, employee);
899 }
900
901 string GetAgentTitleFromCurrentProduct()
902 {
903 var propBroker = GetBrokerFromCurrentProduct();
904
905 if (propBroker?.Broker == null)
906 {
907 return string.Empty;
908 }
909
910 if (!string.IsNullOrEmpty(propBroker.Broker.CompanyName))
911 {
912 return propBroker.Broker.CompanyName;
913 }
914
915 return propBroker.Broker.Name ?? string.Empty;
916 }
917
918 string GetMasterBrokerUrlFromCurrentProduct()
919 {
920 var propBroker = GetBrokerFromCurrentProduct();
921
922 var itemId = propBroker?.Broker?.ItemId;
923 var itemType = propBroker?.Broker?.ItemType;
924
925 if (string.IsNullOrWhiteSpace(itemId) || string.IsNullOrWhiteSpace(itemType))
926 {
927 return string.Empty;
928 }
929 var brokerItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(itemType, itemId);
930
931 if (brokerItem == null)
932 {
933 return string.Empty;
934 }
935
936 var websiteId = Dynamicweb.Core.Converter.ToInt32(brokerItem["WebsiteId"]);
937 var page = Dynamicweb.Content.Services.Pages.GetFirstPageForArea(websiteId);
938 return Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?Id=" + page?.ID);
939 }
940
941 // === Video link helpers (used by the property page) ===
942
943 // True when the link points directly at a video file we can play in a <video> element. Everything else is iframed.
944 bool IsDirectVideoFile(string url)
945 {
946 if (string.IsNullOrWhiteSpace(url)) { return false; }
947
948 // Strip query/fragment before checking the file extension.
949 string path = url.Split('?', '#')[0];
950 string[] directExtensions = { ".mp4", ".webm", ".ogg", ".ogv", ".mov", ".m4v" };
951 foreach (var ext in directExtensions)
952 {
953 if (path.EndsWith(ext, StringComparison.InvariantCultureIgnoreCase)) { return true; }
954 }
955 return false;
956 }
957
958 string GetYouTubeId(string url)
959 {
960 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; }
961
962 string[] patterns = { @"youtu\.be/([^?&/]+)", @"[?&]v=([^?&]+)", @"/embed/([^?&/]+)", @"/shorts/([^?&/]+)" };
963 foreach (var pattern in patterns)
964 {
965 var match = System.Text.RegularExpressions.Regex.Match(url, pattern);
966 if (match.Success) { return match.Groups[1].Value; }
967 }
968
969 return string.Empty;
970 }
971
972 string GetVimeoId(string url)
973 {
974 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; }
975 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?(\d+)");
976 return match.Success ? match.Groups[1].Value : string.Empty;
977 }
978
979 string GetVimeoHash(string url)
980 {
981 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; }
982 // Unlisted videos carry a privacy hash: vimeo.com/{id}/{hash}
983 var match = System.Text.RegularExpressions.Regex.Match(url, @"vimeo\.com/(?:.*?/)?\d+/(\w+)");
984 return match.Success ? match.Groups[1].Value : string.Empty;
985 }
986
987 // Builds the iframe src for a non-file link. YouTube/Vimeo share links are rewritten to their embeddable form
988 // (their pages block framing); every other link (Matterport, CR3, already-embeddable pages) is used as-is.
989 string BuildEmbedUrl(string url, bool background)
990 {
991 if (string.IsNullOrWhiteSpace(url)) { return string.Empty; }
992
993 if (url.Contains("youtube", StringComparison.InvariantCultureIgnoreCase) || url.Contains("youtu.be", StringComparison.InvariantCultureIgnoreCase))
994 {
995 string id = GetYouTubeId(url);
996 if (!string.IsNullOrEmpty(id))
997 {
998 string baseUrl = "https://www.youtube-nocookie.com/embed/" + id;
999 return background
1000 ? baseUrl + "?autoplay=1&mute=1&loop=1&playlist=" + id + "&controls=0&playsinline=1&rel=0"
1001 : baseUrl + "?rel=0";
1002 }
1003 }
1004 else if (url.Contains("vimeo", StringComparison.InvariantCultureIgnoreCase))
1005 {
1006 string id = GetVimeoId(url);
1007 if (!string.IsNullOrEmpty(id))
1008 {
1009 string baseUrl = "https://player.vimeo.com/video/" + id;
1010 var queryParams = new List<string>();
1011 string hash = GetVimeoHash(url);
1012 if (!string.IsNullOrEmpty(hash)) { queryParams.Add("h=" + hash); }
1013 if (background) { queryParams.Add("background=1"); }
1014 return queryParams.Count > 0 ? baseUrl + "?" + string.Join("&", queryParams) : baseUrl;
1015 }
1016 }
1017
1018 // Matterport, CR3 and any already-embeddable link frame as-is.
1019 return url;
1020 }
1021 }
1022
1023 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel>
1024 @using Dynamicweb.Frontend.Navigation
1025 @using Dynamicweb.Core
1026 @using Dynamicweb.Core.Encoders
1027 @using Dynamicweb
1028
1029 @functions {
1030 void RenderSlideMenu(bool erhverv, string maeglersoegning)
1031 {
1032 <div id="menu"
1033 class="main-menu-slide "
1034 role="navigation"
1035 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.MainMenu", "Hovedmenu"))"
1036 aria-modal="true">
1037 <div class="container">
1038 <div class="row">
1039 <div class="col-12">
1040 <span class="menu-headline">MENU</span>
1041 </div>
1042 <div class="menu-slide"
1043 role="button"
1044 tabindex="0"
1045 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.CloseMenu", "Luk menu"))">
1046 <b aria-hidden="true"></b>
1047 </div>
1048 <div class="col-12 main-slidemenu" role="region" aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.NavigationLinks", "Navigationslinks"))">
1049 @{
1050 var navigationSettings = new NavigationSettings();
1051 navigationSettings.StartLevel = 1;
1052 navigationSettings.StopLevel = 2;
1053 navigationSettings.ExpandMode = ExpandMode.All;
1054 navigationSettings.RootAreaId = Pageview.Area.ID;
1055
1056 @Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings)
1057 }
1058 </div>
1059 <div class="col-12 bottom-btns">
1060
1061 @{
1062 string[] maeglerid;
1063 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0";
1064
1065 if (erhverv)
1066 {
1067 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None);
1068 }
1069 else
1070 {
1071 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None);
1072 }
1073
1074 <form method="GET" action="/Default.aspx" role="search">
1075 <input name="id" value="@maeglerid[1]" type="hidden" />
1076 <div class="icon-wrapper-wclick">
1077 <label for="broker-search-menu-vm" class="sr-only">@Translate("Custom:Accessibility.FindBroker", "Find mægler")</label>
1078 <i class="fas fa-search ta-submit-on-icon-click"
1079 aria-hidden="true"
1080 role="button"
1081 tabindex="0"
1082 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.SearchBroker", "Søg efter mægler"))"></i>
1083 <input id="broker-search-menu-vm"
1084 class="box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"
1085 name="q"
1086 type="text"
1087 placeholder="@HtmlEncoder.HtmlAttributeEncode(Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER"))"
1088 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.BrokerSearchField", "Indtast postnummer eller navn for at finde mægler"))"
1089 onfocus="this.placeholder = 'FIND MÆGLER'" />
1090 </div>
1091 </form>
1092 }
1093 <br />
1094 @{
1095 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + "";
1096 }
1097 <a href="javascript:panelSalgsvurdering('@dpmaegler','@Pageview.AreaID');"
1098 class="btn btn-block btn-default-invert js-close-menu"
1099 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.FreeSalesAssessment", "Få gratis salgsvurdering"))">Gratis salgsvurdering <i class="cta-icon fa fa-angle-right" aria-hidden="true"></i></a>
1100 </div>
1101 </div>
1102 </div>
1103 </div>
1104 }
1105 }
1106 @using System.Text.RegularExpressions
1107 @using System.Collections.Generic
1108 @using System.Reflection
1109 @using Dynamicweb.Rapido.Blocks.Components
1110 @using Dynamicweb.Rapido.Blocks.Components.Articles
1111 @using Dynamicweb.Rapido.Blocks.Components.Documentation
1112 @using Dynamicweb.Rapido.Blocks
1113 @using Dynamicweb;
1114
1115 @functions {
1116 void RenderBlockList(List<Block> blocks)
1117 {
1118 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
1119 blocks = blocks.OrderBy(item => item.SortId).ToList();
1120
1121 foreach (Block item in blocks)
1122 {
1123 if (debug) {
1124 <!-- Block START: @item.Id -->
1125 }
1126
1127 if (item.Design == null)
1128 {
1129 RenderBlock(item);
1130 }
1131 else if (item.Design.RenderType == RenderType.None) {
1132 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
1133
1134 <div class="@cssClass dw-mod">
1135 RenderBlock(item);
1136 </div>
1137 }
1138 else if (item.Design.RenderType != RenderType.Hide)
1139 {
1140 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
1141
1142 if (!item.SkipRenderBlocksList) {
1143 if (item.Design.RenderType == RenderType.Row)
1144 {
1145 <div class="grid grid--align-content-start @cssClass dw-mod" id="Block__@item.Id">
1146 RenderBlock(item);
1147 </div>
1148 }
1149
1150 if (item.Design.RenderType == RenderType.Column)
1151 {
1152 string hidePadding = item.Design.HidePadding ? "u-no-padding" : "";
1153 string size = item.Design.Size ?? "12";
1154 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size;
1155
1156 <div class="grid__col-lg-@item.Design.Size grid__col-md-@item.Design.Size grid__col-sm-12 grid__col-xs-12 @hidePadding @cssClass dw-mod" id="Block__@item.Id">
1157 RenderBlock(item);
1158 </div>
1159 }
1160
1161 if (item.Design.RenderType == RenderType.Table)
1162 {
1163 <table class="table @cssClass dw-mod" id="Block__@item.Id">
1164 RenderBlock(item);
1165 </table>
1166 }
1167
1168 if (item.Design.RenderType == RenderType.TableRow)
1169 {
1170 <tr class="@cssClass dw-mod" id="Block__@item.Id">
1171 RenderBlock(item);
1172 </tr>
1173 }
1174
1175 if (item.Design.RenderType == RenderType.TableColumn)
1176 {
1177 <td class="@cssClass dw-mod" id="Block__@item.Id">
1178 RenderBlock(item);
1179 </td>
1180 }
1181
1182 if (item.Design.RenderType == RenderType.CardHeader)
1183 {
1184 <div class="card-header @cssClass dw-mod">
1185 RenderBlock(item);
1186 </div>
1187 }
1188
1189 if (item.Design.RenderType == RenderType.CardBody)
1190 {
1191 <div class="card @cssClass dw-mod">
1192 RenderBlock(item);
1193 </div>
1194 }
1195
1196 if (item.Design.RenderType == RenderType.CardFooter)
1197 {
1198 <div class="card-footer @cssClass dw-mod">
1199 RenderBlock(item);
1200 </div>
1201 }
1202 }
1203 else
1204 {
1205 RenderBlock(item);
1206 }
1207 }
1208
1209 if (debug) {
1210 <!-- Block END: @item.Id -->
1211 }
1212 }
1213 }
1214
1215 void RenderBlock(Block item)
1216 {
1217 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
1218
1219 if (item.Template != null)
1220 {
1221 @BlocksPage.RenderTemplate(item.Template)
1222 }
1223
1224 if (item.Component != null)
1225 {
1226 string customSufix = "Custom";
1227 string methodName = item.Component.HelperName;
1228
1229 ComponentBase[] methodParameters = new ComponentBase[1];
1230 methodParameters[0] = item.Component;
1231 Type methodType = this.GetType();
1232
1233 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix);
1234 MethodInfo generalMethod = methodType.GetMethod(methodName);
1235
1236 try {
1237 if (debug) {
1238 <!-- Component: @methodName.Replace("Render", "") -->
1239 }
1240 @customMethod.Invoke(this, methodParameters).ToString();
1241 } catch {
1242 try {
1243 @generalMethod.Invoke(this, methodParameters).ToString()
1244 ;
1245 } catch(Exception ex) {
1246 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex);
1247 }
1248 }
1249 }
1250
1251 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList)
1252 {
1253 RenderBlockList(item.BlocksList);
1254 }
1255 }
1256 }
1257
1258
1259
1260 @* Include the components *@
1261 @using Dynamicweb.Rapido.Blocks.Components
1262 @using Dynamicweb.Rapido.Blocks.Components.General
1263 @using Dynamicweb.Rapido.Blocks
1264 @using System.IO
1265
1266 @* Required *@
1267 @using Dynamicweb.Rapido.Blocks.Components
1268 @using Dynamicweb.Rapido.Blocks.Components.General
1269 @using Dynamicweb.Rapido.Blocks
1270
1271 @functions {
1272 void Render(ComponentBase component)
1273 {
1274 if (component != null)
1275 {
1276 @component.Render(this)
1277 }
1278 }
1279 }
1280
1281 @* Components *@
1282 @using System.Reflection
1283 @using Dynamicweb.Rapido.Blocks.Components.General
1284
1285 @* Component *@
1286
1287 @functions {
1288 void RenderIcon(Icon settings)
1289 {
1290 if (settings != null)
1291 {
1292 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
1293
1294 if (settings.Name != null)
1295 {
1296 if (string.IsNullOrEmpty(settings.Label))
1297 {
1298 <i class="@settings.Prefix @settings.Name @settings.CssClass" @color></i>
1299 }
1300 else
1301 {
1302 if (settings.LabelPosition == IconLabelPosition.Before)
1303 {
1304 <div class="u-flex u-flex--align-items-center @settings.CssClass">@settings.Label <i class="@settings.Prefix @settings.Name u-margin-left" @color></i></div>
1305 }
1306 else
1307 {
1308 <div class="u-flex u-flex--align-items-center @settings.CssClass"><i class="@settings.Prefix @settings.Name u-margin-right--lg u-w20px" @color></i>@settings.Label</div>
1309 }
1310 }
1311 }
1312 else if (!string.IsNullOrEmpty(settings.Label))
1313 {
1314 @settings.Label
1315 }
1316 }
1317 }
1318 }
1319
1320 @using System.Reflection
1321 @using Dynamicweb.Rapido.Blocks.Components.General
1322 @using Dynamicweb.Rapido.Blocks.Components
1323 @using Dynamicweb.Core
1324 @using System.Text.RegularExpressions
1325
1326 @* Component *@
1327
1328 @functions {
1329 void RenderButton(Button settings)
1330 {
1331 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
1332 {
1333 Dictionary<string, string> attributes = new Dictionary<string, string>();
1334 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
1335 if (settings.Disabled) {
1336 attributes.Add("disabled", "true");
1337 classList.Add("disabled");
1338 }
1339
1340 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle))
1341 {
1342 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
1343 RenderConfirmDialog(settings);
1344 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true";
1345 }
1346
1347 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
1348 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
1349 if (!string.IsNullOrEmpty(settings.AltText))
1350 {
1351 attributes.Add("title", settings.AltText);
1352 }
1353 else if (!string.IsNullOrEmpty(settings.Title))
1354 {
1355 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty);
1356 cleanTitle = cleanTitle.Replace(" ", " ");
1357 attributes.Add("title", cleanTitle);
1358 }
1359
1360 var onClickEvents = new List<string>();
1361 if (!string.IsNullOrEmpty(settings.OnClick))
1362 {
1363 onClickEvents.Add(settings.OnClick);
1364 }
1365 if (!string.IsNullOrEmpty(settings.Href))
1366 {
1367 if (settings.Href.Contains("javascript"))
1368 {
1369 settings.Href = settings.Href.Replace("http://", "");
1370 }
1371 onClickEvents.Add("location.href='" + settings.Href + "'");
1372 }
1373 if (onClickEvents.Count > 0)
1374 {
1375 attributes.Add("onClick", string.Join(";", onClickEvents));
1376 }
1377
1378 if (settings.ButtonLayout != ButtonLayout.None)
1379 {
1380 classList.Add("btn");
1381 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
1382 if (btnLayout == "linkclean")
1383 {
1384 btnLayout = "link-clean"; //fix
1385 }
1386 classList.Add("btn--" + btnLayout);
1387 }
1388
1389 if (settings.Icon == null)
1390 {
1391 settings.Icon = new Icon();
1392 }
1393
1394 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : "";
1395 settings.Icon.Label = settings.Title;
1396
1397 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower());
1398
1399 <button class="@string.Join(" ", classList) dw-mod" @ComponentMethods.AddAttributes(attributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)>@{RenderIcon(settings.Icon);}</button>
1400 }
1401 }
1402
1403 void RenderConfirmDialog(Button settings)
1404 {
1405 Modal confirmDialog = new Modal {
1406 Id = settings.Id,
1407 Width = ModalWidth.Sm,
1408 Heading = new Heading
1409 {
1410 Level = 2,
1411 Title = settings.ConfirmTitle
1412 },
1413 BodyText = settings.ConfirmText
1414 };
1415
1416 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"});
1417 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick });
1418
1419 RenderModal(confirmDialog);
1420 }
1421 }
1422 @using System.Reflection
1423 @using Dynamicweb.Rapido.Blocks.Components.General
1424 @using Dynamicweb.Rapido.Blocks.Components
1425 @using Dynamicweb.Core
1426
1427 @* Component *@
1428
1429 @functions{
1430 void RenderLink(Link settings)
1431 {
1432 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
1433 {
1434 Dictionary<string, string> attributes = new Dictionary<string, string>();
1435 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
1436 if (settings.Disabled)
1437 {
1438 attributes.Add("disabled", "true");
1439 classList.Add("disabled");
1440 }
1441
1442 if (!string.IsNullOrEmpty(settings.AltText))
1443 {
1444 attributes.Add("title", settings.AltText);
1445 }
1446 else if (!string.IsNullOrEmpty(settings.Title))
1447 {
1448 attributes.Add("title", settings.Title);
1449 }
1450
1451 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
1452 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
1453 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); }
1454 attributes.Add("href", settings.Href);
1455
1456 if (settings.ButtonLayout != ButtonLayout.None)
1457 {
1458 classList.Add("btn");
1459 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
1460 if (btnLayout == "linkclean")
1461 {
1462 btnLayout = "link-clean"; //fix
1463 }
1464 classList.Add("btn--" + btnLayout);
1465 }
1466
1467 if (settings.Icon == null)
1468 {
1469 settings.Icon = new Icon();
1470 }
1471 settings.Icon.Label = settings.Title;
1472
1473 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None)
1474 {
1475 settings.Rel = LinkRelType.Noopener;
1476 }
1477 if (settings.Target != LinkTargetType.None)
1478 {
1479 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower());
1480 }
1481 if (settings.Download)
1482 {
1483 attributes.Add("download", "true");
1484 }
1485 if (settings.Rel != LinkRelType.None)
1486 {
1487 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower());
1488 }
1489
1490 <a class="@string.Join(" ", classList) dw-mod" @ComponentMethods.AddAttributes(attributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)>Render(settings.Icon);</a>
1491 }
1492 }
1493 }
1494
1495 @using System.Reflection
1496 @using Dynamicweb.Rapido.Blocks.Components
1497 @using Dynamicweb.Rapido.Blocks.Components.General
1498 @using Dynamicweb.Rapido.Blocks
1499
1500 @* Component *@
1501
1502 @functions{
1503 void RenderRating(Rating settings)
1504 {
1505 if (settings.Score > 0)
1506 {
1507 int rating = settings.Score;
1508 string iconType = "fa-star";
1509
1510 switch (settings.Type.ToString()) {
1511 case "Stars":
1512 iconType = "fa-star";
1513 break;
1514 case "Hearts":
1515 iconType = "fa-heart";
1516 break;
1517 case "Lemons":
1518 iconType = "fa-lemon";
1519 break;
1520 case "Bombs":
1521 iconType = "fa-bomb";
1522 break;
1523 }
1524
1525 <div class="u-ta-right">
1526 @for (int i = 0; i < settings.OutOf; i++)
1527 {
1528 <i class="@(rating > i ? "fas" : "far") @iconType"></i>
1529 }
1530 </div>
1531 }
1532 }
1533 }
1534 @using System.Reflection
1535 @using Dynamicweb.Rapido.Blocks.Components.General
1536 @using Dynamicweb.Rapido.Blocks.Components
1537
1538
1539 @* Component *@
1540
1541 @functions{
1542 void RenderNavigation(Navigation settings) {
1543 RenderNavigation(new
1544 {
1545 id = settings.Id,
1546 cssclass = settings.CssClass,
1547 startLevel = settings.StartLevel,
1548 endlevel = settings.EndLevel,
1549 expandmode = settings.Expandmode,
1550 sitemapmode = settings.SitemapMode,
1551 template = settings.Template
1552 });
1553 }
1554 }
1555
1556 @using Dynamicweb.Rapido.Blocks.Components.General
1557 @using Dynamicweb.Rapido.Blocks.Components
1558
1559 @* Component *@
1560
1561 @functions {
1562 void RenderLeftNavigation(LeftNavigation settings) {
1563 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id;
1564 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template;
1565 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel;
1566 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel;
1567 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode;
1568
1569 <div class="grid__cell">
1570 RenderNavigation(settings);
1571 </div>
1572 }
1573 }
1574
1575 @using System.Reflection
1576 @using Dynamicweb.Rapido.Blocks.Components.General
1577 @using Dynamicweb.Core
1578
1579 @* Component *@
1580
1581 @functions {
1582 void RenderHeading(Heading settings)
1583 {
1584 if (settings != null && !string.IsNullOrEmpty(settings.Title))
1585 {
1586 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
1587 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div";
1588
1589 @("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">")
1590 if (!string.IsNullOrEmpty(settings.Link))
1591 {
1592 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None });
1593 }
1594 else
1595 {
1596 if (settings.Icon == null)
1597 {
1598 settings.Icon = new Icon();
1599 }
1600 settings.Icon.Label = settings.Title;
1601 RenderIcon(settings.Icon);
1602 }
1603 @("</" + tagName + ">");
1604 }
1605 }
1606 }
1607
1608 @using Dynamicweb.Rapido.Blocks.Components
1609 @using Dynamicweb.Rapido.Blocks.Components.General
1610 @using Dynamicweb.Rapido.Blocks
1611 @using Dynamicweb.Frontend
1612
1613 @* Component *@
1614
1615 @functions {
1616 void RenderImage(Image settings)
1617 {
1618 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None)
1619 {
1620 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
1621 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); }
1622
1623 if (settings.Caption != null)
1624 {
1625 @:<div>
1626 }
1627
1628 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower();
1629 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower();
1630
1631 <div class="image-filter image-filter--@primaryFilterClass u-position-relative dw-mod" @ComponentMethods.AddAttributes(optionalAttributes)>
1632 <div class="image-filter image-filter--@secondaryFilterClass dw-mod">
1633 @if (settings.Link != null)
1634 {
1635 <a href="@settings.Link">
1636 RenderTheImage(settings);
1637 </a>
1638 }
1639 else
1640 {
1641 RenderTheImage(settings);
1642 }
1643 </div>
1644 </div>
1645
1646 if (settings.Caption != null)
1647 {
1648 <span class="image-caption dw-mod">@settings.Caption</span>
1649 @:</div>
1650 }
1651 }
1652 else
1653 {
1654 if (settings.Caption != null)
1655 {
1656 @:<div>
1657 }
1658 if (!string.IsNullOrEmpty(settings.Link))
1659 {
1660 <a href="@settings.Link">
1661 RenderTheImage(settings);
1662 </a>
1663 }
1664 else
1665 {
1666 RenderTheImage(settings);
1667 }
1668
1669 if (settings.Caption != null)
1670 {
1671 <span class="image-caption dw-mod">@settings.Caption</span>
1672 @:</div>
1673 }
1674 }
1675 }
1676
1677 void RenderTheImage(Image settings)
1678 {
1679 if (settings != null)
1680 {
1681 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg";
1682 string placeholderImage = "/Files/Images/placeholder.gif";
1683 string imageEngine = "/Admin/Public/GetImage.ashx?";
1684
1685 string imageStyle = "";
1686
1687 switch (settings.Style)
1688 {
1689 case ImageStyle.Ball:
1690 imageStyle = "grid__cell-img--ball";
1691 break;
1692
1693 case ImageStyle.Triangle:
1694 imageStyle = "grid__cell-img--triangle";
1695 break;
1696 }
1697
1698 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle)
1699 {
1700 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop;
1701
1702 if (settings.ImageDefault != null)
1703 {
1704 settings.ImageDefault.Height = settings.ImageDefault.Width;
1705 }
1706 if (settings.ImageMedium != null)
1707 {
1708 settings.ImageMedium.Height = settings.ImageMedium.Width;
1709 }
1710 if (settings.ImageSmall != null)
1711 {
1712 settings.ImageSmall.Height = settings.ImageSmall.Width;
1713 }
1714 }
1715
1716 string defaultImage = imageEngine;
1717 string imageSmall = "";
1718 string imageMedium = "";
1719
1720 if (settings.DisableImageEngine)
1721 {
1722 defaultImage = settings.Path;
1723 }
1724 else
1725 {
1726 if (settings.ImageDefault != null)
1727 {
1728 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault);
1729
1730 if (settings.Path.GetType() != typeof(string))
1731 {
1732 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
1733 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
1734 }
1735 else
1736 {
1737 defaultImage += settings.Path != null ? "Image=" + settings.Path : "";
1738 }
1739
1740 defaultImage += "&AlternativeImage=" + alternativeImage;
1741 }
1742
1743 if (settings.ImageSmall != null)
1744 {
1745 imageSmall = "data-src-small=\"" + imageEngine;
1746 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall);
1747
1748 if (settings.Path.GetType() != typeof(string))
1749 {
1750 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
1751 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
1752 }
1753 else
1754 {
1755 imageSmall += settings.Path != null ? "Image=" + settings.Path : "";
1756 }
1757
1758 imageSmall += "&alternativeImage=" + alternativeImage;
1759
1760 imageSmall += "\"";
1761 }
1762
1763 if (settings.ImageMedium != null)
1764 {
1765 imageMedium = "data-src-medium=\"" + imageEngine;
1766 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium);
1767
1768 if (settings.Path.GetType() != typeof(string))
1769 {
1770 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
1771 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
1772 }
1773 else
1774 {
1775 imageMedium += settings.Path != null ? "Image=" + settings.Path : "";
1776 }
1777
1778 imageMedium += "&alternativeImage=" + alternativeImage;
1779
1780 imageMedium += "\"";
1781 }
1782 }
1783
1784 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
1785 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); }
1786 if (!string.IsNullOrEmpty(settings.Title))
1787 {
1788 optionalAttributes.Add("alt", settings.Title);
1789 optionalAttributes.Add("title", settings.Title);
1790 }
1791
1792 if (settings.DisableLazyLoad)
1793 {
1794 <img id="@settings.Id" class="@imageStyle @settings.CssClass dw-mod" src="@defaultImage" @ComponentMethods.AddAttributes(optionalAttributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes) />
1795 }
1796 else
1797 {
1798
1799 <img id="@settings.Id" class="@imageStyle @settings.CssClass dw-mod" loading="lazy" src="@defaultImage" @ComponentMethods.AddAttributes(optionalAttributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes) />
1800 }
1801 }
1802 }
1803 }
1804 @using System.Reflection
1805 @using Dynamicweb.Rapido.Blocks.Components.General
1806 @using Dynamicweb.Rapido.Blocks.Components
1807
1808 @* Component *@
1809
1810 @functions {
1811 void RenderHiddenField(HiddenField settings) {
1812 var attributes = new Dictionary<string, string>();
1813 attributes.Add("type", "hidden");
1814 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
1815 if (settings.Value != null) { attributes.Add("value", settings.Value); }
1816 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
1817
1818 <input @ComponentMethods.AddAttributes(attributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)/>
1819 }
1820 }
1821
1822 @using System.Reflection
1823 @using Dynamicweb.Rapido.Blocks.Components.General
1824 @using Dynamicweb.Rapido.Blocks.Components
1825
1826 @* Component *@
1827
1828 @functions {
1829 void RenderRadioButtonField(RadioButtonField settings)
1830 {
1831 var attributes = new Dictionary<string, string>();
1832 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id))
1833 {
1834 settings.Id = Guid.NewGuid().ToString("N");
1835 }
1836
1837 /*base settings*/
1838 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
1839 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); }
1840 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); }
1841 if (settings.Disabled) { attributes.Add("disabled", "true"); }
1842 if (settings.Required) { attributes.Add("required", "true"); }
1843 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
1844 /*end*/
1845
1846 attributes.Add("type", "radio");
1847 if (settings.Checked) { attributes.Add("checked", "true"); }
1848 settings.CssClass = "form__control " + settings.CssClass;
1849 if (settings.Value != null) { attributes.Add("value", settings.Value); }
1850
1851 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value);
1852
1853 <div class="form__field-group @settings.WrapperCssClass dw-mod">
1854 <input @ComponentMethods.AddAttributes(resultAttributes) class="@settings.CssClass dw-mod" />
1855 @if (!string.IsNullOrEmpty(settings.Label))
1856 {
1857 <label for="@settings.Id" class="dw-mod">@settings.Label</label>
1858 }
1859 @if (!string.IsNullOrEmpty(settings.HelpText))
1860 {
1861 <small class="form__help-text">@settings.HelpText</small>
1862 }
1863 Render(new NotificationMessage { Message = settings.ErrorMessage });
1864 </div>
1865 }
1866 }
1867 @using System.Reflection
1868 @using Dynamicweb.Rapido.Blocks.Components.General
1869 @using Dynamicweb.Rapido.Blocks.Components
1870
1871 @* Component *@
1872
1873 @functions{
1874 void RenderRadioButtonListField(RadioButtonListField settings)
1875 {
1876 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; }
1877
1878 <div class="form__field-group @settings.WrapperCssClass u-margin-bottom dw-mod" @ComponentMethods.AddAttributes(settings.ExtraAttributes)>
1879 @if (!string.IsNullOrEmpty(settings.Label))
1880 {
1881 <label>@settings.Label</label>
1882 }
1883 @if (!string.IsNullOrEmpty(settings.HelpText))
1884 {
1885 <small class="form__help-text">@settings.HelpText</small>
1886 }
1887
1888 @foreach (var item in settings.Options)
1889 {
1890 if (settings.Required)
1891 {
1892 item.Required = true;
1893 }
1894 if (settings.Disabled)
1895 {
1896 item.Disabled = true;
1897 }
1898 if (!string.IsNullOrEmpty(settings.Name))
1899 {
1900 item.Name = settings.Name;
1901 }
1902 if (settings.Value != null && settings.Value == item.Value)
1903 {
1904 item.Checked = true;
1905 }
1906 if (!string.IsNullOrEmpty(settings.OnClick))
1907 {
1908 item.OnClick += settings.OnClick;
1909 }
1910 if (!string.IsNullOrEmpty(settings.OnChange))
1911 {
1912 item.OnChange += settings.OnChange;
1913 }
1914 if (!string.IsNullOrEmpty(settings.CssClass))
1915 {
1916 item.CssClass += settings.CssClass;
1917 }
1918 Render(item);
1919 }
1920
1921 Render(new NotificationMessage { Message = settings.ErrorMessage });
1922 </div>
1923 }
1924 }
1925 @using Dynamicweb.Rapido.Blocks.Components.General
1926 @using Dynamicweb.Rapido.Blocks.Components
1927
1928 @* Component *@
1929
1930 @functions {
1931 void RenderForm(Form settings) {
1932 if (settings != null)
1933 {
1934 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
1935 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); };
1936 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); };
1937 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); };
1938 var enctypes = new Dictionary<string, string>
1939 {
1940 { "multipart", "multipart/form-data" },
1941 { "text", "text/plain" },
1942 { "application", "application/x-www-form-urlencoded" }
1943 };
1944 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); };
1945 optionalAttributes.Add("method", settings.Method.ToString());
1946
1947 if (!string.IsNullOrEmpty(settings.FormStartMarkup))
1948 {
1949 @settings.FormStartMarkup
1950 }
1951 else
1952 {
1953 @:<form class="@settings.CssClass u-no-margin dw-mod" @ComponentMethods.AddAttributes(optionalAttributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)>
1954 }
1955
1956 foreach (var field in settings.GetFields())
1957 {
1958 Render(field);
1959 }
1960
1961 @:</form>
1962 }
1963 }
1964 }
1965
1966 @using System.Reflection
1967 @using Dynamicweb.Rapido.Blocks.Components.General
1968 @using Dynamicweb.Rapido.Blocks.Components
1969
1970 @* Component *@
1971
1972 @functions {
1973 void RenderText(Text settings)
1974 {
1975 @settings.Content
1976 }
1977 }
1978
1979 @using System.Reflection
1980 @using Dynamicweb.Rapido.Blocks.Components.General
1981 @using Dynamicweb.Rapido.Blocks.Components
1982
1983
1984 @* Component *@
1985
1986 @functions {
1987 void RenderContentModule(ContentModule settings) {
1988 if (!string.IsNullOrEmpty(settings.Content))
1989 {
1990 @settings.Content
1991 }
1992 }
1993 }
1994
1995 @using System.Reflection
1996 @using Dynamicweb.Rapido.Blocks.Components.General
1997 @using Dynamicweb.Rapido.Blocks.Components
1998
1999
2000 @* Component *@
2001
2002 @functions {
2003 void RenderModal(Modal settings) {
2004 if (settings != null)
2005 {
2006 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
2007
2008 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : "";
2009
2010 <input type="checkbox" id="@(modalId)ModalTrigger" class="modal-trigger" @onchange />
2011
2012 <div class="modal-container">
2013 @if (!settings.DisableDarkOverlay)
2014 {
2015 <label for="@(modalId)ModalTrigger" id="@(modalId)ModalOverlay" class="modal-overlay"></label>
2016 }
2017 <div class="modal modal--@settings.Width.ToString().ToLower() modal-height--@settings.Height.ToString().ToLower()" id="@(modalId)Modal">
2018 @if (settings.Heading != null)
2019 {
2020 if (!string.IsNullOrEmpty(settings.Heading.Title))
2021 {
2022 <div class="modal__header">
2023 RenderHeading(settings.Heading);
2024 </div>
2025 }
2026 }
2027 <div class="modal__body @(settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "")">
2028 @if (!string.IsNullOrEmpty(settings.BodyText))
2029 {
2030 @settings.BodyText
2031 }
2032 @if (settings.BodyTemplate != null)
2033 {
2034 @settings.BodyTemplate
2035 }
2036 @{
2037 var actions = settings.GetActions();
2038 }
2039 </div>
2040 @if (actions.Length > 0)
2041 {
2042 <div class="modal__footer">
2043 @foreach (var action in actions)
2044 {
2045 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") {
2046 action.CssClass += " u-no-margin";
2047 } else {
2048 action.CssClass += " u-full-width u-margin-bottom";
2049 }
2050
2051 Render(action);
2052 }
2053 </div>
2054 }
2055 <label class="modal__close-btn" for="@(modalId)ModalTrigger"></label>
2056 </div>
2057 </div>
2058 }
2059 }
2060 }
2061 @using Dynamicweb.Rapido.Blocks.Components.General
2062
2063 @* Component *@
2064
2065 @functions {
2066 void RenderMediaListItem(MediaListItem settings)
2067 {
2068 <div class="media-list-item @settings.CssClass dw-mod" @(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : "")>
2069 @if (!string.IsNullOrEmpty(settings.Label))
2070 {
2071 if (!string.IsNullOrEmpty(settings.Link))
2072 {
2073 Render(new Link
2074 {
2075 Href = settings.Link,
2076 CssClass = "media-list-item__sticker dw-mod",
2077 ButtonLayout = ButtonLayout.None,
2078 Title = settings.Label,
2079 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
2080 });
2081 }
2082 else if (!string.IsNullOrEmpty(settings.OnClick))
2083 {
2084 <span class="media-list-item__sticker dw-mod" onclick="@(settings.OnClick)">
2085 <span class="u-uppercase">@settings.Label</span>
2086 </span>
2087 }
2088 else
2089 {
2090 <span class="media-list-item__sticker media-list-item__sticker--no-link dw-mod">
2091 <span class="u-uppercase">@settings.Label</span>
2092 </span>
2093 }
2094 }
2095 <div class="media-list-item__wrap">
2096 <div class="media-list-item__info dw-mod">
2097 <div class="media-list-item__header dw-mod">
2098 @if (!string.IsNullOrEmpty(settings.Title))
2099 {
2100 if (!string.IsNullOrEmpty(settings.Link))
2101 {
2102 Render(new Link
2103 {
2104 Href = settings.Link,
2105 CssClass = "media-list-item__name dw-mod",
2106 ButtonLayout = ButtonLayout.None,
2107 Title = settings.Title,
2108 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
2109 });
2110 }
2111 else if (!string.IsNullOrEmpty(settings.OnClick))
2112 {
2113 <span class="media-list-item__name dw-mod" onclick="@(settings.OnClick)">@settings.Title</span>
2114 }
2115 else
2116 {
2117 <span class="media-list-item__name media-list-item__name--no-link dw-mod">@settings.Title</span>
2118 }
2119 }
2120
2121 @if (!string.IsNullOrEmpty(settings.Status))
2122 {
2123 <div class="media-list-item__state dw-mod">@settings.Status</div>
2124 }
2125 </div>
2126 @{
2127 settings.InfoTable.CssClass += " media-list-item__parameters-table";
2128 }
2129
2130 Render(settings.InfoTable);
2131 </div>
2132 <div class="media-list-item__actions dw-mod">
2133 <div class="media-list-item__actions-list dw-mod">
2134 @{
2135 var actions = settings.GetActions();
2136
2137 foreach (ButtonBase action in actions)
2138 {
2139 action.ButtonLayout = ButtonLayout.None;
2140 action.CssClass += " media-list-item__action link";
2141
2142 Render(action);
2143 }
2144 }
2145 </div>
2146
2147 @if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title))
2148 {
2149 settings.SelectButton.CssClass += " u-no-margin";
2150
2151 <div class="media-list-item__action-button">
2152 Render(settings.SelectButton);
2153 </div>
2154 }
2155 </div>
2156 </div>
2157 </div>
2158 }
2159 }
2160
2161
2162 @using Dynamicweb.Rapido.Blocks.Components.General
2163 @using Dynamicweb.Rapido.Blocks.Components
2164
2165 @functions {
2166 void RenderTable(Table settings)
2167 {
2168 Dictionary<string, string> attributes = new Dictionary<string, string>();
2169 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
2170
2171 var enumToClasses = new Dictionary<TableDesign, string>
2172 {
2173 { TableDesign.Clean, "table--clean" },
2174 { TableDesign.Bordered, "table--bordered" },
2175 { TableDesign.Striped, "table--striped" },
2176 { TableDesign.Hover, "table--hover" },
2177 { TableDesign.Compact, "table--compact" },
2178 { TableDesign.Condensed, "table--condensed" },
2179 { TableDesign.NoTopBorder, "table--no-top-border" }
2180 };
2181 string tableDesignClass = "";
2182 if (settings.Design != TableDesign.None)
2183 {
2184 tableDesignClass = enumToClasses[settings.Design];
2185 }
2186
2187 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); }
2188
2189 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
2190
2191 <table @ComponentMethods.AddAttributes(resultAttributes)>
2192 @if (settings.Header != null)
2193 {
2194 <thead>
2195 Render(settings.Header);
2196 </thead>
2197 }
2198 <tbody>
2199 @foreach (var row in settings.Rows)
2200 {
2201 Render(row);
2202 }
2203 </tbody>
2204 @if (settings.Footer != null)
2205 {
2206 <tfoot>
2207 Render(settings.Footer);
2208 </tfoot>
2209 }
2210 </table>
2211 }
2212 }
2213 @using Dynamicweb.Rapido.Blocks.Components.General
2214 @using Dynamicweb.Rapido.Blocks.Components
2215
2216 @functions {
2217 void RenderTableRow(TableRow settings)
2218 {
2219 Dictionary<string, string> attributes = new Dictionary<string, string>();
2220 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
2221
2222 var enumToClasses = new Dictionary<TableRowDesign, string>
2223 {
2224 { TableRowDesign.NoBorder, "table__row--no-border" },
2225 { TableRowDesign.Border, "table__row--border" },
2226 { TableRowDesign.TopBorder, "table__row--top-line" },
2227 { TableRowDesign.BottomBorder, "table__row--bottom-line" },
2228 { TableRowDesign.Solid, "table__row--solid" }
2229 };
2230
2231 string tableRowDesignClass = "";
2232 if (settings.Design != TableRowDesign.None)
2233 {
2234 tableRowDesignClass = enumToClasses[settings.Design];
2235 }
2236
2237 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); }
2238
2239 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
2240
2241 <tr @ComponentMethods.AddAttributes(resultAttributes)>
2242 @foreach (var cell in settings.Cells)
2243 {
2244 if (settings.IsHeaderRow)
2245 {
2246 cell.IsHeader = true;
2247 }
2248 Render(cell);
2249 }
2250 </tr>
2251 }
2252 }
2253 @using Dynamicweb.Rapido.Blocks.Components.General
2254 @using Dynamicweb.Rapido.Blocks.Components
2255 @using Dynamicweb.Core
2256
2257 @functions {
2258 void RenderTableCell(TableCell settings)
2259 {
2260 Dictionary<string, string> attributes = new Dictionary<string, string>();
2261 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
2262 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); }
2263 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); }
2264 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); }
2265
2266 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
2267
2268 string tagName = settings.IsHeader ? "th" : "td";
2269
2270 @("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">")
2271 @settings.Content
2272 @("</" + tagName + ">");
2273 }
2274 }
2275 @* <h1>ArticleComponents.cshtml</h1> *@
2276
2277 @{
2278 Context.Current.Response.AddHeader("access-control-allow-origin", "*");
2279
2280 string bodyClass = "";
2281 string template = "real";
2282 string TemplateUrl = "/Files/Templates/Designs/rm/";
2283 string MetaTitle = Model.Title;
2284 string MetaDescription = Model.Description;
2285 string MetaKeywords = Model.Keywords;
2286 string searchClass = "";
2287
2288 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css"));
2289 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}";
2290
2291 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg";
2292
2293 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2");
2294
2295 // Indstillinger
2296 var settings_Frontpage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : "";
2297 var settings_Boligside = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : "";
2298 var settings_Maeglersogning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : "";
2299 var settings_MinSide = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : "";
2300 var settings_Sibling_Site = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : "";
2301 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : "";
2302 var settings_Product_Group = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : "";
2303 var settings_Boligagent = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : "";
2304 var settings_Persondatapolitik = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : "";
2305
2306 // API
2307 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : "";
2308 var settings_BoligListFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : "";
2309 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : "";
2310 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : "";
2311 var settings_BoligCountFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : "";
2312 var settings_BoligMapFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : "";
2313 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"];
2314
2315 // Forside
2316 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : "";
2317 var settings_FrontpageVideo = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : "";
2318 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : "";
2319
2320 // Tracking
2321 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : "";
2322 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"])))
2323 {
2324 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]);
2325 }
2326 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : "";
2327 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : "";
2328 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : "";
2329 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]);
2330 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]);
2331 var settings_Google_Optimize_Id = Converter.ToString(SettingsItem["Google_Optimize_Id"]);
2332
2333 // Indstillinger for brugerfunktioner
2334 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : "";
2335 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : "";
2336 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : "";
2337 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : "";
2338
2339 int createUserParagraphId = 0;
2340 int loginParagraphId = 0;
2341 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId);
2342 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId);
2343
2344 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv.
2345 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv)
2346 int searchPageId = GetPageSettingsPageId("Boligside");
2347 if (searchPageId == 0)
2348 {
2349 searchPageId = GetWebsiteSettingsPageId("Boligside");
2350 }
2351
2352 int boligsideId = GetPageSettingsPageId("Boligside");
2353 if (boligsideId == 0)
2354 {
2355 boligsideId = GetWebsiteSettingsPageId("Boligside");
2356 }
2357
2358 string productGroupFilter = String.Empty;
2359 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null)
2360 {
2361 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString();
2362 }
2363
2364 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"]))
2365 {
2366 searchClass = "is-frontpage";
2367 }
2368
2369 bool isErhverv = false;
2370 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null)
2371 {
2372 var s = Pageview.Page.PropertyItem["Erhverv"].ToString();
2373 Boolean.TryParse(s, out isErhverv);
2374 }
2375
2376 bool isBrokerPage = false;
2377 if (!string.IsNullOrEmpty(Model.Area.Item.GetString("M_glerGruppeId")))
2378 {
2379 isBrokerPage = true;
2380 bodyClass = ""; // Get rid of transparent header on brokerPage
2381 }
2382
2383 string callTrackingId = Model.Item.GetString("CallTrackingId");
2384
2385 RealEstate.User.Model.BrokerEmployee MyBroker = null;
2386 try
2387 {
2388 var MyB = new RealEstate.User.MyBroker();
2389 MyBroker = MyB.GetMyBroker();
2390 }
2391 catch
2392 {
2393 // Ignore
2394 }
2395
2396 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : "");
2397 string querySearchNameAttr = "search";
2398
2399 // Overwrite search with zipcodeinterval if set
2400 if (Context.Current.Request.QueryString["zipcodeinterval"] != null)
2401 {
2402 querySearch = Context.Current.Request.QueryString["zipcodeinterval"];
2403 querySearchNameAttr = "zipcodeinterval";
2404 }
2405
2406 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : "");
2407 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : "");
2408
2409 Dynamicweb.Security.UserManagement.User user = null;
2410 int userID = 0;
2411 string userName = "";
2412 string userEmail = "";
2413 string userPhone = "";
2414 string userZip = "";
2415 string userAddress = "";
2416
2417 if (Dynamicweb.Security.UserManagement.UserContext.Current.IsLoggedOn)
2418 {
2419 user = Dynamicweb.Security.UserManagement.UserContext.Current.User;
2420 userName = user.Name;
2421 userEmail = user.Email;
2422 userPhone = user.Phone;
2423 userZip = user.Zip;
2424 userAddress = user.Address;
2425 userID = user.ID;
2426 }
2427
2428 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode");
2429 string forgotPwTemplate = "";
2430 string forgotPwSender = "";
2431 string markerColor = "";
2432 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png";
2433
2434 // Important - e-mail templates for forgotPw must be placed in "UserManagement/Login" folder
2435 forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml";
2436 forgotPwSender = "noreply@mailreal.dk";
2437 markerColor = "#213960";
2438
2439 var butikId = string.Empty;
2440 string bEmail = string.Empty;
2441 if (MyBroker != null && MyBroker.Broker != null)
2442 {
2443 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
2444 bEmail = MyBroker.Broker.Item().GetString("Email");
2445 }
2446
2447 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment"));
2448
2449 var termsMail = "info@realmaeglerne.dk";
2450 }
2451
2452 <!DOCTYPE html>
2453 <html>
2454 <head>
2455 <meta charset="utf-8">
2456 <title>@MetaTitle</title>
2457 <meta name="viewport" content="width=device-width, initial-scale=1.0">
2458 <meta name="description" content="@MetaDescription">
2459 <meta name="keywords" content="@MetaKeywords">
2460 <meta name="format-detection" content="telephone=no">
2461 <meta http-equiv="Expires" content="60">
2462 <meta name="robots" content="@(Pageview.Area.Noindex ? "noindex" : "index"),@(Pageview.Area.Nofollow ? "nofollow" : "follow")">
2463
2464 @*RICH SNIPPETS*@
2465
2466 @RenderSnippet("OpenGraphTags")
2467 @if (!string.IsNullOrEmpty(settings_Google_Optimize_Id))
2468 {
2469 <!-- Google optimize script-->
2470 <script src="https://www.googleoptimize.com/optimize.js?id=@settings_Google_Optimize_Id"></script>
2471 }
2472 <!-- TrustBox script -->
2473 <script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script>
2474 <!-- End TrustBox script -->
2475
2476 <script type="application/ld+json">
2477 {
2478 "@@context": "https://schema.org/",
2479 "@@type": "WebSite",
2480 "name": "RealMæglerne",
2481 "url": "https://www.realmaeglerne.dk/",
2482 "potentialAction": {
2483 "@@type": "SearchAction",
2484 "target": "https://www.realmaeglerne.dk/find-maegler?q={search_term_string}",
2485 "query-input": "required name=search_term_string"
2486 }
2487 }
2488 </script>
2489
2490 <script type="application/ld+json">
2491 {
2492 "@@context": "https://schema.org",
2493 "@@type": "Corporation",
2494 "name": "RealMæglerne",
2495 "alternateName": "R&B Mægler A/S",
2496 "url": "https://www.realmaeglerne.dk",
2497 "logo": "https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png",
2498 "contactPoint": {
2499 "@@type": "ContactPoint",
2500 "telephone": "+4570237153",
2501 "contactType": "sales",
2502 "areaServed": "DK",
2503 "availableLanguage": "Danish"
2504 },
2505 "sameAs": [
2506 "https://www.facebook.com/realmaeglerne/",
2507 "https://www.linkedin.com/company/realmæglerne/",
2508 "https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g",
2509 "https://www.realmaeglerne.dk/"
2510 ]
2511 }
2512 </script>
2513 @RenderSnippet("StructuredData")
2514 @*RICH SNIPPETS END*@
2515
2516 @*FONT AWESOME*@
2517 @{
2518 <link rel="stylesheet" href="@(TemplateUrl)assets/fontawesome/css/all.css" async />
2519 <link rel="stylesheet" href="@mainCSS" async />
2520
2521 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
2522 {
2523 var cssErhvervFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/erhverv.min.css"));
2524 string erhvervCSS = TemplateUrl + $"assets/dist/css/erhverv.min.css?{cssErhvervFileInfo.LastWriteTime.Ticks}";
2525 <link rel="stylesheet" href="@erhvervCSS" async>
2526 }
2527 }
2528
2529
2530 <link rel="icon" type="image/ico" href="@(TemplateUrl)assets/images/favicons/favicon-real.ico?v=1">
2531 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-16x16.png" sizes="16x16">
2532 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-32x32.png" sizes="32x32">
2533 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-96x96.png" sizes="96x96">
2534 <meta name="google-site-verification" content="hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg" />
2535
2536 @if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString()))
2537 {
2538 <script>
2539 window.dataLayer = window.dataLayer || []; // must be placed above GTM script
2540 </script>
2541 <!-- Google Tag Manager -->
2542 <script>
2543 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
2544 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
2545 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
2546 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
2547 })(window,document,'script','dataLayer','@settings_Google_Tag_Manager_ID');</script>
2548 <!-- End Google Tag Manager -->
2549 }
2550
2551 @if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId))
2552 {
2553 <script type="text/javascript" src="https://call.call-tracking.dk/getJavascript?custid=@callTrackingId"></script>
2554 }
2555
2556 @if (!String.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString()))
2557 {
2558 <!-- Begin Leadhub Pixel Code -->
2559 <script>
2560 (function(w,d,x,n,u,t,f,s,o){
2561 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){
2562 (w[f].q=w[f].q||[]).push([n,d])};w[f].l=1*new Date();s=d.createElement(x); s.async=1;s.src=u+'?t='+t;o=d.getElementsByTagName(x)[0];o.parentNode.insertBefore(s,o)
2563 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '@settings_Leadhub_Pixel_ID');
2564 lhi('pageview');
2565 </script>
2566 <!-- End Leadhub Pixel Code -->
2567 }
2568
2569 <script>
2570 // Global namespace used for fetching API feeds from DW
2571 var RMAPI = (RMAPI) ? RMAPI : {};
2572 var ApiPreFix = "/Default.aspx?ID=";
2573 RMAPI.BoligCountFeed = ApiPreFix + "@settings_BoligCountFeed";
2574 RMAPI.BoligListFeed = ApiPreFix + "@settings_BoligListFeed" + "&refpageid=@Pageview.Page.ID";
2575 RMAPI.BoligListFeedErhverv = "@settings_BoligListFeedErhverv";
2576 RMAPI.BoligListFeedMaegler = ApiPreFix + "@settings_BoligListFeedMaegler" + "&refpageid=@Pageview.Page.ID";
2577 RMAPI.BoligSearchFeed = ApiPreFix + "@settings_BoligSearchFeed";
2578 RMAPI.BoligMapFeed = ApiPreFix + "@settings_BoligMapFeed";
2579 RMAPI.Boligagent = "@settings_Boligagent";
2580 RMAPI.IsErhverv = @isErhverv.ToString().ToLower();
2581 RMAPI.ProductGroupFilter = "@productGroupFilter";
2582 RMAPI.ButikId = "@butikId";
2583 RMAPI.Boligvisning = false;
2584 RMAPI.RefPageId = "@Pageview.Page.ID";
2585 RMAPI.Template = "@template";
2586 RMAPI.SliderSettings = @JsonConvert.SerializeObject(Settings.Site);
2587 RMAPI.AdvisorSearchFeed = "@settings_AdvisorSearchFeed";
2588 RMAPI.LoadingIcon = "@loadingIcon";
2589 RMAPI.MarkerColor = "@markerColor";
2590 RMAPI.mapMarkerUrl = "@mapMarkerUrl";
2591 RMAPI.settings_ForgotPwPage = "@settings_ForgotPwPage";
2592 </script>
2593
2594 @if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString()))
2595 {
2596 <!-- Facebook Pixel Code -->
2597 <script>
2598 !function (f, b, e, v, n, t, s) {
2599 if (f.fbq) return; n = f.fbq = function () {
2600 n.callMethod ?
2601 n.callMethod.apply(n, arguments) : n.queue.push(arguments)
2602 };
2603 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';
2604 n.queue = []; t = b.createElement(e); t.async = !0;
2605 t.src = v; s = b.getElementsByTagName(e)[0];
2606 s.parentNode.insertBefore(t, s)
2607 }(window, document, 'script',
2608 'https://connect.facebook.net/en_US/fbevents.js');
2609 fbq('init', '@settings_Facebook_App_ID');
2610 fbq('track', 'PageView');
2611 </script>
2612 <noscript>
2613 <img height="1" width="1" src="https://www.facebook.com/tr?id=@settings_Facebook_App_ID&ev=PageView&noscript=1" />
2614 </noscript>
2615 <!-- End Facebook Pixel Code -->
2616 }
2617
2618 <script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=5d68cfaf5fea9f001288d9ac&product=inline-share-buttons' async='async'></script>
2619
2620 </head>
2621
2622 <body class="@template@bodyClass" data-spforgotpwtemplate="@forgotPwTemplate" data-spforgotpwsender="@forgotPwSender" data-spforgotpwsubject="@forgotPwSubject" data-spsalesassesmentid="@salesAssessmentPageId">
2623 @{
2624 string logoUrl = TemplateUrl + (!Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg");
2625 }
2626
2627 @if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) && GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
2628 {
2629 <div class="top-search">
2630 <div class="header logo">
2631 <div class="logo">
2632 <a href="/erhverv">
2633 <img src="@logoUrl" alt="RealMæglerne" />
2634 </a>
2635 </div>
2636 </div>
2637 <div class="top-form mx-auto">
2638 <form id="main-search-top" class="js-top-search" action="/Default.aspx" method="GET">
2639 @{
2640
2641 var settings_BoligListErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : "";
2642 }
2643 <input type="hidden" name="ID" value='@settings_BoligListErhverv' id="searchPageId-top" disabled="disabled" />
2644
2645 @if (Context.Current.Request["type"] == "egetforbrug")
2646 {
2647 <input name="type" type="hidden" value="egetforbrug" />
2648 <input name="investeringsejendom" type="hidden" value="0" />
2649 }
2650 <div class="row form-wrapper no-gutters">
2651 <div class="col-xs-12 col-md-4 col-lg-5 col-searchbar">
2652 <div class="searchbar float-label-container text-left">
2653 <label class="float-label js-float-label-trigger">@Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer")</label>
2654 <input type="text" name="@querySearchNameAttr" id="searchfield-top" class="search-input js-float-label js-getdata" tabindex="1" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch)" />
2655 </div>
2656 </div>
2657 <div class="col-xs-12 col-md-5">
2658 <div class="row no-gutters">
2659 <div class="col-xs-12 col-md-6 input-col">
2660 <div class="dropdown w-overlay float-label-container">
2661 <label class="float-label js-float-label-trigger" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">@Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype")</label>
2662 <button class="btn btn-dropdown dropdown-toggle reverse position-absolute-md" type="button" id="Boligtype-frontpage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
2663 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
2664 <ul class="bolig-dropdown list-unstyled">
2665 @{
2666 RenderBoligTypeErhverv();
2667 }
2668 </ul>
2669 <span class="border-fat"></span>
2670 <div class="d-none d-md-block">
2671 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
2672 </div>
2673 <div class="d-flex row d-md-none">
2674 <div class="col-6">
2675 <button class="btn btn-danger js-remove-filter">@Translate("Smartpage:Search.Annuller", "Annuller")</button>
2676 </div>
2677 <div class="col-6">
2678 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
2679 </div>
2680 </div>
2681 </div>
2682
2683 </div>
2684 </div>
2685 <div class="col-xs-12 col-md-6 input-col">
2686 <div class="btn-dropdown p-3 border-top-bottom-right">
2687 <ul class="two-column list-unstyled">
2688 <li>
2689 <label class="checkbox-container">
2690 @Translate("Smartpage:Search.Erhverv.Leje", "Leje")
2691 <input type="checkbox" name="propertytype" value="leje" class="js-input-check" />
2692 <span class="checkmark"></span>
2693 </label>
2694 </li>
2695 <li>
2696 <label class="checkbox-container">
2697 @Translate("Smartpage:Search.Erhverv.Køb", "Køb")
2698 <input type="checkbox" name="propertytype" value="kob" class="js-input-check" />
2699 <span class="checkmark"></span>
2700 </label>
2701 </li>
2702 </ul>
2703 </div>
2704
2705 </div>
2706 </div>
2707 </div>
2708 <div class="col-xs-12 col-md-3 col-lg-2 d-none d-md-block">
2709 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
2710 </div>
2711 </div>
2712 </form>
2713 </div>
2714 </div>
2715 }
2716
2717 @if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
2718 {
2719 <div class="header shortcuts">
2720 <div class="header-shortcuts float-right">
2721 @if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
2722 {
2723 <a href='' class="search-menu d-none d-xl-flex align-items-center float-left border-right js-mainsearch topsearch @searchClass">
2724 <i class="fa fa-search" aria-hidden="true"></i><span class="search-menu-text hidden d-md-block"> @Translate("Smartpage:Search.Søg", "Søg")</span>
2725 </a>
2726 }
2727 <div class="menu-slide d-flex align-items-center">
2728 <b></b>
2729 <span class="menu-text hidden d-md-block">Menu</span>
2730 </div>
2731 </div>
2732
2733
2734 </div>
2735 }
2736 else
2737 {
2738 <div class="header__container container">
2739 <div class="header__logo">
2740 <a href="/" title="">
2741 <img src="@(logoUrl)" alt="" />
2742 </a>
2743 </div>
2744 <div class="header__title">
2745 <span>@Translate("Custom:Header.Title", "RealMæglerne")</span>
2746 </div>
2747 @if (userID > 0)
2748 {
2749 <div class="header__navigation d-none d-md-flex">
2750 <div class="header__navigation">
2751 <div class="header__Link">
2752 <ul>
2753 <li class="d-flex align-items-center">
2754 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
2755 <path d="M16.6663 17.5C16.6663 16.337 16.6663 15.7555 16.5228 15.2824C16.1996 14.217 15.366 13.3834 14.3006 13.0602C13.8275 12.9167 13.246 12.9167 12.083 12.9167H7.91634C6.75337 12.9167 6.17189 12.9167 5.69872 13.0602C4.63339 13.3834 3.79971 14.217 3.47654 15.2824C3.33301 15.7555 3.33301 16.337 3.33301 17.5M13.7497 6.25C13.7497 8.32107 12.0707 10 9.99967 10C7.92861 10 6.24967 8.32107 6.24967 6.25C6.24967 4.17893 7.92861 2.5 9.99967 2.5C12.0707 2.5 13.7497 4.17893 13.7497 6.25Z" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
2756 </svg>
2757 <a class="ml-2"
2758 href="/Default.aspx?ID=@settings_MinSide"
2759 target="_blank"
2760 aria-label="@Translate("Custom:Accessibility.MyAccountLink", "Gå til Mit RealMæglerne - åbner i nyt vindue")">
2761 @Translate("Mit RealMæglerne")
2762 </a>
2763 </li>
2764 </ul>
2765 </div>
2766 </div>
2767 </div>
2768
2769 }
2770 else
2771 {
2772 <div class="header__navigation d-none d-md-flex">
2773 <div class="header__navigation">
2774 <div class="header__Link">
2775 <ul>
2776 <li class="d-flex align-items-center">
2777 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
2778 <path d="M16.6663 17.5C16.6663 16.337 16.6663 15.7555 16.5228 15.2824C16.1996 14.217 15.366 13.3834 14.3006 13.0602C13.8275 12.9167 13.246 12.9167 12.083 12.9167H7.91634C6.75337 12.9167 6.17189 12.9167 5.69872 13.0602C4.63339 13.3834 3.79971 14.217 3.47654 15.2824C3.33301 15.7555 3.33301 16.337 3.33301 17.5M13.7497 6.25C13.7497 8.32107 12.0707 10 9.99967 10C7.92861 10 6.24967 8.32107 6.24967 6.25C6.24967 4.17893 7.92861 2.5 9.99967 2.5C12.0707 2.5 13.7497 4.17893 13.7497 6.25Z" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
2779 </svg>
2780 <a class="ml-2"
2781 href="javascript:panelLogin()"
2782 aria-label="@Translate("Custom:Accessibility.Login", "Login - åbner i sidepanel")">
2783 @Translate("Login")
2784 </a>
2785 </li>
2786 </ul>
2787 </div>
2788 </div>
2789 </div>
2790 }
2791 <div class="header__search flex-column flex-md-row js-mainsearch">
2792 @Translate("Søg bolig")
2793 </div>
2794 <div class="header__navigation">
2795 <div class="header__navigation-icon menu-slide">
2796 <div class="d-none d-md-block">
2797 @Translate("Menu")
2798 </div>
2799 </div>
2800 </div>
2801 </div>
2802 }
2803
2804 <div class="search-modal">
2805
2806 @if (Converter.ToString(Pageview.Area.Item["Type"]) == "real")
2807 {
2808 <div class="main-search-form">
2809 <i class="fal fa-times float-right fa-2x js-close-search close-search"></i>
2810 <div class="row mb-3 align-items-center">
2811 <div class="col-xs-12 col-md-3 border-right">
2812 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
2813 </div>
2814 <div class="col-xs-12 col-md-9 home-count d-none d-md-block">
2815 <span class="search-count" id="searchCounterMain">0</span> <span class="position-relative">@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")<span class="loader js-loader"></span></span>
2816
2817 </div>
2818 </div>
2819
2820 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET">
2821 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" />
2822 <div class="row form-wrapper no-gutters">
2823
2824 <div class="col-xs-12 col-md-5 col-searchbar">
2825 <div class="searchbar">
2826 <input type="text" name="@querySearchNameAttr" id="searchfield" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch)" />
2827 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" />
2828 <input type="hidden" id="zipcodeto" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" />
2829 </div>
2830 </div>
2831 <div class="col-xs-12 col-md-5">
2832 <div class="row no-gutters">
2833 <div class="col-xs-12 col-md-6 input-col">
2834 <div class="dropdown">
2835 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2836 @Translate("Smartpage:Search.Boligtype", "Boligtype")
2837 </button>
2838 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
2839 <ul class="bolig-dropdown list-unstyled">
2840 @{
2841 RenderBoligtypeCheckboxesDropdown();
2842 }
2843 </ul>
2844 <span class="border-fat"></span>
2845 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
2846 </div>
2847
2848 </div>
2849
2850 </div>
2851 <div class="col-xs-12 col-md-6 input-col">
2852 <div class="dropdown">
2853 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2854 @Translate("Smartpage:Search.Pris", "Pris")
2855 </button>
2856 <div class="dropdown-menu box-shadow dropdown-price js-dropdown-price" aria-labelledby="Pris">
2857 <input name="pricemin" type="text" class="form-control mb-10 js-auto-thousand js-pricemin-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")' value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemin"]) ? Context.Current.Request.QueryString["pricemin"] : "")" />
2858 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
2859 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
2860 @for (var i = 0; i <= 10000000; i += 100000)
2861 {
2862 if (i == 10000000)
2863 {
2864 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
2865 }
2866 else
2867 {
2868 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
2869 }
2870 }
2871 </select>
2872
2873 <input type="text" name="pricemax" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")' value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemax"]) ? Context.Current.Request.QueryString["pricemax"] : "")" />
2874 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
2875 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
2876 @for (var i = 0; i <= 10000000; i += 100000)
2877 {
2878 if (i == 10000000)
2879 {
2880 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
2881 }
2882 else
2883 {
2884 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
2885 }
2886 }
2887 </select>
2888 </div>
2889 </div>
2890 </div>
2891 </div>
2892 </div>
2893 <div class="col-xs-12 col-md-2 d-none d-md-block">
2894 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
2895 </div>
2896 </div>
2897
2898 <div class="row moresearch-btn no-gutters">
2899 <div class="col-sm-12">
2900 <div class="row align-items-center no-gutters">
2901 <div class="col-12 col-md-4">
2902 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch">
2903 <span class="moreSearch-text"><i class="fas fa-plus open-close"></i> <span class="not-open white">@Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")</span> <span class="open white"><span class="js-filter-count">0</span> @Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt") </span></span>
2904 </button>
2905 </div>
2906 <div class="col-6 col-md-2 mb-xs-4">
2907 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
2908 </div>
2909 </div>
2910
2911 <div class="collapse" id="moreSearch-master">
2912
2913 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
2914 <div class="row align-items-end mb-30">
2915 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
2916 <div class="filter-container row">
2917 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
2918 <div class="col-6 pr-sm-0 pr-2">
2919 <input type="text" name="boligarealmin" id="boligarealmin" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmin"]) ? Context.Current.Request.QueryString["boligarealmin"] : "")" />
2920 <select class="form-control js-boligarealmin-frontpage-select js-count">
2921 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
2922 @for (var i = 0; i <= 300; i += 10)
2923 {
2924 if (i == 300)
2925 {
2926 <option>@i+</option>
2927 }
2928 else
2929 {
2930 <option>@i</option>
2931 }
2932 }
2933 </select>
2934
2935 </div>
2936 <div class="col-6 pl-sm-0 pl-2">
2937 <input type="text" name="boligarealmax" id="boligarealmax" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmax"]) ? Context.Current.Request.QueryString["boligarealmax"] : "")" />
2938 <select class="form-control js-boligarealmax-frontpage-select js-count">
2939 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
2940 @for (var i = 0; i <= 300; i += 10)
2941 {
2942 if (i == 300)
2943 {
2944 <option>@i+</option>
2945 }
2946 else
2947 {
2948 <option>@i</option>
2949 }
2950 }
2951 </select>
2952
2953 </div>
2954 </div>
2955 </div>
2956 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
2957 <div class="filter-container row">
2958 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
2959 <div class="col-6 pr-sm-0 pr-2">
2960 <input type="text" name="grundarealmin" id="grundarealmin" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmin"]) ? Context.Current.Request.QueryString["grundarealmin"] : "")" />
2961 <select class="form-control js-grundarealmin-frontpage-select js-count">
2962 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
2963 @for (var i = 0; i <= 10000; i += 100)
2964 {
2965 if (i == 10000)
2966 {
2967 <option>@i+</option>
2968 }
2969 else
2970 {
2971 <option>@i</option>
2972 }
2973 }
2974 </select>
2975 </div>
2976 <div class="col-6 pl-sm-0 pl-2">
2977 <input type="text" name="grundarealmax" id="grundarealmax" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmax"]) ? Context.Current.Request.QueryString["grundarealmax"] : "")" />
2978 <select class="form-control js-grundarealmax-frontpage-select js-count">
2979 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
2980 @for (var i = 0; i <= 10000; i += 100)
2981 {
2982 if (i == 10000)
2983 {
2984 <option>@i+</option>
2985 }
2986 else
2987 {
2988 <option>@i</option>
2989 }
2990 }
2991 </select>
2992 </div>
2993 </div>
2994 </div>
2995 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
2996 <div class="filter-container row">
2997 <label class="d-block col-12">Antal rum</label>
2998 <div class="col-6 pr-sm-0 pr-2">
2999 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count">
3000 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
3001 @{
3002 RenderSelectValue("1", "1", "roomsmin");
3003 RenderSelectValue("2", "2", "roomsmin");
3004 RenderSelectValue("3", "3", "roomsmin");
3005 RenderSelectValue("4", "4", "roomsmin");
3006 RenderSelectValue("5+", "5", "roomsmin");
3007 }
3008 </select>
3009 </div>
3010 <div class="col-6 pl-sm-0 pl-2">
3011 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count">
3012 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
3013 @{
3014 RenderSelectValue("1", "1", "roomsmax");
3015 RenderSelectValue("2", "2", "roomsmax");
3016 RenderSelectValue("3", "3", "roomsmax");
3017 RenderSelectValue("4", "4", "roomsmax");
3018 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax");
3019 }
3020 </select>
3021 </div>
3022 </div>
3023 </div>
3024 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
3025 <div class="row">
3026 <div class="col-12 pr-2">
3027 <div class="filter-container">
3028 <label class="d-block">Energimærke</label>
3029 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count">
3030 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
3031 <option value="01">G</option>
3032 <option value="02">F</option>
3033 <option value="03">E</option>
3034 <option value="04">D</option>
3035 <option value="05">C</option>
3036 <option value="06">B</option>
3037 <option value="07">A</option>
3038 <option value="08">A2010</option>
3039 <option value="09">A2015</option>
3040 <option value="10">A2020+</option>
3041 </select>
3042 </div>
3043 </div>
3044 </div>
3045 </div>
3046 <div class="col-12 col-sm-6 col-lg-3 mt-3">
3047 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
3048 <div class="filter-container row">
3049 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
3050 <div class="col-6 pr-sm-0 pr-2">
3051 <input type="text" name="subsidymin" id="subsidymin" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")' value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymin"]) ? Context.Current.Request.QueryString["subsidymin"] : "")" />
3052 <select class="form-control js-subsidymin-frontpage-select js-count">
3053 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
3054 @for (var i = 0; i <= 25000; i += 1250)
3055 {
3056 if (i == 25000)
3057 {
3058 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3059 }
3060 else
3061 {
3062 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3063 }
3064 }
3065 </select>
3066 </div>
3067 <div class="col-6 pl-sm-0 pl-2">
3068 <input type="text" name="subsidymax" id="subsidymax" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")' value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(!string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymax"]) ? Context.Current.Request.QueryString["subsidymax"] : "")" />
3069 <select class="form-control js-subsidymax-frontpage-select js-count">
3070 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
3071 @for (var i = 0; i <= 25000; i += 1250)
3072 {
3073 if (i == 25000)
3074 {
3075 <option value="@Converter.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
3076 }
3077 else
3078 {
3079 <option value="@Converter.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
3080 }
3081 }
3082 </select>
3083 </div>
3084 </div>
3085 </div>
3086 <div class="col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0">
3087 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
3088 </div>
3089 </div>
3090 </div>
3091 </div>
3092 </div>
3093 <div class="row d-block d-md-none form-wrapper no-gutters">
3094 <div class="col-xs-12 col-md-2">
3095 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
3096 </div>
3097 </div>
3098
3099
3100 </form>
3101 </div>
3102 }
3103 else
3104 {
3105 <div class="main-search-form center">
3106 <i class="fal fa-times float-right fa-2x js-close-search"></i>
3107 <div class="row mb-3 align-items-center">
3108 <div class="col-xs-12 col-md-5 border-right">
3109 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
3110 </div>
3111 <div class="col-xs-12 col-md-7 home-count d-none d-md-block">
3112 <span class="search-count" id="searchCounterMain">0</span> <span>@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")</span>
3113 </div>
3114 </div>
3115
3116 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET">
3117 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" />
3118 <div class="row form-wrapper no-gutters">
3119
3120 <div class="col-12 mb-10">
3121 <div class="searchbar">
3122 <input type="text" name="@querySearchNameAttr" id="searchfield" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch)" />
3123 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" />
3124 <input type="hidden" id="zipcodeto" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" />
3125 </div>
3126 </div>
3127 <div class="col-xs-12 col-md-8">
3128 <div class="row no-gutters">
3129 <div class="col-xs-12 col-md-6 input-col">
3130 <div class="dropdown">
3131 <button class="btn btn-dropdown dropdown-toggle reverse js-count" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
3132 @Translate("Smartpage:Search.Boligtype", "Boligtype")
3133 </button>
3134 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
3135 <ul class="bolig-dropdown list-unstyled">
3136 @{
3137 RenderBoligtypeCheckboxesDropdown();
3138 }
3139 </ul>
3140 <span class="border-fat"></span>
3141 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
3142 </div>
3143
3144 </div>
3145
3146 </div>
3147 <div class="col-xs-12 col-md-6 input-col">
3148 <div class="dropdown">
3149 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
3150 @Translate("Smartpage:Search.Pris", "Pris")
3151 </button>
3152 <div class="dropdown-menu box-shadow dropdown-price" aria-labelledby="Pris">
3153 <input type="text" name="pricemin" class="form-control mb-10 js-auto-thousand js-pricemin-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")' />
3154 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
3155 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
3156 @for (var i = 0; i <= 10000000; i += 100000)
3157 {
3158 if (i == 10000000)
3159 {
3160 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Converter.ToInt32(i).ToString("N0")+</option>
3161 }
3162 else
3163 {
3164 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Converter.ToInt32(i).ToString("N0")</option>
3165 }
3166 }
3167 </select>
3168
3169 <input type="text" name="pricemax" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")' />
3170 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
3171 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
3172 @for (var i = 0; i <= 10000000; i += 100000)
3173 {
3174 if (i == 10000000)
3175 {
3176 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Converter.ToInt32(i).ToString("N0")+</option>
3177 }
3178 else
3179 {
3180 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Converter.ToInt32(i).ToString("N0")</option>
3181 }
3182 }
3183 </select>
3184 </div>
3185 </div>
3186 </div>
3187 </div>
3188 </div>
3189 <div class="col-xs-12 col-md-4 d-none d-md-block">
3190 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
3191 </div>
3192 </div>
3193
3194 <div class="row moresearch-btn no-gutters">
3195 <div class="col-sm-12">
3196 <div class="row align-items-center no-gutters">
3197 <div class="col-12 col-md-5">
3198 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch-master">
3199 <span class="moreSearch-text"><i class="fas fa-plus open-close white"></i> <span class="not-open white">@Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")</span> <span class="open white"><span class="js-filter-count">0</span> @Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt") </span></span>
3200 </button>
3201 </div>
3202 <div class="col-6 col-md-3 mb-xs-4">
3203 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
3204 </div>
3205 <div class="col-6 col-md-4 mb-xs-4">
3206 <div class="parent-purchases">
3207 <label class="checkbox-container white">
3208 @Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet")
3209 <input type="checkbox" name="foraeldrekoebegnet" value="true" class="js-input-check">
3210 <span class="checkmark grey"></span>
3211 </label>
3212 </div>
3213 </div>
3214 </div>
3215
3216 <div class="collapse" id="moreSearch-master">
3217
3218 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
3219 <div class="row align-items-end mb-30">
3220 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
3221 <div class="filter-container row">
3222 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
3223 <div class="col-6 pr-sm-0 pr-2">
3224 <input type="text" name="boligarealmin" id="boligarealmin" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' />
3225 <select class="form-control js-boligarealmin-frontpage-select js-count">
3226 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
3227 @for (var i = 0; i <= 300; i += 10)
3228 {
3229 if (i == 300)
3230 {
3231 <option>@i+</option>
3232 }
3233 else
3234 {
3235 <option>@i</option>
3236 }
3237 }
3238 </select>
3239 </div>
3240 <div class="col-6 pl-sm-0 pl-2">
3241 <input type="text" name="boligarealmax" id="boligarealmax" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' />
3242 <select class="form-control js-boligarealmax-frontpage-select js-count">
3243 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
3244 @for (var i = 0; i <= 300; i += 10)
3245 {
3246 if (i == 300)
3247 {
3248 <option>@i+</option>
3249 }
3250 else
3251 {
3252 <option>@i</option>
3253 }
3254 }
3255 </select>
3256 </div>
3257 </div>
3258 </div>
3259 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
3260 <div class="filter-container row">
3261 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
3262 <div class="col-6 pr-sm-0 pr-2">
3263 <input type="text" name="grundarealmin" id="grundarealmin" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' />
3264 <select class="form-control js-grundarealmin-frontpage-select js-count">
3265 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
3266 @for (var i = 0; i <= 10000; i += 100)
3267 {
3268 if (i == 10000)
3269 {
3270 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3271 }
3272 else
3273 {
3274 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3275 }
3276 }
3277 </select>
3278 </div>
3279 <div class="col-6 pl-sm-0 pl-2">
3280 <input type="text" name="grundarealmax" id="grundarealmax" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' />
3281 <select class="form-control js-grundarealmax-frontpage-select">
3282 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
3283 @for (var i = 0; i <= 10000; i += 100)
3284 {
3285 if (i == 10000)
3286 {
3287 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3288 }
3289 else
3290 {
3291 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3292 }
3293 }
3294 </select>
3295 </div>
3296 </div>
3297 </div>
3298 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
3299 <div class="filter-container row">
3300 <label class="d-block col-12">Antal rum</label>
3301
3302 <div class="col-6 pr-sm-0 pr-2">
3303 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count">
3304 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
3305 <option value="1">1</option>
3306 <option value="2">2</option>
3307 <option value="3">3</option>
3308 <option value="4">4</option>
3309 <option value="5">5+</option>
3310 </select>
3311 </div>
3312 <div class="col-6 pl-sm-0 pl-2">
3313 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count">
3314 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
3315 <option value="1">1</option>
3316 <option value="2">2</option>
3317 <option value="3">3</option>
3318 <option value="4">4</option>
3319 <option value="5">5+</option>
3320 </select>
3321 </div>
3322 </div>
3323 </div>
3324 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
3325 <div class="row">
3326 <div class="col-12 pr-2">
3327 <div class="filter-container">
3328 <label class="d-block">Energimærke</label>
3329 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count">
3330 <option disabled selected="selected">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
3331 <option value="01">G</option>
3332 <option value="02">F</option>
3333 <option value="03">E</option>
3334 <option value="04">D</option>
3335 <option value="05">C</option>
3336 <option value="06">B</option>
3337 <option value="07">A</option>
3338 <option value="08">A2010</option>
3339 <option value="09">A2015</option>
3340 <option value="10">A2020+</option>
3341 </select>
3342 </div>
3343 </div>
3344 </div>
3345 </div>
3346 <div class="col-12 col-sm-6 col-lg-6 mt-3">
3347 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
3348 <div class="filter-container row">
3349 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
3350 <div class="col-6 pr-sm-0 pr-2">
3351 <input type="text" name="subsidymin" id="subsidymin" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Min", "Min")' />
3352 <select class="form-control js-subsidymin-frontpage-select js-count">
3353 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
3354 @for (var i = 0; i <= 25000; i += 1250)
3355 {
3356 if (i == 25000)
3357 {
3358 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3359 }
3360 else
3361 {
3362 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3363 }
3364 }
3365 </select>
3366 </div>
3367 <div class="col-6 pl-sm-0 pl-2">
3368 <input type="text" name="subsidymax" id="subsidymax" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Max", "Max")' />
3369 <select class="form-control js-subsidymax-frontpage-select js-count">
3370 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
3371 @for (var i = 0; i <= 25000; i += 1250)
3372 {
3373 if (i == 25000)
3374 {
3375 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3376 }
3377 else
3378 {
3379 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3380 }
3381 }
3382 </select>
3383 </div>
3384 </div>
3385 </div>
3386 <div class="col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0">
3387 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
3388 </div>
3389 </div>
3390 </div>
3391 </div>
3392 </div>
3393 <div class="row d-block d-md-none form-wrapper no-gutters">
3394 <div class="col-xs-12 col-md-2">
3395 <button type="submit" class="btn btn-block btn-search dark-red"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
3396 </div>
3397 </div>
3398
3399
3400 </form>
3401 </div>
3402 }
3403 </div>
3404
3405 @{
3406 RenderSlideMenu(false, Convert.ToString(settings_Maeglersogning));
3407 }
3408
3409 @if (isBrokerPage)
3410 {
3411 <section class="maegler-navbar">
3412 @RenderNavigation(new
3413 {
3414 id = "navbar-main",
3415 cssclass = "dwnavigation",
3416 template = "ul_li.xslt",
3417 StartLevel = 1,
3418 EndLevel = 1
3419 })
3420 </section>
3421 }
3422
3423 <div class="visual-editor">
3424 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
3425
3426
3427 @using Dynamicweb.Extensibility
3428 @using Dynamicweb.Core
3429 @using Dynamicweb.Rapido.Blocks.Components
3430 @using Dynamicweb.Rapido.Blocks.Components.Articles
3431 @using Dynamicweb.Rapido.Blocks.Components.General
3432 @using Dynamicweb.Rapido.Blocks
3433 @using Dynamicweb.Content.Items
3434
3435 @functions {
3436 BlocksPage articlePage = BlocksPage.GetBlockPage("DynamicArticle");
3437
3438 public string GetParentSettingsItem(string systemName)
3439 {
3440 string item = null;
3441
3442 Dynamicweb.Content.Page current = Dynamicweb.Services.Pages.GetPage(Model.ID);
3443 while (current != null && current.Parent != current)
3444 {
3445 var temp = current.Item != null ? current.Item[systemName] : "";
3446
3447 if (temp != null)
3448 {
3449 item = temp.ToString();
3450
3451 if (!String.IsNullOrEmpty(item) && !String.Equals("default", item, StringComparison.OrdinalIgnoreCase))
3452 {
3453 break;
3454 }
3455 }
3456
3457 current = current.Parent;
3458 }
3459
3460 return item;
3461 }
3462
3463 public string GetArticleCategory(int pageId)
3464 {
3465 string categoryName = null;
3466
3467 //Secure that the article is not in the root folder = Actual has a category
3468 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null)
3469 {
3470 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null)
3471 {
3472 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType))
3473 {
3474 categoryName = Dynamicweb.Services.Pages.GetPage(pageId).Parent.GetDisplayName();
3475 }
3476 }
3477 }
3478
3479 return categoryName;
3480 }
3481
3482 public string GetArticleCategoryColor(int pageId)
3483 {
3484 string categoryColor = "";
3485
3486 //Secure that the article is not in the root folder = Actual has a category
3487 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null)
3488 {
3489 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null)
3490 {
3491 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType))
3492 {
3493 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"] != null)
3494 {
3495 var service = new ColorSwatchService();
3496 categoryColor = Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"].ToString();
3497
3498 if (!categoryColor.Contains("#"))
3499 {
3500 categoryColor = service.GetHexColor(Converter.ToInt32(Model.Area.ID), categoryColor);
3501 }
3502 }
3503 }
3504 }
3505 }
3506
3507 return categoryColor;
3508 }
3509 }
3510
3511 @{
3512 string listPageId = Converter.ToString(GetPageIdByNavigationTag("DynamicListFeed"));
3513 string parentPageId = Dynamicweb.Services.Pages.GetPage(Model.ID).Parent.ID.ToString();
3514 string topLayout = Model.Item.GetList("TopLayout") != null ? Model.Item.GetList("TopLayout").SelectedValue : "default";
3515 topLayout = topLayout == "default" && GetParentSettingsItem("ArticleTopLayout") != null ? GetParentSettingsItem("ArticleTopLayout").ToString().ToLower() : topLayout;
3516 string textLayout = Model.Item.GetList("TextLayout") != null ? Model.Item.GetList("TextLayout").SelectedValue : "default";
3517 textLayout = textLayout == "default" && GetParentSettingsItem("ArticleTextLayout") != null ? GetParentSettingsItem("ArticleTextLayout").ToString().ToLower() : textLayout;
3518 string imageLayout = Model.Item.GetList("ImageLayout") != null ? Model.Item.GetList("ImageLayout").SelectedValue : "default";
3519 imageLayout = imageLayout == "default" && GetParentSettingsItem("ArticleImageLayout") != null ? GetParentSettingsItem("ArticleImageLayout").ToString().ToLower() : imageLayout;
3520
3521 //string imageColumns = imageLayout == "straight" && textLayout != "full" ? "8" : "12";
3522 //string contentColumns = textLayout != "full" ? "8" : "12";
3523 string imageColumns = "12";
3524 string contentColumns = "12";
3525
3526 int externalParagraphId = Model.Item.GetItem("CTAParagraphLink") != null ? Model.Item.GetItem("CTAParagraphLink").ParagraphID : 0;
3527
3528 ArticleHeaderLayout headerLayout;
3529
3530 switch (topLayout)
3531 {
3532 case "default":
3533 headerLayout = ArticleHeaderLayout.Clean;
3534 break;
3535 case "split":
3536 headerLayout = ArticleHeaderLayout.Split;
3537 break;
3538 case "banner":
3539 headerLayout = ArticleHeaderLayout.Banner;
3540 break;
3541 case "overlay":
3542 headerLayout = ArticleHeaderLayout.Overlay;
3543 break;
3544 default:
3545 headerLayout = ArticleHeaderLayout.Clean;
3546 break;
3547 }
3548
3549
3550 Block articleContainer = new Block
3551 {
3552 Id = "ArticleContainer",
3553 SortId = 10,
3554 Design = new Design
3555 {
3556 RenderType = RenderType.Row
3557 },
3558 BlocksList = new List<Block> {
3559 new Block {
3560 Id = "ArticleBody",
3561 SortId = 30,
3562 Design = new Design {
3563 RenderType = RenderType.Column,
3564 Size = "12",
3565 HidePadding = true,
3566 CssClass = "margin-top-large"
3567 }
3568 }
3569 }
3570 };
3571 articlePage.Add(articleContainer);
3572
3573 ButtonLayout topBannerButtonLayout = ButtonLayout.Primary;
3574
3575 switch (Model.Item.GetString("ButtonDesign"))
3576 {
3577 case "primary":
3578 topBannerButtonLayout = ButtonLayout.Primary;
3579 break;
3580 case "secondary":
3581 topBannerButtonLayout = ButtonLayout.Secondary;
3582 break;
3583 case "teritary":
3584 topBannerButtonLayout = ButtonLayout.Tertiary;
3585 break;
3586 case "link":
3587 topBannerButtonLayout = ButtonLayout.Link;
3588 break;
3589 }
3590
3591 ArticleHeader topBanner = new ArticleHeader
3592 {
3593 Layout = headerLayout,
3594 Image = new Image { Path = Model.Item.GetFile("Image"), ImageDefault = new ImageSettings { Width = 1920, Height = 640 } },
3595 Heading = Model.Item.GetString("Title"),
3596 Subheading = Model.Item.GetString("Summary"),
3597 TextColor = "#fff",
3598 Author = Model.Item.GetString("Author"),
3599 Date = Model.Item.GetString("Date"),
3600 Category = GetArticleCategory(Model.ID),
3601 CategoryColor = GetArticleCategoryColor(Model.ID),
3602 Link = Model.Item.GetString("Link"),
3603 LinkText = Model.Item.GetString("LinkText"),
3604 ButtonLayout = topBannerButtonLayout,
3605 RatingScore = Model.Item.GetString("Rating") != null ? Converter.ToInt32(Model.Item.GetList("Rating").SelectedValue) : 0,
3606 RatingOutOf = Model.Item.GetString("Rating") != null ? Model.Item.GetList("Rating").Options.Count : 0,
3607 ExternalParagraphId = externalParagraphId
3608 };
3609
3610 Block articleTop = new Block
3611 {
3612 Id = "ArticleHead",
3613 SortId = 20,
3614 Component = topBanner,
3615 Design = new Design
3616 {
3617 RenderType = RenderType.Column,
3618 Size = "12",
3619 HidePadding = true,
3620 CssClass = "article-head"
3621 }
3622 };
3623 //articlePage.Add("ArticleContainer", articleTop);
3624
3625
3626 Block articleBodyRow = new Block
3627 {
3628 Id = "ArticleBodyRow",
3629 SortId = 10,
3630 SkipRenderBlocksList = true
3631 };
3632 articlePage.Add("ArticleBody", articleBodyRow);
3633
3634
3635 if (Model.Item.GetString("Paragraphs") != null)
3636 {
3637 int count = 0;
3638 foreach (var paragraph in Model.Item.GetItems("Paragraphs"))
3639 {
3640 if (!paragraph.GetBoolean("RenderAsQuote"))
3641 {
3642 string enableDropCap = Model.Item.GetString("EnableDropCap") != null ? Model.Item.GetList("EnableDropCap").SelectedValue.ToLower() : "default";
3643 enableDropCap = enableDropCap == "default" && GetParentSettingsItem("EnableDropCap") != null ? GetParentSettingsItem("EnableDropCap").ToString().ToLower() : enableDropCap;
3644 string text = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : "";
3645
3646 if (!String.IsNullOrEmpty(text) && enableDropCap == "true" && count == 0 && paragraph.GetString("Text").Substring(0, 3) == "<p>")
3647 {
3648 string firstLetter = paragraph.GetString("Text").Substring(3, 1);
3649 text = paragraph.GetString("Text").Remove(3, 1);
3650 text = text.Insert(3, "<span class=\"article__drop-cap\">" + firstLetter + "</span>");
3651 }
3652
3653 if (!String.IsNullOrEmpty(paragraph.GetString("Heading")))
3654 {
3655 Block articleParagraphHeader = new Block
3656 {
3657 Id = "ArticleParagraph" + count + "Heading",
3658 SortId = (count * 10) ,
3659 Component = new ArticleSubHeader { Title = paragraph.GetString("Heading") },
3660 Design = new Design
3661 {
3662 RenderType = RenderType.Column,
3663 Size = contentColumns,
3664 CssClass = "u-color-light--bg u-padding--lg"
3665 }
3666 };
3667 articlePage.Add("ArticleBodyRow", articleParagraphHeader);
3668 }
3669
3670 if (paragraph.GetFile("Image") != null)
3671 {
3672 string imageTitle = !string.IsNullOrEmpty(paragraph.GetString("Heading")) ? paragraph.GetString("Heading") : "";
3673
3674 Block articleParagraphImage = new Block
3675 {
3676 Id = "ArticleParagraph" + count + "Image",
3677 SortId = (count * 10) + 2,
3678 Design = new Design
3679 {
3680 RenderType = RenderType.Column,
3681 Size = imageColumns,
3682 CssClass = "u-color-light--bg u-padding--lg"
3683 }
3684 };
3685
3686 if (imageLayout == "banner")
3687 {
3688 ArticleBanner banner = new ArticleBanner
3689 {
3690 Image = new Image { Path = paragraph.GetFile("Image"), ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, Caption = paragraph.GetString("ImageCaption") },
3691 Heading = imageTitle,
3692 UseFilters = false
3693 };
3694 articleParagraphImage.Component = banner;
3695 }
3696 else
3697 {
3698 ArticleImage image = new ArticleImage
3699 {
3700 Image = new Image
3701 {
3702 Path = paragraph.GetFile("Image"),
3703 Title = imageTitle,
3704 ImageDefault = new ImageSettings { Height = 650, Width = 1300 },
3705 Caption = paragraph.GetString("ImageCaption"),
3706 CssClass = "u-full-width"
3707 }
3708 };
3709 articleParagraphImage.Component = image;
3710 }
3711
3712 articlePage.Add("ArticleBodyRow", articleParagraphImage);
3713 }
3714
3715 if (!String.IsNullOrEmpty(paragraph.GetString("VideoURL")))
3716 {
3717 Block articleParagraphVideo = new Block
3718 {
3719 Id = "ArticleParagraph" + count + "Video",
3720 SortId = (count * 10) + 3,
3721 Component = new ArticleVideo { Url = paragraph.GetString("VideoURL"), AutoPlay = "false" },
3722 Design = new Design
3723 {
3724 RenderType = RenderType.Column,
3725 Size = imageColumns,
3726 CssClass = "u-color-light--bg u-padding--lg"
3727 }
3728 };
3729 articlePage.Add("ArticleBodyRow", articleParagraphVideo);
3730 }
3731
3732 if (!String.IsNullOrEmpty(text))
3733 {
3734 Block articleParagraphText = new Block
3735 {
3736 Id = "ArticleParagraph" + count + "Text",
3737 SortId = (count * 10) + 3,
3738 Component = new ArticleText { Text = text },
3739 Design = new Design
3740 {
3741 RenderType = RenderType.Column,
3742 Size = contentColumns,
3743 CssClass = "u-color-light--bg u-padding--lg"
3744 }
3745 };
3746
3747 articlePage.Add("ArticleBodyRow", articleParagraphText);
3748 }
3749 }
3750 else
3751 {
3752 if (!String.IsNullOrEmpty(paragraph.GetString("Text")))
3753 {
3754 string quoteText = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : "";
3755 string quoteAuthor = paragraph.GetString("Heading") != null ? paragraph.GetString("Heading") : "";
3756
3757 Block articleParagraphQuote = new Block
3758 {
3759 Id = "ArticleParagraph" + count + "Quote",
3760 SortId = (count * 10) + 3,
3761 Component = new ArticleQuote { Image = new Image { Path = paragraph.GetFile("Image") }, Text = quoteText, Author = quoteAuthor },
3762 Design = new Design
3763 {
3764 RenderType = RenderType.Column,
3765 Size = contentColumns,
3766 CssClass = "u-color-light--bg u-padding--lg"
3767 }
3768 };
3769 articlePage.Add("ArticleBodyRow", articleParagraphQuote);
3770 }
3771 }
3772
3773 count++;
3774 }
3775 }
3776
3777 articleBodyRow.Component = new ArticleBodyRow { SubBlocks = articleBodyRow.BlocksList, TopLayout = topLayout, TextLayout = textLayout };
3778
3779
3780 //Related
3781 string showRelatedArtices = Model.Item.GetString("ShowRelatedArticles") != null ? Model.Item.GetList("ShowRelatedArticles").SelectedValue.ToLower() : "default";
3782 showRelatedArtices = showRelatedArtices == "default" && GetParentSettingsItem("ShowRelatedArticles") != null ? GetParentSettingsItem("ShowRelatedArticles").ToString().ToLower() : showRelatedArtices;
3783
3784 if (showRelatedArtices == "true")
3785 {
3786 Block articleRelated = new Block
3787 {
3788 Id = "ArticleRelated",
3789 SortId = 30,
3790 Component = new ArticleRelated { Title = Translate("Related articles"), FeedPageId = listPageId, Query = "sourceType=Page&sourcePage=" + parentPageId, PageSize = 4, CurrentPageId = Model.ID.ToString() },
3791 Design = new Design
3792 {
3793 RenderType = RenderType.Column,
3794 Size = "12"
3795 }
3796 };
3797 articlePage.Add("ArticleContainer", articleRelated);
3798 }
3799 }
3800
3801
3802 @* The @RenderBlockList base helper is included in Components/GridBuilder.cshtml *@
3803 <section class="center-container content-container dw-mod">
3804 @RenderBlockList(articlePage.BlocksRoot.BlocksList)
3805 </section>
3806 </div>
3807
3808 @if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true)
3809 {
3810 string bName = MyBroker.Broker.Name;
3811 string bClass = "na";
3812 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png";
3813
3814 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName))
3815 {
3816 bName = MyBroker.Broker.CompanyName;
3817 }
3818 try
3819 {
3820 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl");
3821 if (!string.IsNullOrEmpty(imgUrl))
3822 {
3823 bImage = imgUrl;
3824 bClass = "";
3825 }
3826 }
3827 catch
3828 {
3829 // Ignore
3830 }
3831
3832 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId");
3833 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
3834
3835 <section class="din-maegler">
3836 <div class="img-wrapper @bClass" style="background-image:url('@bImage')"></div>
3837 <div class="container">
3838 <div class="col-12 col-sm-12 col-md-6 offset-md-6">
3839 <h2>Din personlige mægler</h2>
3840 <div class="row">
3841 <div class="col-12 col-sm-6">
3842 <p>
3843 <b class="my-broker-name">@MyBroker.Employee.Name</b><br>
3844 @if (!string.IsNullOrEmpty(MyBroker.Employee.Email))
3845 {
3846 <text>Mail: <a href="mailto:@(ExtractMaskedEmail(MyBroker.Employee.Email))" class="my-broker-email">@ExtractMaskedEmail(MyBroker.Employee.Email)</a><br></text>
3847 }
3848 @if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile))
3849 {
3850 <text>Tlf.: <a href="tel:@(MyBroker.Employee.PhoneMobile)" class="my-broker-phone">@FormatPhoneNumber(MyBroker.Employee.PhoneMobile)</a></text>
3851 }
3852 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
3853 {
3854 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-phone">@FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text>
3855 }
3856 </p>
3857 </div>
3858 <div class="col-12 col-sm-6">
3859 <p>
3860 <b class="my-broker-company-name">@bName</b><br>
3861 <span class="my-broker-company-address">@MyBroker.Broker.Address</span><br>
3862 <span class="my-broker-company-zip">@MyBroker.Broker.ZipCode</span> <span class="my-broker-company-city">@MyBroker.Broker.City</span><br>
3863 @if (!string.IsNullOrEmpty(bEmail))
3864 {
3865 <text>Mail: <a href="mailto:@(bEmail)" class="my-broker-broker-email">@bEmail</a><br></text>
3866 }
3867 @if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
3868 {
3869 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-broker-phone">@FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text>
3870 }
3871 </p>
3872 </div>
3873 </div>
3874 <div class="row">
3875 <br />
3876 <div class="col-12 col-sm-6">
3877 <a href="/@medlemsnummer.Substring(1)" class="btn btn-primary btn-block my-broker-company-url">Til mæglerens side</a>
3878 </div>
3879
3880 </div>
3881 </div>
3882 </div>
3883 </section>
3884 }
3885 <footer>
3886 <div class="container">
3887 <div class="row">
3888 @{
3889 var navigationSettings = new NavigationSettings();
3890 navigationSettings.StartLevel = 1;
3891 navigationSettings.StopLevel = 3;
3892 navigationSettings.ExpandMode = ExpandMode.All;
3893 navigationSettings.RootAreaId = 1;
3894 navigationSettings.RootNavigationTag = "footer-nav";
3895
3896 }
3897 @Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings)
3898 </div>
3899 </div>
3900 </footer>
3901
3902 @* Anonymous visitors have a null CurrentUser, and "null <= 0" is false - the panel has to
3903 render for exactly those users, so the null case is spelled out. *@
3904 @if (Model.CurrentUser == null || Model.CurrentUser.ID <= 0)
3905 {
3906 <div id="panel-login" class="panel panel-form js-loginforms">
3907 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3908 <b></b>
3909 </button>
3910 <div class="loginform login">
3911 @if (loginParagraphId > 0)
3912 {
3913 <text>
3914 @RenderParagraphContent(loginParagraphId)
3915 </text>
3916 }
3917 </div>
3918 <div class="loginform register js-register-form-wrapper" style="display: none;">
3919 @if (createUserParagraphId > 0)
3920 {
3921 <text>
3922 @RenderParagraphContent(createUserParagraphId)
3923 </text>
3924 }
3925 </div>
3926 @* Shared "glemt adgangskode"-form. Renders both inside #panel-login (SPmaster) and inline on the
3927 login page, so all hooks are classes - ids would collide when both are on the same page. *@
3928 <div class="loginform forgotpw" style="display: none;">
3929 <h2 class="forgotpw-reg">@Translate("forgot-pw-reg-title", "Glemt adgangskode")</h2>
3930 <h2 class="forgotpw-broker">@Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")</h2>
3931 <form class="form-body js-forgotpw-form" method="post" action="">
3932 <input type="hidden" name="AccessUserShopID" class="js-forgotpw-shopid" value="SHOP6" />
3933 <p class="forgotpw-reg">@Translate("forgot-pw-reg-teaser", "Har du glemt din adgangskode? Udfyld din e-mail herunder og få tilsendt instrukser for nulstillelse/ændring af din adgangskode.")</p>
3934 <p class="forgotpw-broker">@Translate("forgot-pw-broker-teaser", "Er du blevet tilmeldt via. din mægler, men mangler adgangskode til dit login? Udfyld e-mailen du har oplyst hos mægleren og få tilsendt instrukser for nulstillelse/ændring af din adgangskode.")</p>
3935 <div class="form-group">
3936 <input name="AccessUserEmail" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" placeholder="E-mail" class="form-control js-forgotpw-email" required />
3937 </div>
3938 <button class="btn btn-primary btn-block" type="submit">@Translate("forgot-pw-cta", "Nulstil adgangskode")</button>
3939 <br />
3940 <div class="js-forgotpw-message"></div>
3941 </form>
3942
3943 <hr>
3944 <button type="button" class="btn btn-default btn-block action-login">@Translate("forgot-pw-back-to-login", "Tilbage til login")</button>
3945 </div>
3946
3947 </div>
3948 }
3949
3950 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel>
3951 @using Dynamicweb.Security.UserManagement
3952
3953 @{
3954 string privacyPolicyText = Translate("Smartpage:PrivacyPolicyText", "* Der samles ingen personlige oplysninger uden dit udtrykkelige samtykke. Ved at klikke på denne checkboks giver du dit samtykke til, at dine data samles og behandles af RealMæglerne A/S for at kunne kontakte dig. Du kan til enhver tid tilbagekalde dit samtykke. For at gøre dette skal du blot sende en meddelelse til");
3955 }
3956
3957 <div id="panel-kontakt-koeberraadgivning" class="panel panel-form">
3958 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3959 <b></b>
3960 </button>
3961 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2>
3962 <form id="form-koeberraadgivning" method="POST" action="/InboxHandler">
3963 <div class="form-group">
3964 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
3965 <input class="form-control" type="text" name="navn" tabindex="1" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required />
3966 </div>
3967 <div class="form-group">
3968 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
3969 <input class="form-control" type="email" tabindex="2" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Email", "Indtast din e-mail")' value='@UserContext.Current.User?.Email' required />
3970 </div>
3971 <div class="form-group row mb-4">
3972 <div class="col-6">
3973 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
3974 <input class="form-control" type="tel" pattern="^[0-9]*$" tabindex="3" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required />
3975 </div>
3976 <div class="col-6">
3977 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
3978 <input class="form-control" type="tel" pattern="^[0-9]*$" tabindex="4" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current?.User?.Phone' />
3979 </div>
3980 </div>
3981 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
3982 <div class="form-group row">
3983 <div class="col-4">
3984 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
3985 <input class="form-control js-postnummer" type="tel" pattern="^[0-9]*$" maxlength="4" name="postnummer" tabindex="5" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr")' value="@userZip" required />
3986 <input type="hidden" class="js-postnummer-validation" />
3987 </div>
3988 <div class="col-8">
3989 <label><strong>@Translate("form-city", "By")*</strong></label>
3990 <input class="form-control js-city" type="text" readonly />
3991 </div>
3992 </div>
3993 <div class="form-group overflow-unset">
3994 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
3995 <input class="form-control js-validate-address" type="text" name="adresse" tabindex="6" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' required />
3996
3997 <label class="form-validate-error js-address-error d-none" for="adresse">@Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")</label>
3998 </div>
3999 <button class="form-control text-left js-collapse-focus" type="button" data-toggle="collapse" data-target="#kontaktkoeberrradgiver-collapse" aria-expanded="false" aria-controls="kontaktkoeberrradgiver-collapse">
4000 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
4001 </button>
4002 <div class="collapse" id="kontaktkoeberrradgiver-collapse">
4003 <div class="form-group">
4004 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4005 </div>
4006 </div>
4007
4008 <div class="form-group">
4009 <div class="row">
4010 <div class="col-12">
4011 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button>
4012 </div>
4013 </div>
4014 </div>
4015 <div class="form-group mt-3">
4016 <div class="checkbox">
4017 <label>
4018 <input type="checkbox" name="kontaktmigok" required />
4019
4020 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4021
4022 </label>
4023 </div>
4024 </div>
4025 <div class="form-group form-group-terms">
4026 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4027 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4028 </div>
4029
4030 <input type="hidden" name="fn" value="krk" />
4031 <input type="hidden" name="origin" value="" />
4032 <input type="hidden" name="brugerId" value="" />
4033 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4034 <input type="hidden" name="butikId" value="@butikId" />
4035 <input type="hidden" name="ejendomstype" value="" />
4036 <input type="hidden" name="salgspris" value="" />
4037 <input type="hidden" name="modtager" value="" />
4038 </form>
4039 <div id="tak-kontakt-advisor" style="display:none;">
4040 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4041 <div class="row">
4042 <div class="col-6">
4043 <img src="" class="img-fluid js-maegler-img" />
4044 </div>
4045 <div class="col-6">
4046 <p class="js-maegler-name"></p>
4047 <p class="js-maegler-address"></p>
4048 <p class="js-maegler-phone"></p>
4049 <p class="js-maegler-mail"></p>
4050 </div>
4051 </div>
4052 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4053 </div>
4054 </div>
4055
4056 <!--ÅBENT HUS-->
4057 <div id="panel-aabenthus" class="panel panel-form">
4058 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4059 <b></b>
4060 </button>
4061
4062
4063 <form id="form-aabenthus" method="POST" action="/InboxHandler">
4064 <h2>@Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")</h2>
4065 <div class="d-block">
4066 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label>
4067 </div>
4068 <div class="d-block">
4069 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label>
4070 </div>
4071 <div class="d-block mb-4">
4072 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label>
4073 </div>
4074 <h3>@Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")</h3>
4075 <div class="form-group">
4076 <label for="aabenthus-name"><strong>@Translate("form-navn", "Navn")*</strong></label>
4077 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current?.User?.Name' required />
4078 </div>
4079 <div class="form-group">
4080 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4081 <input class="form-control" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Email", "Indtast din e-mail")' value='@UserContext.Current.User?.Email' required />
4082 </div>
4083 <div class="form-group row">
4084 <div class="col-6">
4085 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4086 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required />
4087 </div>
4088 <div class="col-6">
4089 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4090 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current.User?.Phone' />
4091 </div>
4092 </div>
4093 <div class="form-group">
4094 <div class="row">
4095 <div class="col-12">
4096 <button type="submit" class="btn btn-block btn-green">@Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")</button>
4097 </div>
4098 </div>
4099 </div>
4100 <div class="form-group">
4101 <div class="checkbox">
4102 <label>
4103 <input type="checkbox" name="kontaktmigok" required />
4104
4105 <span class="base-color">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4106
4107 </label>
4108 </div>
4109 </div>
4110 <div class="form-group">
4111 @string.Format(Translate("Smartpage:Panel.Accept", "Du accepterer samtidig vores {0} og giver samtykke til, at dine data samles og behandles af RealMæglerne A/S for at kunne kontakte dig"), "<a href='" + settings_Persondatapolitik + "'>privatlivspolitikkerne</a>")
4112
4113 </div>
4114 <input type="hidden" name="fn" value="ah" />
4115 <input type="hidden" name="origin" value="" />
4116 <input type="hidden" name="brugerId" value="@userID" />
4117 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4118 <input type="hidden" name="butikId" value="@butikId" />
4119 <input type="hidden" name="sagsaddresse" value="" class="js-aabenthus-address-input" />
4120 <input type="hidden" name="ejendomstype" value="" />
4121 <input type="hidden" name="salgspris" value="" />
4122 <input type="hidden" name="modtager" value="" />
4123 <input type="hidden" name="employee" value="" />
4124 <input type="hidden" name="sagsnr" value="" class="js-sagsnr" />
4125 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
4126 <input type="hidden" name="aftaleid" value="" class="js-aftaleid" />
4127
4128 <input type="hidden" name="dateMail" class="js-aabenthus-date-input" />
4129 <input type="hidden" name="timeMail" class="js-aabenthus-time-input" />
4130 <input type="hidden" name="brokerImageMail" class="property-broker-image-input" />
4131 <input type="hidden" name="employeeNameMail" class="js-maegler-employee-name-input" />
4132 <input type="hidden" name="employeeTitleMail" class="js-maegler-employee-title-input" />
4133 <input type="hidden" name="employeeMailMail" class="js-maegler-mail-input" />
4134 <input type="hidden" name="employeeMobileMail" class="js-maegler-mobile-input" />
4135 <input type="hidden" name="employeePhoneMail" class="js-maegler-phone-input" />
4136
4137 <input type="hidden" name="brokerNameMail" class="js-broker-name-input" />
4138 <input type="hidden" name="brokerAddressMail" class="js-broker-address-input" />
4139 <input type="hidden" name="brokerPhoneMail" class="js-broker-phone-input" />
4140 </form>
4141 <div id="tak-aabenthus" style="display:none;">
4142 <h2>@Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")</h2>
4143 <div class="d-block">
4144 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label>
4145 </div>
4146 <div class="d-block">
4147 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label>
4148
4149 </div>
4150 <div class="d-block mb-4">
4151 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label>
4152
4153 </div>
4154
4155 <div class="js-employee">
4156 <p>@String.Format(Translate("Smartpage:Aabenthus.Tak", "Vi glæder os til at vise dig boligen. Har du spørgsmål inden vi ses, kan du kontakte {0} fra RealMæglerne"), "<b class='js-aabenthus-employee-name'></b>")</p>
4157 </div>
4158 <div class="js-not-employee">
4159 <p>@Translate("Smartpage:Aabenthus.Tak.NoEmployee", "Vi glæder os til at vise dig boligen. Har du spørgsmål inden vi ses, er du velkommen til at kontakte os")</p>
4160 </div>
4161
4162 <div class="row">
4163 <div class="js-employee">
4164 <div class="col-12 js-maegler-img aabenthus-image">
4165 <div class="property-broker-image" style=""></div>
4166
4167 </div>
4168 </div>
4169 <div class="col-12">
4170 <div class="bg-base">
4171
4172 <div class="js-employee">
4173 <h4 class="js-maegler-employee-name"></h4>
4174 <div class="icon-container">
4175 <i class="fas fa-envelope"></i> <span class="js-maegler-mail"></span>
4176 </div>
4177 <div class="icon-container">
4178 <i class="fas fa-phone"></i> <span class="js-maegler-mobile"></span>
4179 </div>
4180 </div>
4181
4182
4183 <h4 class="js-maegler-name"></h4>
4184 <div class="icon-container">
4185 <i class="fas fa-map-marker-alt"></i> <span class="js-maegler-address"></span>
4186 </div>
4187 <div class="icon-container">
4188 <i class="fas fa-phone"></i> <span class="js-maegler-phone"></span>
4189
4190 </div>
4191 <a class="btn btn-border" onclick="panelKontaktmaeglerGuldkoeber()">KONTAKT MÆGLER</a>
4192 </div>
4193 </div>
4194 </div>
4195 </div>
4196 </div>
4197
4198 <!-- KONTAKT GULDKØBER -->
4199 <div id="panel-kontakt-guldkoeber" class="panel panel-form">
4200 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4201 <b></b>
4202 </button>
4203 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2>
4204 <form id="form-kontaktmaegler" method="POST" action="/InboxHandler">
4205 <div class="form-group">
4206 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
4207 <input class="form-control" type="text" name="navn" placeholder='@Translate("form-navn", "Navn")' value='@UserContext.Current.User?.Name' required />
4208 </div>
4209 <div class="form-group">
4210 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4211 <input class="form-control" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("form-email", "E-mail")' value='@UserContext.Current.User?.Email' required />
4212 </div>
4213 <div class="form-group row mb-4">
4214 <div class="col-6">
4215 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4216 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required />
4217 </div>
4218 <div class="col-6">
4219 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4220 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current.User?.Phone' />
4221 </div>
4222 </div>
4223 <div class="form-group row">
4224 <div class="col-4">
4225 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
4226 <input class="form-control js-postnummer" type="tel" pattern="^[0-9]*$" maxlength="4" name="postnummer" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr")' value="@userZip" required />
4227 <input type="hidden" class="js-postnummer-validation" />
4228 </div>
4229 <div class="col-8">
4230 <label><strong>@Translate("form-city", "By")*</strong></label>
4231 <input class="form-control js-city" type="text" readonly />
4232 </div>
4233 </div>
4234
4235 <div class="form-group overflow-unset">
4236 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
4237 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
4238 <label class="form-validate-error js-address-error d-none" for="adresse">@Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")</label>
4239 </div>
4240 <div class="form-group">
4241 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4242 </div>
4243 <div class="form-group">
4244 <div class="checkbox">
4245 <label>
4246 <input type="checkbox" name="kontaktmigok" required />
4247
4248 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4249
4250 </label>
4251 </div>
4252 </div>
4253 <div class="form-group">
4254 <div class="row">
4255 <div class="col-12">
4256 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button>
4257 </div>
4258 </div>
4259 </div>
4260 <div class="form-group form-group-terms">
4261 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4262 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4263 </div>
4264 <input type="hidden" name="fn" value="gk" />
4265 <input type="hidden" name="origin" value="" />
4266 <input type="hidden" name="brugerId" value="@userID" />
4267 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4268 <input type="hidden" name="butikId" value="@butikId" />
4269 <input type="hidden" name="ejendomstype" value="" />
4270 <input type="hidden" name="salgspris" value="" />
4271 <input type="hidden" name="modtager" value="" />
4272 <input type="hidden" name="employee" value="" />
4273 </form>
4274 <div id="tak-kontakt-maegler-guldkoeber" style="display:none;">
4275 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4276 <p>@Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")</p>
4277 <div class="row">
4278 <div class="col-6">
4279 <img src="" class="img-fluid js-maegler-img" />
4280 </div>
4281 <div class="col-6">
4282 <p class="js-maegler-name"></p>
4283 <p class="js-maegler-address"></p>
4284 <p class="js-maegler-phone"></p>
4285 <p class="js-maegler-mail"></p>
4286 </div>
4287 </div>
4288 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4289 </div>
4290 </div>
4291
4292 <!-- BESTIL SALGSVURDERING -->
4293 <div id="panel-salgsvurdering" class="panel panel-form">
4294 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4295 <b></b>
4296 </button>
4297
4298 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler">
4299 <h2 class="js-buyer-advisor-header">@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2>
4300 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
4301 <div class="form-group">
4302 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
4303 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required />
4304 </div>
4305 <div class="form-group">
4306 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4307 <input class="form-control" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail")' value='@UserContext.Current.User?.Email' required />
4308 </div>
4309 <div class="form-group row mb-4">
4310 <div class="col-6">
4311 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4312 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required />
4313 </div>
4314 <div class="col-6">
4315 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4316 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current.User?.Phone' />
4317 </div>
4318
4319 </div>
4320
4321 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
4322 <div class="form-group row">
4323 <div class="col-4">
4324 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
4325 <input class="form-control js-postnummer js-updatebroker-list" type="tel" pattern="^[0-9]*$" maxlength="4" name="postnummer" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr")' value="@userZip" required />
4326 <input type="hidden" class="js-postnummer-validation" />
4327 </div>
4328 <div class="col-8">
4329 <label><strong>@Translate("form-city", "By")*</strong></label>
4330 <input class="form-control js-city" type="text" readonly />
4331 </div>
4332 </div>
4333 <div class="form-group overflow-unset">
4334 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
4335 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
4336 <label class="form-validate-error js-address-error d-none" for="adresse">@Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")</label>
4337 </div>
4338
4339 <button class="form-control text-left js-collapse-focus" type="button" data-toggle="collapse" data-target="#salgsvurdering-collapse" aria-expanded="false" aria-controls="salgsvurdering-collapse">
4340 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
4341 </button>
4342 <div class="collapse" id="salgsvurdering-collapse">
4343 <div class="form-group">
4344 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4345 </div>
4346 </div>
4347
4348
4349 <div class="salgsvurdering-precheck">
4350 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3>
4351 <div class="col-12">
4352 <div class="choose-broker row align-items-center active">
4353 <div class="col-2">
4354 <input class="js-broker-radio" type="radio" id="" name="choose-broker" value="" checked>
4355 <label class="js-broker-label" for=""></label><div class="check">
4356 <div class="inside">
4357 </div>
4358 </div>
4359 </div>
4360 <div class="col-4">
4361 <img src="" class="img-fluid js-broker-image">
4362 </div>
4363 <div class="col-6">
4364 <span class="d-block">
4365 <strong class="js-choose-broker-name"></strong>
4366 </span>
4367 <span class="js-choose-broker-address"></span>
4368 <input type="hidden" class="js-choose-broker-phone" value="" />
4369 <input type="hidden" class="js-choose-broker-email" value="" />
4370 </div>
4371 </div>
4372 </div>
4373 </div>
4374 <div class="salgsvurdering-broker">
4375 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3>
4376 <div class="js-choose-broker col-12">
4377 </div>
4378
4379 </div>
4380
4381 <div class="form-group mt-4">
4382 <div class="checkbox">
4383 <label>
4384 <input type="checkbox" name="kontaktmigok" required />
4385
4386 <span class="consent-checkbox">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4387
4388 </label>
4389 </div>
4390 </div>
4391 <div class="form-group">
4392 <div class="row">
4393 <div class="col-12">
4394 <button type="submit" class="btn btn-green btn-block js-buyer-advisor-button">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button>
4395 </div>
4396 </div>
4397 </div>
4398 <div class="form-group form-group-terms">
4399 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4400 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4401 </div>
4402 <input type="hidden" name="fn" value="bsv" />
4403 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" />
4404 <input type="hidden" name="brugerId" value="@userID" />
4405 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4406 <input type="hidden" id="boligvisning" name="boligvisning" value="" />
4407 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="" />
4408 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" />
4409 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
4410 <input type="hidden" name="ejendomstype" value="" />
4411 <input type="hidden" name="salgspris" value="" />
4412 <input type="hidden" name="employee" value="" />
4413 <input type="hidden" name="modtager" value="" />
4414 <input class="js-value-check" type="hidden" name="valueCheck" value="" />
4415 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" />
4416 </form>
4417 <div id="tak-salgsvurdering" style="display:none;">
4418 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4419 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p>
4420 <div class="row">
4421 <div class="col-6">
4422 <img src="" class="img-fluid js-maegler-img" />
4423 </div>
4424 <div class="col-6">
4425 <p class="js-maegler-name"></p>
4426 <p class="js-maegler-address"></p>
4427 <p class="js-maegler-phone"></p>
4428 <p class="js-maegler-mail"></p>
4429 </div>
4430 </div>
4431 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4432 </div>
4433 </div>
4434
4435 <!-- BESTIL SALGSVURDERING GULDKØBER -->
4436 <div id="panel-salgsvurdering-guldkoeber" class="panel panel-form">
4437 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4438 <b></b>
4439 </button>
4440
4441 <form id="bestil-salgsvurdering-guldkoeber" method="POST" action="/InboxHandler">
4442 <h2>@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2>
4443 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
4444 <div class="form-group">
4445 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
4446 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required />
4447 </div>
4448 <div class="form-group">
4449 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4450 <input class="form-control" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail")' value='@UserContext.Current.User?.Email' required />
4451 </div>
4452 <div class="form-group row mb-4">
4453 <div class="col-6">
4454 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4455 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr.")' value='@UserContext.Current.User?.Phone' />
4456 </div>
4457 <div class="col-6">
4458 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4459 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr.")' value='@UserContext.Current.User?.Phone' required />
4460 </div>
4461 </div>
4462
4463 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
4464
4465 <div class="form-group row">
4466 <div class="col-4">
4467 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
4468 <input class="form-control js-postnummer js-updatebroker-list" type="tel" pattern="^[0-9]*$" maxlength="4" name="postnummer" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr")' value="@userZip" required />
4469 <input type="hidden" class="js-postnummer-validation" />
4470 </div>
4471 <div class="col-8">
4472 <label><strong>@Translate("form-city", "By")*</strong></label>
4473 <input class="form-control js-city" type="text" readonly />
4474 </div>
4475 </div>
4476 <div class="form-group overflow-unset">
4477 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
4478 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
4479 <label class="form-validate-error js-address-error d-none" for="adresse">@Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")</label>
4480 </div>
4481
4482 <button class="form-control text-left js-collapse-focus" type="button" data-toggle="collapse" data-target="#salgsvurdering-collapse" aria-expanded="false" aria-controls="salgsvurdering-collapse">
4483 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
4484 </button>
4485 <div class="collapse" id="salgsvurdering-collapse">
4486 <div class="form-group">
4487 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4488 </div>
4489 </div>
4490
4491 <div class="salgsvurdering-precheck">
4492 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3>
4493 <div class="col-12">
4494 <div class="choose-broker row align-items-center active">
4495 <div class="col-2">
4496 <input class="js-broker-radio" type="radio" id="" name="choose-broker-gk" value="" checked>
4497 <label class="js-broker-label" for=""></label><div class="check">
4498 <div class="inside">
4499 </div>
4500 </div>
4501 </div>
4502 <div class="col-4">
4503 <img src="" class="img-fluid js-broker-image">
4504 </div>
4505 <div class="col-6">
4506 <span class="d-block">
4507 <strong class="js-choose-broker-name"></strong>
4508 </span>
4509 <span class="js-choose-broker-address"></span>
4510 <input type="hidden" class="js-choose-broker-phone" value="" />
4511 <input type="hidden" class="js-choose-broker-email" value="" />
4512 </div>
4513 </div>
4514 </div>
4515 </div>
4516 <div class="salgsvurdering-broker">
4517 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3>
4518 <div class="js-choose-broker col-12">
4519 </div>
4520
4521 </div>
4522
4523
4524 <div class="form-group">
4525 <div class="row">
4526 <div class="col-12">
4527 <button type="submit" class="btn btn-green btn-block">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button>
4528 </div>
4529 </div>
4530 </div>
4531 <div class="form-group">
4532 <div class="checkbox">
4533 <label>
4534 <input type="checkbox" name="kontaktmigok" required />
4535
4536 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4537
4538 </label>
4539 </div>
4540 </div>
4541 <div class="form-group form-group-terms">
4542 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4543 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4544 </div>
4545 <input type="hidden" name="fn" value="bsg" />
4546 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" />
4547 <input type="hidden" name="brugerId" value="@userID" />
4548 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4549 <input type="hidden" id="boligvisning-gk" name="boligvisning" value="" />
4550 <input type="hidden" id="panel-salgsvurdering-gk-butikid" name="butikId" value="" />
4551 <input type="hidden" id="panel-salgsvurdering-gk-sagsnr" name="sagsnr" value="" />
4552 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
4553 <input type="hidden" name="ejendomstype" value="" />
4554 <input type="hidden" name="salgspris" value="" />
4555 <input type="hidden" name="employee" value="" />
4556 <input type="hidden" name="modtager" value="" />
4557 </form>
4558 <div id="tak-salgsvurdering" style="display:none;">
4559 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4560 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p>
4561 <div class="row">
4562 <div class="col-6">
4563 <img src="" class="img-fluid js-maegler-img" />
4564 </div>
4565 <div class="col-6">
4566 <p class="js-maegler-name"></p>
4567 <p class="js-maegler-address"></p>
4568 <p class="js-maegler-phone"></p>
4569 <p class="js-maegler-mail"></p>
4570 </div>
4571 </div>
4572 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4573 </div>
4574 </div>
4575
4576 @using Dynamicweb.Core;
4577 @using Dynamicweb.Core.Encoders;
4578
4579 @{
4580 var areaItem = Pageview.Area.Item;
4581 bool turnstileDisabled = areaItem != null
4582 && areaItem.ContainsKey("DisableTurnstile")
4583 && Converter.ToBoolean(areaItem["DisableTurnstile"]);
4584 bool turnstileEnabled = !turnstileDisabled && RealMaeglerne.Dynamicweb.Config.IsTurnstileConfigured();
4585 }
4586
4587 @if (turnstileEnabled)
4588 {
4589 string turnstileSiteKey = RealMaeglerne.Dynamicweb.Config.GetTurnstileSiteKey();
4590 string turnstileAreaId = Converter.ToString(Pageview.Area.ID);
4591 string turnstileLanguage = Pageview.Area.CultureInfo.Name;
4592
4593 <div class="js-turnstile-configuration d-none"
4594 data-site-key="@HtmlEncoder.HtmlAttributeEncode(turnstileSiteKey)"
4595 data-area-id="@HtmlEncoder.HtmlAttributeEncode(turnstileAreaId)">
4596 <input type="hidden"
4597 class="js-turnstile-language"
4598 value="@HtmlEncoder.HtmlAttributeEncode(turnstileLanguage)" />
4599 <input type="hidden"
4600 class="js-turnstile-validation-message-text"
4601 value="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Turnstile.ValidationMessage", "Bekræft venligst, at du ikke er en robot."))" />
4602 </div>
4603 }
4604
4605
4606 <div class="overlay-wrapper"></div>
4607 <div class="dropdown-overlay"></div>
4608 <div class="loader-inner ball-pulse"></div>
4609
4610 @{
4611 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js"));
4612 <script type="text/javascript" src='@(TemplateUrl)assets/webpack/js/3rdparty/viamapstrap.js?@(viamapstrapFileInfo.LastWriteTime.Ticks)' async></script>
4613
4614 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js"));
4615 <script type="text/javascript" src='@(TemplateUrl)assets/dist/bundle.app.min.js?@(bundleFileInfo.LastWriteTime.Ticks)' async></script>
4616 }
4617
4618 @RenderSnippet("JavaScriptBottom")
4619
4620 @if (Context.Current.Request.QueryString["ShowLogin"] == "true")
4621 {
4622 <input class="js-showLogin" value="true" />
4623 }
4624
4625 @if (!string.IsNullOrEmpty(settings_ConduzeId))
4626 {
4627 <script type="text/javascript" id="conduze-sdk" src="https://cdn.conduze.com/@settings_ConduzeId/tracking.js" async></script>
4628 }
4629
4630 @if (!string.IsNullOrEmpty(settings_Weply))
4631 {
4632 <script src="https://app.weply.chat/widget/@settings_Weply" async></script>
4633 }
4634
4635 </body>
4636 </html>
4637
4638