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 1680: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 1681: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1683: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1685: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1772: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1773: 'ListViewModel.Options' is obsolete: 'Use the GetAllOptions extension method instead'
Line 1809: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1948: 'ListViewModel.SelectedValue' is obsolete: 'Use SelectedValues property instead and join the values if needed'
Line 1968: Argument 1: cannot convert from 'void' to 'object'
Line 5101: The variable 'placeholderImage' is assigned but its value is never used
Line 5745: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5771: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5773: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5775: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5777: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5790: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5792: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5794: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5796: The type or namespace name 'Services' does not exist in the namespace 'Dynamicweb' (are you missing an assembly reference?)
Line 5799: 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 internal class RazorEngine_2d889dfe4dee492f922660143585766e : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
105 {
106 #pragma warning disable 1998
107 public async override global::System.Threading.Tasks.Task ExecuteAsync()
108 {
109 WriteLiteral("\r\n");
110 WriteLiteral("\r\n");
111 WriteLiteral("\r\n");
112 WriteLiteral("\r\n");
113 WriteLiteral("\r\n\r\n\r\n");
114 WriteLiteral("\r\n");
115 WriteLiteral("\r\n");
116 WriteLiteral("\r\n");
117 WriteLiteral("\r\n");
118 WriteLiteral("\r\n");
119 WriteLiteral("\r\n");
120 WriteLiteral("\r\n");
121 WriteLiteral("\r\n");
122 WriteLiteral("\r\n");
123 WriteLiteral("\r\n");
124 WriteLiteral("\r\n");
125 WriteLiteral("\r\n");
126 WriteLiteral("\r\n");
127 WriteLiteral("\r\n\r\n");
128 WriteLiteral("\r\n");
129 WriteLiteral("\r\n");
130 WriteLiteral("\r\n");
131 WriteLiteral("\r\n");
132 WriteLiteral("\r\n");
133 WriteLiteral("\r\n");
134 WriteLiteral("\r\n");
135 WriteLiteral("\r\n");
136 WriteLiteral("\r\n");
137 WriteLiteral("\r\n");
138 WriteLiteral("\r\n");
139 WriteLiteral("\r\n");
140 WriteLiteral("\r\n");
141 WriteLiteral("\r\n");
142 WriteLiteral("\r\n");
143 WriteLiteral("\r\n");
144 WriteLiteral("\r\n");
145 WriteLiteral("\r\n");
146 WriteLiteral("\r\n");
147 WriteLiteral("\r\n");
148 WriteLiteral("\r\n");
149 WriteLiteral("\r\n");
150 WriteLiteral("\r\n");
151 WriteLiteral("\r\n\r\n");
152 WriteLiteral("\r\n");
153 WriteLiteral("\r\n");
154 WriteLiteral("\r\n\r\n");
155 WriteLiteral("\r\n");
156 WriteLiteral("\r\n");
157 WriteLiteral("\r\n");
158 WriteLiteral("\r\n\r\n");
159 WriteLiteral("\r\n");
160 WriteLiteral("\r\n");
161 WriteLiteral("\r\n");
162 WriteLiteral("\r\n");
163
164 Context.Current.Response.AddHeader("access-control-allow-origin", "*");
165
166 string bodyClass = "";
167 string template = "real";
168 string TemplateUrl = "/Files/Templates/Designs/rm/";
169 string MetaTitle = Model.Title;
170 string MetaDescription = Model.Description;
171 string MetaKeywords = Model.Keywords;
172 string searchClass = "";
173
174 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css"));
175 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}";
176
177 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg";
178
179 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2");
180
181 // Indstillinger
182 var settings_Frontpage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : "";
183 var settings_Boligside = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : "";
184 var settings_Maeglersogning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : "";
185 var settings_MinSide = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : "";
186 var settings_Sibling_Site = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : "";
187 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : "";
188 var settings_Product_Group = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : "";
189 var settings_Boligagent = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : "";
190 var settings_Persondatapolitik = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : "";
191
192 // API
193 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : "";
194 var settings_BoligListFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : "";
195 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : "";
196 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : "";
197 var settings_BoligCountFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : "";
198 var settings_BoligMapFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : "";
199 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"];
200
201 // Forside
202 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : "";
203 var settings_FrontpageVideo = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : "";
204 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : "";
205
206 // Tracking
207 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : "";
208 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"])))
209 {
210 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]);
211 }
212 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : "";
213 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : "";
214 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : "";
215 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]);
216 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]);
217 var settings_Google_Optimize_Id = Converter.ToString(SettingsItem["Google_Optimize_Id"]);
218
219 // Indstillinger for brugerfunktioner
220 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : "";
221 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : "";
222 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : "";
223 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : "";
224
225 int createUserParagraphId = 0;
226 int loginParagraphId = 0;
227 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId);
228 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId);
229
230 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv.
231 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv)
232 int searchPageId = GetPageSettingsPageId("Boligside");
233 if (searchPageId == 0)
234 {
235 searchPageId = GetWebsiteSettingsPageId("Boligside");
236 }
237
238 int boligsideId = GetPageSettingsPageId("Boligside");
239 if (boligsideId == 0)
240 {
241 boligsideId = GetWebsiteSettingsPageId("Boligside");
242 }
243
244 string productGroupFilter = String.Empty;
245 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null)
246 {
247 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString();
248 }
249
250 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"]))
251 {
252 searchClass = "is-frontpage";
253 }
254
255 bool isErhverv = false;
256 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null)
257 {
258 var s = Pageview.Page.PropertyItem["Erhverv"].ToString();
259 Boolean.TryParse(s, out isErhverv);
260 }
261
262 bool isBrokerPage = false;
263 if (!string.IsNullOrEmpty(Model.Area.Item.GetString("M_glerGruppeId")))
264 {
265 isBrokerPage = true;
266 bodyClass = ""; // Get rid of transparent header on brokerPage
267 }
268
269 string callTrackingId = Model.Item.GetString("CallTrackingId");
270
271 RealEstate.User.Model.BrokerEmployee MyBroker = null;
272 try
273 {
274 var MyB = new RealEstate.User.MyBroker();
275 MyBroker = MyB.GetMyBroker();
276 }
277 catch
278 {
279 // Ignore
280 }
281
282 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : "");
283 string querySearchNameAttr = "search";
284
285 // Overwrite search with zipcodeinterval if set
286 if (Context.Current.Request.QueryString["zipcodeinterval"] != null)
287 {
288 querySearch = Context.Current.Request.QueryString["zipcodeinterval"];
289 querySearchNameAttr = "zipcodeinterval";
290 }
291
292 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : "");
293 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : "");
294
295 Dynamicweb.Security.UserManagement.User user = null;
296 int userID = 0;
297 string userName = "";
298 string userEmail = "";
299 string userPhone = "";
300 string userZip = "";
301 string userAddress = "";
302
303 if (Dynamicweb.Security.UserManagement.UserContext.Current.IsLoggedOn)
304 {
305 user = Dynamicweb.Security.UserManagement.UserContext.Current.User;
306 userName = user.Name;
307 userEmail = user.Email;
308 userPhone = user.Phone;
309 userZip = user.Zip;
310 userAddress = user.Address;
311 userID = user.ID;
312 }
313
314 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode");
315 string forgotPwTemplate = "";
316 string forgotPwSender = "";
317 string markerColor = "";
318 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png";
319
320 // Important - e-mail templates for forgotPw must be placed in "UserManagement/Login" folder
321 forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml";
322 forgotPwSender = "noreply@mailreal.dk";
323 markerColor = "#213960";
324
325 var butikId = string.Empty;
326 string bEmail = string.Empty;
327 if (MyBroker != null && MyBroker.Broker != null)
328 {
329 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
330 bEmail = MyBroker.Broker.Item().GetString("Email");
331 }
332
333 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment"));
334
335 var termsMail = "info@realmaeglerne.dk";
336 WriteLiteral("\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta charset=\"utf-8\">\r\n <title>");
337 Write(MetaTitle);
338 WriteLiteral("</title>\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1\">\r\n <meta name=\"description\"");
339 BeginWriteAttribute("content", " content=\"", 116098, "\"", 116124, 1);
340 WriteAttributeValue("", 116108, MetaDescription, 116108, 16, false);
341 EndWriteAttribute();
342 WriteLiteral(">\r\n <meta name=\"keywords\"");
343 BeginWriteAttribute("content", " content=\"", 116153, "\"", 116176, 1);
344 WriteAttributeValue("", 116163, MetaKeywords, 116163, 13, false);
345 EndWriteAttribute();
346 WriteLiteral(">\r\n <meta name=\"format-detection\" content=\"telephone=no\">\r\n <meta http-equiv=\"Expires\" content=\"60\">\r\n <meta name=\"robots\"");
347 BeginWriteAttribute("content", " content=\"", 116308, "\"", 116414, 3);
348 WriteAttributeValue("", 116318, Pageview.Area.Noindex ? "noindex" : "index", 116318, 46, false);
349 WriteAttributeValue("", 116364, ",", 116364, 1, true);
350 WriteAttributeValue("", 116365, Pageview.Area.Nofollow ? "nofollow" : "follow", 116365, 49, false);
351 EndWriteAttribute();
352 WriteLiteral(">\r\n\r\n");
353 WriteLiteral("\r\n ");
354 Write(RenderSnippet("OpenGraphTags"));
355 WriteLiteral("\r\n");
356 if (!string.IsNullOrEmpty(settings_Google_Optimize_Id))
357 {
358 WriteLiteral(" <!-- Google optimize script-->\r\n <script");
359 BeginWriteAttribute("src", " src=\"", 116606, "\"", 116686, 2);
360 WriteAttributeValue("", 116612, "https://www.googleoptimize.com/optimize.js?id=", 116612, 46, true);
361 WriteAttributeValue("", 116658, settings_Google_Optimize_Id, 116658, 28, false);
362 EndWriteAttribute();
363 WriteLiteral("></script>\r\n");
364 }
365 WriteLiteral(@" <!-- TrustBox script -->
366 <script type=""text/javascript"" src=""//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js"" async></script>
367 <!-- End TrustBox script -->
368
369 <script type=""application/ld+json"">
370 {
371 ""context"": ""https://schema.org/"",
372 """);
373 WriteLiteral(@"@type"": ""WebSite"",
374 ""name"": ""RealMæglerne"",
375 ""url"": ""https://www.realmaeglerne.dk/"",
376 ""potentialAction"": {
377 ""type"": ""SearchAction"",
378 ""target"": ""https://www.realmaeglerne.dk/find-maegler?q={search_term_string}"",
379 ""query-input"": ""required name=search_term_string""
380 }
381 }
382 </script>
383
384 <script type=""application/ld+json"">
385 {
386 ""context"": ""https://schema.org"",
387 """);
388 WriteLiteral(@"@type"": ""Corporation"",
389 ""name"": ""RealMæglerne"",
390 ""alternateName"": ""R&B Mægler A/S"",
391 ""url"": ""https://www.realmaeglerne.dk"",
392 ""logo"": ""https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png"",
393 ""contactPoint"": {
394 ""type"": ""ContactPoint"",
395 ""telephone"": ""+4570237153"",
396 ""contactType"": ""sales"",
397 ""areaServed"": ""DK"",
398 ""availableLanguage"": ""Danish""
399 },
400 ""sameAs"": [
401 ""https://www.facebook.com/realmaeglerne/"",
402 ""https://www.linkedin.com/company/realmæglerne/"",
403 ""https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g"",
404 ""https://www.realmaeglerne.dk/""
405 ]
406 }
407 </script>
408 ");
409 Write(RenderSnippet("StructuredData"));
410 WriteLiteral("\r\n");
411 WriteLiteral("\r\n");
412 WriteLiteral(" <link rel=\"stylesheet\"");
413 BeginWriteAttribute("href", " href=\"", 118308, "\"", 118359, 2);
414 WriteAttributeValue("", 118315, TemplateUrl, 118315, 14, false);
415 WriteAttributeValue("", 118329, "assets/fontawesome/css/all.css", 118329, 30, true);
416 EndWriteAttribute();
417 WriteLiteral(" async />\r\n <link rel=\"stylesheet\"");
418 BeginWriteAttribute("href", " href=\"", 118401, "\"", 118416, 1);
419 WriteAttributeValue("", 118408, mainCSS, 118408, 8, false);
420 EndWriteAttribute();
421 WriteLiteral(" async />\r\n");
422
423 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
424 {
425 var cssErhvervFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/erhverv.min.css"));
426 string erhvervCSS = TemplateUrl + $"assets/dist/css/erhverv.min.css?{cssErhvervFileInfo.LastWriteTime.Ticks}";
427 WriteLiteral(" <link rel=\"stylesheet\"");
428 BeginWriteAttribute("href", " href=\"", 118820, "\"", 118838, 1);
429 WriteAttributeValue("", 118827, erhvervCSS, 118827, 11, false);
430 EndWriteAttribute();
431 WriteLiteral(" async>\r\n");
432 }
433 WriteLiteral("\r\n\r\n <link rel=\"icon\" type=\"image/ico\"");
434 BeginWriteAttribute("href", " href=\"", 118907, "\"", 118971, 2);
435 WriteAttributeValue("", 118914, TemplateUrl, 118914, 14, false);
436 WriteAttributeValue("", 118928, "assets/images/favicons/favicon-real.ico?v=1", 118928, 43, true);
437 EndWriteAttribute();
438 WriteLiteral(">\r\n <link rel=\"icon\" type=\"image/png\"");
439 BeginWriteAttribute("href", " href=\"", 119012, "\"", 119078, 2);
440 WriteAttributeValue("", 119019, TemplateUrl, 119019, 14, false);
441 WriteAttributeValue("", 119033, "assets/images/favicons/favicon-real-16x16.png", 119033, 45, true);
442 EndWriteAttribute();
443 WriteLiteral(" sizes=\"16x16\">\r\n <link rel=\"icon\" type=\"image/png\"");
444 BeginWriteAttribute("href", " href=\"", 119133, "\"", 119199, 2);
445 WriteAttributeValue("", 119140, TemplateUrl, 119140, 14, false);
446 WriteAttributeValue("", 119154, "assets/images/favicons/favicon-real-32x32.png", 119154, 45, true);
447 EndWriteAttribute();
448 WriteLiteral(" sizes=\"32x32\">\r\n <link rel=\"icon\" type=\"image/png\"");
449 BeginWriteAttribute("href", " href=\"", 119254, "\"", 119320, 2);
450 WriteAttributeValue("", 119261, TemplateUrl, 119261, 14, false);
451 WriteAttributeValue("", 119275, "assets/images/favicons/favicon-real-96x96.png", 119275, 45, true);
452 EndWriteAttribute();
453 WriteLiteral(" sizes=\"96x96\">\r\n <meta name=\"google-site-verification\" content=\"hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg\" />\r\n\r\n");
454 if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString()))
455 {
456 WriteLiteral(@" <script>
457 window.dataLayer = window.dataLayer || []; // must be placed above GTM script
458 </script>
459 <!-- Google Tag Manager -->
460 <script>
461 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
462 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
463 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
464 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
465 })(window,document,'script','dataLayer','");
466 Write(settings_Google_Tag_Manager_ID);
467 WriteLiteral("\');</script>\r\n <!-- End Google Tag Manager -->\r\n");
468 }
469 WriteLiteral("\r\n");
470 if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId))
471 {
472 WriteLiteral(" <script type=\"text/javascript\"");
473 BeginWriteAttribute("src", " src=\"", 120302, "\"", 120374, 2);
474 WriteAttributeValue("", 120308, "https://call.call-tracking.dk/getJavascript?custid=", 120308, 51, true);
475 WriteAttributeValue("", 120359, callTrackingId, 120359, 15, false);
476 EndWriteAttribute();
477 WriteLiteral("></script>\r\n");
478 }
479 WriteLiteral("\r\n");
480 if (!String.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString()))
481 {
482 WriteLiteral(@" <!-- Begin Leadhub Pixel Code -->
483 <script>
484 (function(w,d,x,n,u,t,f,s,o){
485 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){
486 (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)
487 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '");
488 Write(settings_Leadhub_Pixel_ID);
489 WriteLiteral("\');\r\n lhi(\'pageview\');\r\n </script>\r\n <!-- End Leadhub Pixel Code -->\r\n");
490 }
491 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 + \"");
492 Write(settings_BoligCountFeed);
493 WriteLiteral("\";\r\n RMAPI.BoligListFeed = ApiPreFix + \"");
494 Write(settings_BoligListFeed);
495 WriteLiteral("\" + \"&refpageid=");
496 Write(Pageview.Page.ID);
497 WriteLiteral("\";\r\n RMAPI.BoligListFeedErhverv = \"");
498 Write(settings_BoligListFeedErhverv);
499 WriteLiteral("\";\r\n RMAPI.BoligListFeedMaegler = ApiPreFix + \"");
500 Write(settings_BoligListFeedMaegler);
501 WriteLiteral("\" + \"&refpageid=");
502 Write(Pageview.Page.ID);
503 WriteLiteral("\";\r\n RMAPI.BoligSearchFeed = ApiPreFix + \"");
504 Write(settings_BoligSearchFeed);
505 WriteLiteral("\";\r\n RMAPI.BoligMapFeed = ApiPreFix + \"");
506 Write(settings_BoligMapFeed);
507 WriteLiteral("\";\r\n RMAPI.Boligagent = \"");
508 Write(settings_Boligagent);
509 WriteLiteral("\";\r\n RMAPI.IsErhverv = ");
510 Write(isErhverv.ToString().ToLower());
511 WriteLiteral(";\r\n RMAPI.ProductGroupFilter = \"");
512 Write(productGroupFilter);
513 WriteLiteral("\";\r\n RMAPI.ButikId = \"");
514 Write(butikId);
515 WriteLiteral("\";\r\n RMAPI.Boligvisning = false;\r\n RMAPI.RefPageId = \"");
516 Write(Pageview.Page.ID);
517 WriteLiteral("\";\r\n RMAPI.Template = \"");
518 Write(template);
519 WriteLiteral("\";\r\n RMAPI.SliderSettings = ");
520 Write(JsonConvert.SerializeObject(Settings.Site));
521 WriteLiteral(";\r\n RMAPI.AdvisorSearchFeed = \"");
522 Write(settings_AdvisorSearchFeed);
523 WriteLiteral("\";\r\n RMAPI.LoadingIcon = \"");
524 Write(loadingIcon);
525 WriteLiteral("\";\r\n RMAPI.MarkerColor = \"");
526 Write(markerColor);
527 WriteLiteral("\";\r\n RMAPI.mapMarkerUrl = \"");
528 Write(mapMarkerUrl);
529 WriteLiteral("\";\r\n RMAPI.settings_ForgotPwPage = \"");
530 Write(settings_ForgotPwPage);
531 WriteLiteral("\";\r\n </script>\r\n\r\n");
532 if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString()))
533 {
534 WriteLiteral(@" <!-- Facebook Pixel Code -->
535 <script>
536 !function (f, b, e, v, n, t, s) {
537 if (f.fbq) return; n = f.fbq = function () {
538 n.callMethod ?
539 n.callMethod.apply(n, arguments) : n.queue.push(arguments)
540 };
541 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';
542 n.queue = []; t = b.createElement(e); t.async = !0;
543 t.src = v; s = b.getElementsByTagName(e)[0];
544 s.parentNode.insertBefore(t, s)
545 }(window, document, 'script',
546 'https://connect.facebook.net/en_US/fbevents.js');
547 fbq('init', '");
548 Write(settings_Facebook_App_ID);
549 WriteLiteral("\');\r\n fbq(\'track\', \'PageView\');\r\n </script>\r\n <noscript>\r\n <img height=\"1\" width=\"1\"");
550 BeginWriteAttribute("src", " src=\"", 123277, "\"", 123362, 3);
551 WriteAttributeValue("", 123283, "https://www.facebook.com/tr?id=", 123283, 31, true);
552 WriteAttributeValue("", 123314, settings_Facebook_App_ID, 123314, 25, false);
553 WriteAttributeValue("", 123339, "&ev=PageView&noscript=1", 123339, 23, true);
554 EndWriteAttribute();
555 WriteLiteral(" />\r\n </noscript>\r\n <!-- End Facebook Pixel Code -->\r\n");
556 }
557 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");
558 BeginWriteAttribute("class", " class=\"", 123638, "\"", 123665, 2);
559 WriteAttributeValue("", 123646, template, 123646, 9, false);
560 WriteAttributeValue("", 123655, bodyClass, 123655, 10, false);
561 EndWriteAttribute();
562 WriteLiteral(" data-spforgotpwtemplate=\"");
563 Write(forgotPwTemplate);
564 WriteLiteral("\" data-spforgotpwsender=\"");
565 Write(forgotPwSender);
566 WriteLiteral("\" data-spforgotpwsubject=\"");
567 Write(forgotPwSubject);
568 WriteLiteral("\" data-spsalesassesmentid=\"");
569 Write(salesAssessmentPageId);
570 WriteLiteral("\">\r\n");
571
572 string logoUrl = TemplateUrl + (!Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg");
573 WriteLiteral("\r\n");
574 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) && GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
575 {
576 WriteLiteral(" <div class=\"top-search\">\r\n <div class=\"header logo\">\r\n <div class=\"logo\">\r\n <a href=\"/erhverv\">\r\n <img");
577 BeginWriteAttribute("src", " src=\"", 124337, "\"", 124351, 1);
578 WriteAttributeValue("", 124343, logoUrl, 124343, 8, false);
579 EndWriteAttribute();
580 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");
581
582
583 var settings_BoligListErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : "";
584 WriteLiteral(" <input type=\"hidden\" name=\"ID\"");
585 BeginWriteAttribute("value", " value=\'", 124918, "\'", 124952, 1);
586 WriteAttributeValue("", 124926, settings_BoligListErhverv, 124926, 26, false);
587 EndWriteAttribute();
588 WriteLiteral(" id=\"searchPageId-top\" disabled=\"disabled\" />\r\n\r\n");
589 if (Context.Current.Request["type"] == "egetforbrug")
590 {
591 WriteLiteral(" <input name=\"type\" type=\"hidden\" value=\"egetforbrug\" />\r\n <input name=\"investeringsejendom\" type=\"hidden\" value=\"0\" />\r\n");
592 }
593 WriteLiteral(@" <div class=""row form-wrapper no-gutters"">
594 <div class=""col-xs-12 col-md-4 col-lg-5 col-searchbar"">
595 <div class=""searchbar float-label-container text-left"">
596 <label class=""float-label"">");
597 Write(Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer"));
598 WriteLiteral("</label>\r\n <input type=\"text\"");
599 BeginWriteAttribute("name", " name=\"", 125746, "\"", 125773, 1);
600 WriteAttributeValue("", 125753, querySearchNameAttr, 125753, 20, false);
601 EndWriteAttribute();
602 WriteLiteral(" id=\"searchfield-top\" class=\"search-input js-float-label js-getdata\" tabindex=\"1\"");
603 BeginWriteAttribute("value", " value=\"", 125855, "\"", 125933, 1);
604 WriteAttributeValue("", 125863, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 125863, 70, false);
605 EndWriteAttribute();
606 WriteLiteral(@" />
607 </div>
608 </div>
609 <div class=""col-xs-12 col-md-5"">
610 <div class=""row no-gutters"">
611 <div class=""col-xs-12 col-md-6 input-col"">
612 <div class=""dropdown w-overlay float-label-container"">
613 <label class=""float-label"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">");
614 Write(Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype"));
615 WriteLiteral(@"</label>
616 <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>
617 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
618 <ul class=""bolig-dropdown list-unstyled"">
619 ");
620
621 RenderBoligTypeErhverv();
622 WriteLiteral(@" </ul>
623 <span class=""border-fat""></span>
624 <div class=""d-none d-md-block"">
625 <button class=""btn btn-primary js-close-dropdown"">");
626 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
627 WriteLiteral(@"</button>
628 </div>
629 <div class=""d-flex row d-md-none"">
630 <div class=""col-6"">
631 <button class=""btn btn-danger js-remove-filter"">");
632 Write(Translate("Smartpage:Search.Annuller", "Annuller"));
633 WriteLiteral("</button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-primary js-close-dropdown\">");
634 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
635 WriteLiteral(@"</button>
636 </div>
637 </div>
638 </div>
639
640 </div>
641 </div>
642 <div class=""col-xs-12 col-md-6 input-col"">
643 <div class=""btn-dropdown p-3 border-top-bottom-right"">
644 <ul class=""two-column list-unstyled"">
645 <li>
646 <label class=""checkbox-container"">
647 ");
648 Write(Translate("Smartpage:Search.Erhverv.Leje", "Leje"));
649 WriteLiteral(@"
650 <input type=""checkbox"" name=""propertytype"" value=""leje"" class=""js-input-check"" />
651 <span class=""checkmark""></span>
652 </label>
653 </li>
654 <li>
655 <label class=""checkbox-container"">
656 ");
657 Write(Translate("Smartpage:Search.Erhverv.Køb", "Køb"));
658 WriteLiteral(@"
659 <input type=""checkbox"" name=""propertytype"" value=""kob"" class=""js-input-check"" />
660 <span class=""checkmark""></span>
661 </label>
662 </li>
663 </ul>
664 </div>
665
666 </div>
667 </div>
668 </div>
669 <div class=""col-xs-12 col-md-3 col-lg-2 d-none d-md-block"">
670 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
671 Write(Translate("Smartpage:Search.Søg", "Søg"));
672 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n");
673 }
674 WriteLiteral("\r\n");
675 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
676 {
677 WriteLiteral(" <div class=\"header shortcuts\">\r\n <div class=\"header-shortcuts float-right\">\r\n");
678 if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
679 {
680 WriteLiteral(" <a");
681 BeginWriteAttribute("href", " href=\'", 130636, "\'", 130643, 0);
682 EndWriteAttribute();
683 BeginWriteAttribute("class", " class=\"", 130644, "\"", 130760, 9);
684 WriteAttributeValue("", 130652, "search-menu", 130652, 11, true);
685 WriteAttributeValue(" ", 130663, "d-none", 130664, 7, true);
686 WriteAttributeValue(" ", 130670, "d-xl-flex", 130671, 10, true);
687 WriteAttributeValue(" ", 130680, "align-items-center", 130681, 19, true);
688 WriteAttributeValue(" ", 130699, "float-left", 130700, 11, true);
689 WriteAttributeValue(" ", 130710, "border-right", 130711, 13, true);
690 WriteAttributeValue(" ", 130723, "js-mainsearch", 130724, 14, true);
691 WriteAttributeValue(" ", 130737, "topsearch", 130738, 10, true);
692 WriteAttributeValue(" ", 130747, searchClass, 130748, 12, false);
693 EndWriteAttribute();
694 WriteLiteral(">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i><span class=\"search-menu-text hidden d-md-block\"> ");
695 Write(Translate("Smartpage:Search.Søg", "Søg"));
696 WriteLiteral("</span>\r\n </a>\r\n");
697 }
698 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");
699 }
700 else
701 {
702 int mainSiteAreaId = Custom.Navigation.Config.GetMainSiteAreaId();
703
704 var myAccountPage = Dynamicweb.Content.Services.Pages.GetPageByNavigationTag(mainSiteAreaId, "MyAccount");
705
706 WriteLiteral(" <div class=\"header__container container\">\r\n <div class=\"header__logo\">\r\n <a href=\"/\"");
707 BeginWriteAttribute("title", " title=\"", 131562, "\"", 131570, 0);
708 EndWriteAttribute();
709 WriteLiteral(">\r\n <img");
710 BeginWriteAttribute("src", " src=\"", 131598, "\"", 131614, 1);
711 WriteAttributeValue("", 131604, logoUrl, 131604, 10, false);
712 EndWriteAttribute();
713 BeginWriteAttribute("alt", " alt=\"", 131615, "\"", 131621, 0);
714 EndWriteAttribute();
715 WriteLiteral(" />\r\n </a>\r\n </div>\r\n <div class=\"header__title\">\r\n <span>");
716 Write(Translate("Custom:Header.Title", "Realmæglerne"));
717 WriteLiteral("</span> \r\n </div>\r\n");
718 if (myAccountPage is object)
719 {
720 WriteLiteral(@" <div class=""header__navigation d-none d-md-flex"">
721 <div class=""header__navigation"">
722 <div class=""header__Link"">
723 <ul>
724 <li class=""d-flex align-items-center"">
725 <svg xmlns=""http://www.w3.org/2000/svg"" width=""20"" height=""20"" viewBox=""0 0 20 20"" fill=""none"">
726 <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"" />
727 ");
728 WriteLiteral(" </svg>\r\n <a class=\"ml-2\"");
729 BeginWriteAttribute("href", " href=\"", 132992, "\"", 133033, 2);
730 WriteAttributeValue("", 132999, "/Default.aspx?ID=", 132999, 17, true);
731 WriteAttributeValue("", 133016, myAccountPage.ID, 133016, 17, false);
732 EndWriteAttribute();
733 WriteLiteral(" target=\"_blank\">");
734 Write(Translate("Mit RealMæglerne"));
735 WriteLiteral("</a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n");
736
737 }
738 WriteLiteral(" <div class=\"header__search flex-column flex-md-row js-mainsearch\">\r\n ");
739 Write(Translate("Søg bolig"));
740 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 ");
741 Write(Translate("Menu"));
742 WriteLiteral("\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n");
743 }
744 WriteLiteral("\r\n <div class=\"search-modal\">\r\n\r\n");
745 if (Converter.ToString(Pageview.Area.Item["Type"]) == "real")
746 {
747 WriteLiteral(@" <div class=""main-search-form"">
748 <i class=""fal fa-times float-right fa-2x js-close-search close-search""></i>
749 <div class=""row mb-3 align-items-center"">
750 <div class=""col-xs-12 col-md-3 border-right"">
751 <h3>");
752 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
753 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\">");
754 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg"));
755 WriteLiteral(@"<span class=""loader js-loader""></span></span>
756
757 </div>
758 </div>
759
760 <form id=""main-search"" class=""searchbar-wrapper"" action=""/Default.aspx"" method=""GET"">
761 <input type=""hidden"" name=""ID""");
762 BeginWriteAttribute("value", " value=\'", 134724, "\'", 134745, 1);
763 WriteAttributeValue("", 134732, searchPageId, 134732, 13, false);
764 EndWriteAttribute();
765 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" />
766 <div class=""row form-wrapper no-gutters"">
767
768 <div class=""col-xs-12 col-md-5 col-searchbar"">
769 <div class=""searchbar"">
770 <input type=""text""");
771 BeginWriteAttribute("name", " name=\"", 135029, "\"", 135056, 1);
772 WriteAttributeValue("", 135036, querySearchNameAttr, 135036, 20, false);
773 EndWriteAttribute();
774 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\"");
775 BeginWriteAttribute("value", " value=\"", 135159, "\"", 135237, 1);
776 WriteAttributeValue("", 135167, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 135167, 70, false);
777 EndWriteAttribute();
778 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\"");
779 BeginWriteAttribute("value", " value=\"", 135331, "\"", 135414, 1);
780 WriteAttributeValue("", 135339, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 135339, 75, false);
781 EndWriteAttribute();
782 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\"");
783 BeginWriteAttribute("value", " value=\"", 135504, "\"", 135585, 1);
784 WriteAttributeValue("", 135512, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 135512, 73, false);
785 EndWriteAttribute();
786 WriteLiteral(@" />
787 </div>
788 </div>
789 <div class=""col-xs-12 col-md-5"">
790 <div class=""row no-gutters"">
791 <div class=""col-xs-12 col-md-6 input-col"">
792 <div class=""dropdown"">
793 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
794 ");
795 Write(Translate("Smartpage:Search.Boligtype", "Boligtype"));
796 WriteLiteral(@"
797 </button>
798 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
799 <ul class=""bolig-dropdown list-unstyled"">
800 ");
801
802 RenderBoligtypeCheckboxesDropdown();
803 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">");
804 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
805 WriteLiteral(@"</button>
806 </div>
807
808 </div>
809
810 </div>
811 <div class=""col-xs-12 col-md-6 input-col"">
812 <div class=""dropdown"">
813 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
814 ");
815 Write(Translate("Smartpage:Search.Pris", "Pris"));
816 WriteLiteral(@"
817 </button>
818 <div class=""dropdown-menu box-shadow dropdown-price js-dropdown-price"" aria-labelledby=""Pris"">
819 <input name=""pricemin"" type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input""");
820 BeginWriteAttribute("placeholder", " placeholder=\'", 137836, "\'", 137913, 1);
821 WriteAttributeValue("", 137850, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 137850, 63, false);
822 EndWriteAttribute();
823 BeginWriteAttribute("value", " value=\'", 137914, "\'", 138050, 1);
824 WriteAttributeValue("", 137922, !string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemin"]) ? Context.Current.Request.QueryString["pricemin"] : "", 137922, 128, false);
825 EndWriteAttribute();
826 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">");
827 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"));
828 WriteLiteral("</option>\r\n");
829 for (var i = 0; i <= 10000000; i += 100000)
830 {
831 if (i == 10000000)
832 {
833 WriteLiteral(" <option");
834 BeginWriteAttribute("value", " value=\"", 138687, "\"", 138697, 1);
835 WriteAttributeValue("", 138695, i, 138695, 2, false);
836 EndWriteAttribute();
837 WriteLiteral(" data-value=\'");
838 Write(Converter.ToInt32(i).ToString("N0"));
839 WriteLiteral("+\'>");
840 Write(Convert.ToInt32(i).ToString("N0"));
841 WriteLiteral("+</option>\r\n");
842 }
843 else
844 {
845 WriteLiteral(" <option");
846 BeginWriteAttribute("value", " value=\"", 139027, "\"", 139037, 1);
847 WriteAttributeValue("", 139035, i, 139035, 2, false);
848 EndWriteAttribute();
849 WriteLiteral(" data-value=\'");
850 Write(Converter.ToInt32(i).ToString("N0"));
851 WriteLiteral("\'>");
852 Write(Convert.ToInt32(i).ToString("N0"));
853 WriteLiteral("</option>\r\n");
854 }
855 }
856 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\"");
857 BeginWriteAttribute("placeholder", " placeholder=\'", 139441, "\'", 139518, 1);
858 WriteAttributeValue("", 139455, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 139455, 63, false);
859 EndWriteAttribute();
860 BeginWriteAttribute("value", " value=\'", 139519, "\'", 139655, 1);
861 WriteAttributeValue("", 139527, !string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemax"]) ? Context.Current.Request.QueryString["pricemax"] : "", 139527, 128, false);
862 EndWriteAttribute();
863 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
864 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"));
865 WriteLiteral("</option>\r\n");
866 for (var i = 0; i <= 10000000; i += 100000)
867 {
868 if (i == 10000000)
869 {
870 WriteLiteral(" <option");
871 BeginWriteAttribute("value", " value=\"", 140286, "\"", 140296, 1);
872 WriteAttributeValue("", 140294, i, 140294, 2, false);
873 EndWriteAttribute();
874 WriteLiteral(" data-value=\'");
875 Write(Converter.ToInt32(i).ToString("N0"));
876 WriteLiteral("+\'>");
877 Write(Convert.ToInt32(i).ToString("N0"));
878 WriteLiteral("+</option>\r\n");
879 }
880 else
881 {
882 WriteLiteral(" <option");
883 BeginWriteAttribute("value", " value=\"", 140626, "\"", 140636, 1);
884 WriteAttributeValue("", 140634, i, 140634, 2, false);
885 EndWriteAttribute();
886 WriteLiteral(" data-value=\'");
887 Write(Converter.ToInt32(i).ToString("N0"));
888 WriteLiteral("\'>");
889 Write(Convert.ToInt32(i).ToString("N0"));
890 WriteLiteral("</option>\r\n");
891 }
892 }
893 WriteLiteral(@" </select>
894 </div>
895 </div>
896 </div>
897 </div>
898 </div>
899 <div class=""col-xs-12 col-md-2 d-none d-md-block"">
900 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
901 Write(Translate("Smartpage:Search.Søg", "Søg"));
902 WriteLiteral(@"</button>
903 </div>
904 </div>
905
906 <div class=""row moresearch-btn no-gutters"">
907 <div class=""col-sm-12"">
908 <div class=""row align-items-center no-gutters"">
909 <div class=""col-12 col-md-4"">
910 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch"">
911 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open white"">");
912 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder"));
913 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> ");
914 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt"));
915 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\">");
916 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg"));
917 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>");
918 Write(Translate("Smartpage:Search.Bolig", "Bolig"));
919 WriteLiteral(@"</b></h4>
920 <div class=""row align-items-end mb-30"">
921 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
922 <div class=""filter-container row"">
923 <label class=""d-block col-12"">");
924 Write(Translate("Smartpage:Search.Boligareal", "Boligareal"));
925 WriteLiteral(@"</label>
926 <div class=""col-6 pr-sm-0 pr-2"">
927 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count""");
928 BeginWriteAttribute("placeholder", " placeholder=\'", 143398, "\'", 143471, 1);
929 WriteAttributeValue("", 143412, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 143412, 59, false);
930 EndWriteAttribute();
931 BeginWriteAttribute("value", " value=\'", 143472, "\'", 143618, 1);
932 WriteAttributeValue("", 143480, !string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmin"]) ? Context.Current.Request.QueryString["boligarealmin"] : "", 143480, 138, false);
933 EndWriteAttribute();
934 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
935 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
936 WriteLiteral("</option>\r\n");
937 for (var i = 0; i <= 300; i += 10)
938 {
939 if (i == 300)
940 {
941 WriteLiteral(" <option>");
942 Write(i);
943 WriteLiteral("+</option>\r\n");
944 }
945 else
946 {
947 WriteLiteral(" <option>");
948 Write(i);
949 WriteLiteral("</option>\r\n");
950 }
951 }
952 WriteLiteral(@" </select>
953
954 </div>
955 <div class=""col-6 pl-sm-0 pl-2"">
956 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count""");
957 BeginWriteAttribute("placeholder", " placeholder=\'", 145003, "\'", 145076, 1);
958 WriteAttributeValue("", 145017, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 145017, 59, false);
959 EndWriteAttribute();
960 BeginWriteAttribute("value", " value=\'", 145077, "\'", 145223, 1);
961 WriteAttributeValue("", 145085, !string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmax"]) ? Context.Current.Request.QueryString["boligarealmax"] : "", 145085, 138, false);
962 EndWriteAttribute();
963 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
964 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
965 WriteLiteral("</option>\r\n");
966 for (var i = 0; i <= 300; i += 10)
967 {
968 if (i == 300)
969 {
970 WriteLiteral(" <option>");
971 Write(i);
972 WriteLiteral("+</option>\r\n");
973 }
974 else
975 {
976 WriteLiteral(" <option>");
977 Write(i);
978 WriteLiteral("</option>\r\n");
979 }
980 }
981 WriteLiteral(@" </select>
982
983 </div>
984 </div>
985 </div>
986 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
987 <div class=""filter-container row"">
988 <label class=""d-block col-12"">");
989 Write(Translate("Smartpage:Search.Grundareal", "Grundareal"));
990 WriteLiteral(@"</label>
991 <div class=""col-6 pr-sm-0 pr-2"">
992 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count""");
993 BeginWriteAttribute("placeholder", " placeholder=\'", 147004, "\'", 147077, 1);
994 WriteAttributeValue("", 147018, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 147018, 59, false);
995 EndWriteAttribute();
996 BeginWriteAttribute("value", " value=\'", 147078, "\'", 147225, 1);
997 WriteAttributeValue("", 147086, !string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmin"]) ? Context.Current.Request.QueryString["grundarealmin"] : "", 147086, 139, false);
998 EndWriteAttribute();
999 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1000 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
1001 WriteLiteral("</option>\r\n");
1002 for (var i = 0; i <= 10000; i += 100)
1003 {
1004 if (i == 10000)
1005 {
1006 WriteLiteral(" <option>");
1007 Write(i);
1008 WriteLiteral("+</option>\r\n");
1009 }
1010 else
1011 {
1012 WriteLiteral(" <option>");
1013 Write(i);
1014 WriteLiteral("</option>\r\n");
1015 }
1016 }
1017 WriteLiteral(@" </select>
1018 </div>
1019 <div class=""col-6 pl-sm-0 pl-2"">
1020 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count""");
1021 BeginWriteAttribute("placeholder", " placeholder=\'", 148613, "\'", 148686, 1);
1022 WriteAttributeValue("", 148627, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 148627, 59, false);
1023 EndWriteAttribute();
1024 BeginWriteAttribute("value", " value=\'", 148687, "\'", 148834, 1);
1025 WriteAttributeValue("", 148695, !string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmax"]) ? Context.Current.Request.QueryString["grundarealmax"] : "", 148695, 139, false);
1026 EndWriteAttribute();
1027 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">");
1028 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
1029 WriteLiteral("</option>\r\n");
1030 for (var i = 0; i <= 10000; i += 100)
1031 {
1032 if (i == 10000)
1033 {
1034 WriteLiteral(" <option>");
1035 Write(i);
1036 WriteLiteral("+</option>\r\n");
1037 }
1038 else
1039 {
1040 WriteLiteral(" <option>");
1041 Write(i);
1042 WriteLiteral("</option>\r\n");
1043 }
1044 }
1045 WriteLiteral(@" </select>
1046 </div>
1047 </div>
1048 </div>
1049 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
1050 <div class=""filter-container row"">
1051 <label class=""d-block col-12"">Antal rum</label>
1052 <div class=""col-6 pr-sm-0 pr-2"">
1053 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count"">
1054 <option selected=""selected"" disabled=""disabled"">");
1055 Write(Translate("Smartpage:Search.Placeholder.Min", "Min"));
1056 WriteLiteral("</option>\r\n");
1057
1058 RenderSelectValue("1", "1", "roomsmin");
1059 RenderSelectValue("2", "2", "roomsmin");
1060 RenderSelectValue("3", "3", "roomsmin");
1061 RenderSelectValue("4", "4", "roomsmin");
1062 RenderSelectValue("5+", "5", "roomsmin");
1063 WriteLiteral(@" </select>
1064 </div>
1065 <div class=""col-6 pl-sm-0 pl-2"">
1066 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count"">
1067 <option selected=""selected"" disabled=""disabled"">");
1068 Write(Translate("Smartpage:Search.Placeholder.Max", "Max"));
1069 WriteLiteral("</option>\r\n");
1070
1071 RenderSelectValue("1", "1", "roomsmax");
1072 RenderSelectValue("2", "2", "roomsmax");
1073 RenderSelectValue("3", "3", "roomsmax");
1074 RenderSelectValue("4", "4", "roomsmax");
1075 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax");
1076 WriteLiteral(@" </select>
1077 </div>
1078 </div>
1079 </div>
1080 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
1081 <div class=""row"">
1082 <div class=""col-12 pr-2"">
1083 <div class=""filter-container"">
1084 <label class=""d-block"">Energimærke</label>
1085 <select name=""energylabel"" id=""energylabel"" class=""form-control reverse js-energylabel-select js-count"">
1086 <option selected=""selected"" disabled=""disabled"">");
1087 Write(Translate("Smartpage:Search.Vælg", "Vælg"));
1088 WriteLiteral(@"</option>
1089 <option value=""01"">G</option>
1090 <option value=""02"">F</option>
1091 <option value=""03"">E</option>
1092 <option value=""04"">D</option>
1093 <option value=""05"">C</option>
1094 <option value=""06"">B</option>
1095 <option value=""07"">A</option>
1096 <option value=""08"">A2010</option>
1097 <option value=""09"">A2015</option>
1098 <option value=""10"">A2020+</option>
1099 </select>
1100 </div>
1101 ");
1102 WriteLiteral(@" </div>
1103 </div>
1104 </div>
1105 <div class=""col-12 col-sm-6 col-lg-3 mt-3"">
1106 <h4");
1107 BeginWriteAttribute("class", " class=\"", 154633, "\"", 154641, 0);
1108 EndWriteAttribute();
1109 WriteLiteral("><b>");
1110 Write(Translate("Smartpage:Search.Økonomi", "Økonomi"));
1111 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">");
1112 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned"));
1113 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\"");
1114 BeginWriteAttribute("placeholder", " placeholder=\'", 155203, "\'", 155278, 1);
1115 WriteAttributeValue("", 155217, Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"), 155217, 61, false);
1116 EndWriteAttribute();
1117 BeginWriteAttribute("value", " value=\'", 155279, "\'", 155420, 1);
1118 WriteAttributeValue("", 155287, !string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymin"]) ? Context.Current.Request.QueryString["subsidymin"] : "", 155287, 133, false);
1119 EndWriteAttribute();
1120 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">");
1121 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"));
1122 WriteLiteral("</option>\r\n");
1123 for (var i = 0; i <= 25000; i += 1250)
1124 {
1125 if (i == 25000)
1126 {
1127 WriteLiteral(" <option");
1128 BeginWriteAttribute("value", " value=\"", 156064, "\"", 156093, 1);
1129 WriteAttributeValue("", 156072, Converter.ToInt32(i), 156072, 21, false);
1130 EndWriteAttribute();
1131 WriteLiteral(">");
1132 Write(Converter.ToInt32(i).ToString("N0"));
1133 WriteLiteral("+</option>\r\n");
1134 }
1135 else
1136 {
1137 WriteLiteral(" <option");
1138 BeginWriteAttribute("value", " value=\"", 156390, "\"", 156419, 1);
1139 WriteAttributeValue("", 156398, Converter.ToInt32(i), 156398, 21, false);
1140 EndWriteAttribute();
1141 WriteLiteral(">");
1142 Write(Converter.ToInt32(i).ToString("N0"));
1143 WriteLiteral("</option>\r\n");
1144 }
1145 }
1146 WriteLiteral(@" </select>
1147 </div>
1148 <div class=""col-6 pl-sm-0 pl-2"">
1149 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count""");
1150 BeginWriteAttribute("placeholder", " placeholder=\'", 156931, "\'", 157006, 1);
1151 WriteAttributeValue("", 156945, Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"), 156945, 61, false);
1152 EndWriteAttribute();
1153 BeginWriteAttribute("value", " value=\'", 157007, "\'", 157148, 1);
1154 WriteAttributeValue("", 157015, !string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymax"]) ? Context.Current.Request.QueryString["subsidymax"] : "", 157015, 133, false);
1155 EndWriteAttribute();
1156 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1157 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"));
1158 WriteLiteral("</option>\r\n");
1159 for (var i = 0; i <= 25000; i += 1250)
1160 {
1161 if (i == 25000)
1162 {
1163 WriteLiteral(" <option");
1164 BeginWriteAttribute("value", " value=\"", 157788, "\"", 157817, 1);
1165 WriteAttributeValue("", 157796, Converter.ToInt32(i), 157796, 21, false);
1166 EndWriteAttribute();
1167 WriteLiteral(">");
1168 Write(Convert.ToInt32(i).ToString("N0"));
1169 WriteLiteral("+</option>\r\n");
1170 }
1171 else
1172 {
1173 WriteLiteral(" <option");
1174 BeginWriteAttribute("value", " value=\"", 158112, "\"", 158141, 1);
1175 WriteAttributeValue("", 158120, Converter.ToInt32(i), 158120, 21, false);
1176 EndWriteAttribute();
1177 WriteLiteral(">");
1178 Write(Convert.ToInt32(i).ToString("N0"));
1179 WriteLiteral("</option>\r\n");
1180 }
1181 }
1182 WriteLiteral(@" </select>
1183 </div>
1184 </div>
1185 </div>
1186 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0"">
1187 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1188 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre"));
1189 WriteLiteral(@"</button>
1190 </div>
1191 </div>
1192 </div>
1193 </div>
1194 </div>
1195 <div class=""row d-block d-md-none form-wrapper no-gutters"">
1196 <div class=""col-xs-12 col-md-2"">
1197 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1198 Write(Translate("Smartpage:Search.Søg", "Søg"));
1199 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n");
1200 }
1201 else
1202 {
1203 WriteLiteral(@" <div class=""main-search-form center"">
1204 <i class=""fal fa-times float-right fa-2x js-close-search""></i>
1205 <div class=""row mb-3 align-items-center"">
1206 <div class=""col-xs-12 col-md-5 border-right"">
1207 <h3>");
1208 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
1209 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>");
1210 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg"));
1211 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\"");
1212 BeginWriteAttribute("value", " value=\'", 160255, "\'", 160276, 1);
1213 WriteAttributeValue("", 160263, searchPageId, 160263, 13, false);
1214 EndWriteAttribute();
1215 WriteLiteral(@" id=""searchPageId"" disabled=""disabled"" />
1216 <div class=""row form-wrapper no-gutters"">
1217
1218 <div class=""col-12 mb-10"">
1219 <div class=""searchbar"">
1220 <input type=""text""");
1221 BeginWriteAttribute("name", " name=\"", 160540, "\"", 160567, 1);
1222 WriteAttributeValue("", 160547, querySearchNameAttr, 160547, 20, false);
1223 EndWriteAttribute();
1224 WriteLiteral(" id=\"searchfield\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\"");
1225 BeginWriteAttribute("value", " value=\'", 160670, "\'", 160690, 1);
1226 WriteAttributeValue("", 160678, querySearch, 160678, 12, false);
1227 EndWriteAttribute();
1228 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom\" name=\"zipcodefrom\"");
1229 BeginWriteAttribute("value", " value=\'", 160784, "\'", 160809, 1);
1230 WriteAttributeValue("", 160792, queryZipCodeFrom, 160792, 17, false);
1231 EndWriteAttribute();
1232 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto\" name=\"zipcodeto\"");
1233 BeginWriteAttribute("value", " value=\'", 160899, "\'", 160922, 1);
1234 WriteAttributeValue("", 160907, queryZipCodeTo, 160907, 15, false);
1235 EndWriteAttribute();
1236 WriteLiteral(@" />
1237 </div>
1238 </div>
1239 <div class=""col-xs-12 col-md-8"">
1240 <div class=""row no-gutters"">
1241 <div class=""col-xs-12 col-md-6 input-col"">
1242 <div class=""dropdown"">
1243 <button class=""btn btn-dropdown dropdown-toggle reverse js-count"" type=""button"" id=""Boligtype"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
1244 ");
1245 Write(Translate("Smartpage:Search.Boligtype", "Boligtype"));
1246 WriteLiteral(@"
1247 </button>
1248 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
1249 <ul class=""bolig-dropdown list-unstyled"">
1250 ");
1251
1252 RenderBoligtypeCheckboxesDropdown();
1253 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">");
1254 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
1255 WriteLiteral(@"</button>
1256 </div>
1257
1258 </div>
1259
1260 </div>
1261 <div class=""col-xs-12 col-md-6 input-col"">
1262 <div class=""dropdown"">
1263 <button class=""btn btn-dropdown dropdown-toggle reverse"" type=""button"" id=""Pris"" data-toggle=""dropdown"" aria-haspopup=""true"" aria-expanded=""false"">
1264 ");
1265 Write(Translate("Smartpage:Search.Pris", "Pris"));
1266 WriteLiteral(@"
1267 </button>
1268 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris"">
1269 <input type=""text"" name=""pricemin"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input""");
1270 BeginWriteAttribute("placeholder", " placeholder=\'", 163164, "\'", 163241, 1);
1271 WriteAttributeValue("", 163178, Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"), 163178, 63, false);
1272 EndWriteAttribute();
1273 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1274 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"));
1275 WriteLiteral("</option>\r\n");
1276 for (var i = 0; i <= 10000000; i += 100000)
1277 {
1278 if (i == 10000000)
1279 {
1280 WriteLiteral(" <option");
1281 BeginWriteAttribute("value", " value=\"", 163878, "\"", 163888, 1);
1282 WriteAttributeValue("", 163886, i, 163886, 2, false);
1283 EndWriteAttribute();
1284 WriteLiteral(" data-value=\'");
1285 Write(Converter.ToInt32(i).ToString("N0"));
1286 WriteLiteral("+\'>");
1287 Write(Converter.ToInt32(i).ToString("N0"));
1288 WriteLiteral("+</option>\r\n");
1289 }
1290 else
1291 {
1292 WriteLiteral(" <option");
1293 BeginWriteAttribute("value", " value=\"", 164220, "\"", 164230, 1);
1294 WriteAttributeValue("", 164228, i, 164228, 2, false);
1295 EndWriteAttribute();
1296 WriteLiteral(" data-value=\'");
1297 Write(Converter.ToInt32(i).ToString("N0"));
1298 WriteLiteral("\'>");
1299 Write(Converter.ToInt32(i).ToString("N0"));
1300 WriteLiteral("</option>\r\n");
1301 }
1302 }
1303 WriteLiteral(" </select>\r\n\r\n <input type=\"text\" name=\"pricemax\" class=\"form-control js-auto-thousand js-pricemax-frontpage-input\"");
1304 BeginWriteAttribute("placeholder", " placeholder=\'", 164636, "\'", 164713, 1);
1305 WriteAttributeValue("", 164650, Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"), 164650, 63, false);
1306 EndWriteAttribute();
1307 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1308 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"));
1309 WriteLiteral("</option>\r\n");
1310 for (var i = 0; i <= 10000000; i += 100000)
1311 {
1312 if (i == 10000000)
1313 {
1314 WriteLiteral(" <option");
1315 BeginWriteAttribute("value", " value=\"", 165344, "\"", 165354, 1);
1316 WriteAttributeValue("", 165352, i, 165352, 2, false);
1317 EndWriteAttribute();
1318 WriteLiteral(" data-value=\'");
1319 Write(Converter.ToInt32(i).ToString("N0"));
1320 WriteLiteral("+\'>");
1321 Write(Converter.ToInt32(i).ToString("N0"));
1322 WriteLiteral("+</option>\r\n");
1323 }
1324 else
1325 {
1326 WriteLiteral(" <option");
1327 BeginWriteAttribute("value", " value=\"", 165686, "\"", 165696, 1);
1328 WriteAttributeValue("", 165694, i, 165694, 2, false);
1329 EndWriteAttribute();
1330 WriteLiteral(" data-value=\'");
1331 Write(Converter.ToInt32(i).ToString("N0"));
1332 WriteLiteral("\'>");
1333 Write(Converter.ToInt32(i).ToString("N0"));
1334 WriteLiteral("</option>\r\n");
1335 }
1336 }
1337 WriteLiteral(@" </select>
1338 </div>
1339 </div>
1340 </div>
1341 </div>
1342 </div>
1343 <div class=""col-xs-12 col-md-4 d-none d-md-block"">
1344 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1345 Write(Translate("Smartpage:Search.Søg", "Søg"));
1346 WriteLiteral(@"</button>
1347 </div>
1348 </div>
1349
1350 <div class=""row moresearch-btn no-gutters"">
1351 <div class=""col-sm-12"">
1352 <div class=""row align-items-center no-gutters"">
1353 <div class=""col-12 col-md-5"">
1354 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch-master"" aria-expanded=""false"" aria-controls=""moreSearch-master"">
1355 <span class=""moreSearch-text""><i class=""fas fa-plus open-close white""></i> <span class=""not-open white"">");
1356 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder"));
1357 WriteLiteral("</span> <span class=\"open white\"><span class=\"js-filter-count\">0</span> ");
1358 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt"));
1359 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\">");
1360 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg"));
1361 WriteLiteral(@"</a>
1362 </div>
1363 <div class=""col-6 col-md-4 mb-xs-4"">
1364 <div class=""parent-purchases"">
1365 <label class=""checkbox-container white"">
1366 ");
1367 Write(Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet"));
1368 WriteLiteral(@"
1369 <input type=""checkbox"" name=""foraeldrekoebegnet"" value=""true"" class=""js-input-check"">
1370 <span class=""checkmark grey""></span>
1371 </label>
1372 </div>
1373 </div>
1374 </div>
1375
1376 <div class=""collapse"" id=""moreSearch-master"">
1377
1378 <h4 class=""mt-20""><b>");
1379 Write(Translate("Smartpage:Search.Bolig", "Bolig"));
1380 WriteLiteral(@"</b></h4>
1381 <div class=""row align-items-end mb-30"">
1382 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1383 <div class=""filter-container row"">
1384 <label class=""d-block col-12"">");
1385 Write(Translate("Smartpage:Search.Boligareal", "Boligareal"));
1386 WriteLiteral(@"</label>
1387 <div class=""col-6 pr-sm-0 pr-2"">
1388 <input type=""text"" name=""boligarealmin"" id=""boligarealmin"" class=""form-control js-boligarealmin-frontpage-input js-count""");
1389 BeginWriteAttribute("placeholder", " placeholder=\'", 169153, "\'", 169226, 1);
1390 WriteAttributeValue("", 169167, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 169167, 59, false);
1391 EndWriteAttribute();
1392 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1393 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
1394 WriteLiteral("</option>\r\n");
1395 for (var i = 0; i <= 300; i += 10)
1396 {
1397 if (i == 300)
1398 {
1399 WriteLiteral(" <option>");
1400 Write(i);
1401 WriteLiteral("+</option>\r\n");
1402 }
1403 else
1404 {
1405 WriteLiteral(" <option>");
1406 Write(i);
1407 WriteLiteral("</option>\r\n");
1408 }
1409 }
1410 WriteLiteral(@" </select>
1411 </div>
1412 <div class=""col-6 pl-sm-0 pl-2"">
1413 <input type=""text"" name=""boligarealmax"" id=""boligarealmax"" class=""form-control js-boligarealmax-frontpage-input js-count""");
1414 BeginWriteAttribute("placeholder", " placeholder=\'", 170609, "\'", 170682, 1);
1415 WriteAttributeValue("", 170623, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 170623, 59, false);
1416 EndWriteAttribute();
1417 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1418 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
1419 WriteLiteral("</option>\r\n");
1420 for (var i = 0; i <= 300; i += 10)
1421 {
1422 if (i == 300)
1423 {
1424 WriteLiteral(" <option>");
1425 Write(i);
1426 WriteLiteral("+</option>\r\n");
1427 }
1428 else
1429 {
1430 WriteLiteral(" <option>");
1431 Write(i);
1432 WriteLiteral("</option>\r\n");
1433 }
1434 }
1435 WriteLiteral(@" </select>
1436 </div>
1437 </div>
1438 </div>
1439 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1440 <div class=""filter-container row"">
1441 <label class=""d-block col-12"">");
1442 Write(Translate("Smartpage:Search.Grundareal", "Grundareal"));
1443 WriteLiteral(@"</label>
1444 <div class=""col-6 pr-sm-0 pr-2"">
1445 <input type=""text"" name=""grundarealmin"" id=""grundarealmin"" class=""form-control js-grundarealmin-frontpage-input js-count""");
1446 BeginWriteAttribute("placeholder", " placeholder=\'", 172461, "\'", 172534, 1);
1447 WriteAttributeValue("", 172475, Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"), 172475, 59, false);
1448 EndWriteAttribute();
1449 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1450 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
1451 WriteLiteral("</option>\r\n");
1452 for (var i = 0; i <= 10000; i += 100)
1453 {
1454 if (i == 10000)
1455 {
1456 WriteLiteral(" <option");
1457 BeginWriteAttribute("value", " value=\"", 173174, "\"", 173203, 1);
1458 WriteAttributeValue("", 173182, Converter.ToInt32(i), 173182, 21, false);
1459 EndWriteAttribute();
1460 WriteLiteral(">");
1461 Write(Converter.ToInt32(i).ToString("N0"));
1462 WriteLiteral("+</option>\r\n");
1463 }
1464 else
1465 {
1466 WriteLiteral(" <option");
1467 BeginWriteAttribute("value", " value=\"", 173500, "\"", 173529, 1);
1468 WriteAttributeValue("", 173508, Converter.ToInt32(i), 173508, 21, false);
1469 EndWriteAttribute();
1470 WriteLiteral(">");
1471 Write(Converter.ToInt32(i).ToString("N0"));
1472 WriteLiteral("</option>\r\n");
1473 }
1474 }
1475 WriteLiteral(@" </select>
1476 </div>
1477 <div class=""col-6 pl-sm-0 pl-2"">
1478 <input type=""text"" name=""grundarealmax"" id=""grundarealmax"" class=""form-control js-grundarealmax-frontpage-input js-count""");
1479 BeginWriteAttribute("placeholder", " placeholder=\'", 174050, "\'", 174123, 1);
1480 WriteAttributeValue("", 174064, Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"), 174064, 59, false);
1481 EndWriteAttribute();
1482 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1483 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
1484 WriteLiteral("</option>\r\n");
1485 for (var i = 0; i <= 10000; i += 100)
1486 {
1487 if (i == 10000)
1488 {
1489 WriteLiteral(" <option");
1490 BeginWriteAttribute("value", " value=\"", 174754, "\"", 174783, 1);
1491 WriteAttributeValue("", 174762, Converter.ToInt32(i), 174762, 21, false);
1492 EndWriteAttribute();
1493 WriteLiteral(">");
1494 Write(Converter.ToInt32(i).ToString("N0"));
1495 WriteLiteral("+</option>\r\n");
1496 }
1497 else
1498 {
1499 WriteLiteral(" <option");
1500 BeginWriteAttribute("value", " value=\"", 175080, "\"", 175109, 1);
1501 WriteAttributeValue("", 175088, Converter.ToInt32(i), 175088, 21, false);
1502 EndWriteAttribute();
1503 WriteLiteral(">");
1504 Write(Converter.ToInt32(i).ToString("N0"));
1505 WriteLiteral("</option>\r\n");
1506 }
1507 }
1508 WriteLiteral(@" </select>
1509 </div>
1510 </div>
1511 </div>
1512 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1513 <div class=""filter-container row"">
1514 <label class=""d-block col-12"">Antal rum</label>
1515
1516 <div class=""col-6 pr-sm-0 pr-2"">
1517 <select name=""roomsmin"" id=""roomsmin"" class=""form-control reverse js-roomsmin-select js-count"">
1518 <option selected=""selected"" disabled=""disabled"">");
1519 Write(Translate("Smartpage:Search.Placeholder.Min", "Min"));
1520 WriteLiteral(@"</option>
1521 <option value=""1"">1</option>
1522 <option value=""2"">2</option>
1523 <option value=""3"">3</option>
1524 <option value=""4"">4</option>
1525 <option value=""5"">5+</option>
1526 </select>
1527 </div>
1528 <div class=""col-6 pl-sm-0 pl-2"">
1529 <select name=""roomsmax"" id=""roomsmax"" class=""form-control reverse js-roomsmax-select js-count"">
1530 <option selected=""selected"" disabled=""disabled"">");
1531 Write(Translate("Smartpage:Search.Placeholder.Max", "Max"));
1532 WriteLiteral(@"</option>
1533 <option value=""1"">1</option>
1534 <option value=""2"">2</option>
1535 <option value=""3"">3</option>
1536 <option value=""4"">4</option>
1537 <option value=""5"">5+</option>
1538 </select>
1539 </div>
1540 </div>
1541 </div>
1542 <div class=""col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"">
1543 <div class=""row"">
1544 <div class=""col-12 pr-2"">
1545 <div class=""filter-container"">
1546 <label class=""d-block"">Energimærke</label>
1547 ");
1548 WriteLiteral(" <select name=\"energylabel\" id=\"energylabel\" class=\"form-control reverse js-energylabel-select js-count\">\r\n <option disabled selected=\"selected\">");
1549 Write(Translate("Smartpage:Search.Vælg", "Vælg"));
1550 WriteLiteral(@"</option>
1551 <option value=""01"">G</option>
1552 <option value=""02"">F</option>
1553 <option value=""03"">E</option>
1554 <option value=""04"">D</option>
1555 <option value=""05"">C</option>
1556 <option value=""06"">B</option>
1557 <option value=""07"">A</option>
1558 <option value=""08"">A2010</option>
1559 <option value=""09"">A2015</option>
1560 <option value=""10"">A2020+</option>
1561 </select>
1562 </div>
1563 ");
1564 WriteLiteral(@" </div>
1565 </div>
1566 </div>
1567 <div class=""col-12 col-sm-6 col-lg-6 mt-3"">
1568 <h4");
1569 BeginWriteAttribute("class", " class=\"", 179615, "\"", 179623, 0);
1570 EndWriteAttribute();
1571 WriteLiteral("><b>");
1572 Write(Translate("Smartpage:Search.Økonomi", "Økonomi"));
1573 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">");
1574 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned"));
1575 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\"");
1576 BeginWriteAttribute("placeholder", " placeholder=\'", 180185, "\'", 180252, 1);
1577 WriteAttributeValue("", 180199, Translate("Smartpage:Search.Placeholder.Min", "Min"), 180199, 53, false);
1578 EndWriteAttribute();
1579 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"selected\" disabled=\"disabled\">");
1580 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"));
1581 WriteLiteral("</option>\r\n");
1582 for (var i = 0; i <= 25000; i += 1250)
1583 {
1584 if (i == 25000)
1585 {
1586 WriteLiteral(" <option");
1587 BeginWriteAttribute("value", " value=\"", 180896, "\"", 180925, 1);
1588 WriteAttributeValue("", 180904, Converter.ToInt32(i), 180904, 21, false);
1589 EndWriteAttribute();
1590 WriteLiteral(">");
1591 Write(Converter.ToInt32(i).ToString("N0"));
1592 WriteLiteral("+</option>\r\n");
1593 }
1594 else
1595 {
1596 WriteLiteral(" <option");
1597 BeginWriteAttribute("value", " value=\"", 181222, "\"", 181251, 1);
1598 WriteAttributeValue("", 181230, Converter.ToInt32(i), 181230, 21, false);
1599 EndWriteAttribute();
1600 WriteLiteral(">");
1601 Write(Converter.ToInt32(i).ToString("N0"));
1602 WriteLiteral("</option>\r\n");
1603 }
1604 }
1605 WriteLiteral(@" </select>
1606 </div>
1607 <div class=""col-6 pl-sm-0 pl-2"">
1608 <input type=""text"" name=""subsidymax"" id=""subsidymax"" class=""form-control js-subsidymax-frontpage-input js-count""");
1609 BeginWriteAttribute("placeholder", " placeholder=\'", 181763, "\'", 181830, 1);
1610 WriteAttributeValue("", 181777, Translate("Smartpage:Search.Placeholder.Max", "Max"), 181777, 53, false);
1611 EndWriteAttribute();
1612 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
1613 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"));
1614 WriteLiteral("</option>\r\n");
1615 for (var i = 0; i <= 25000; i += 1250)
1616 {
1617 if (i == 25000)
1618 {
1619 WriteLiteral(" <option");
1620 BeginWriteAttribute("value", " value=\"", 182470, "\"", 182499, 1);
1621 WriteAttributeValue("", 182478, Converter.ToInt32(i), 182478, 21, false);
1622 EndWriteAttribute();
1623 WriteLiteral(">");
1624 Write(Converter.ToInt32(i).ToString("N0"));
1625 WriteLiteral("+</option>\r\n");
1626 }
1627 else
1628 {
1629 WriteLiteral(" <option");
1630 BeginWriteAttribute("value", " value=\"", 182796, "\"", 182825, 1);
1631 WriteAttributeValue("", 182804, Converter.ToInt32(i), 182804, 21, false);
1632 EndWriteAttribute();
1633 WriteLiteral(">");
1634 Write(Converter.ToInt32(i).ToString("N0"));
1635 WriteLiteral("</option>\r\n");
1636 }
1637 }
1638 WriteLiteral(@" </select>
1639 </div>
1640 </div>
1641 </div>
1642 <div class=""col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0"">
1643 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
1644 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre"));
1645 WriteLiteral(@"</button>
1646 </div>
1647 </div>
1648 </div>
1649 </div>
1650 </div>
1651 <div class=""row d-block d-md-none form-wrapper no-gutters"">
1652 <div class=""col-xs-12 col-md-2"">
1653 <button type=""submit"" class=""btn btn-block btn-search dark-red""><i class=""fa fa-search""></i> ");
1654 Write(Translate("Smartpage:Search.Søg", "Søg"));
1655 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </form>\r\n </div>\r\n");
1656 }
1657 WriteLiteral(" </div>\r\n\r\n");
1658
1659 RenderSlideMenu(false, Convert.ToString(settings_Maeglersogning));
1660 WriteLiteral("\r\n");
1661 if (isBrokerPage)
1662 {
1663 WriteLiteral(" <section class=\"maegler-navbar\">\r\n ");
1664 Write(RenderNavigation(new
1665 {
1666 id = "navbar-main",
1667 cssclass = "dwnavigation",
1668 template = "ul_li.xslt",
1669 StartLevel = 1,
1670 EndLevel = 1
1671 }));
1672 WriteLiteral("\r\n </section>\r\n");
1673 }
1674 WriteLiteral("\r\n <div class=\"visual-editor\">\r\n");
1675 WriteLiteral("\r\n\r\n");
1676 WriteLiteral("\r\n");
1677 WriteLiteral("\r\n");
1678
1679 string listPageId = Converter.ToString(GetPageIdByNavigationTag("DynamicListFeed"));
1680 string parentPageId = Dynamicweb.Services.Pages.GetPage(Model.ID).Parent.ID.ToString();
1681 string topLayout = Model.Item.GetList("TopLayout") != null ? Model.Item.GetList("TopLayout").SelectedValue : "default";
1682 topLayout = topLayout == "default" && GetParentSettingsItem("ArticleTopLayout") != null ? GetParentSettingsItem("ArticleTopLayout").ToString().ToLower() : topLayout;
1683 string textLayout = Model.Item.GetList("TextLayout") != null ? Model.Item.GetList("TextLayout").SelectedValue : "default";
1684 textLayout = textLayout == "default" && GetParentSettingsItem("ArticleTextLayout") != null ? GetParentSettingsItem("ArticleTextLayout").ToString().ToLower() : textLayout;
1685 string imageLayout = Model.Item.GetList("ImageLayout") != null ? Model.Item.GetList("ImageLayout").SelectedValue : "default";
1686 imageLayout = imageLayout == "default" && GetParentSettingsItem("ArticleImageLayout") != null ? GetParentSettingsItem("ArticleImageLayout").ToString().ToLower() : imageLayout;
1687
1688 //string imageColumns = imageLayout == "straight" && textLayout != "full" ? "8" : "12";
1689 //string contentColumns = textLayout != "full" ? "8" : "12";
1690 string imageColumns = "12";
1691 string contentColumns = "12";
1692
1693 int externalParagraphId = Model.Item.GetItem("CTAParagraphLink") != null ? Model.Item.GetItem("CTAParagraphLink").ParagraphID : 0;
1694
1695 ArticleHeaderLayout headerLayout;
1696
1697 switch (topLayout)
1698 {
1699 case "default":
1700 headerLayout = ArticleHeaderLayout.Clean;
1701 break;
1702 case "split":
1703 headerLayout = ArticleHeaderLayout.Split;
1704 break;
1705 case "banner":
1706 headerLayout = ArticleHeaderLayout.Banner;
1707 break;
1708 case "overlay":
1709 headerLayout = ArticleHeaderLayout.Overlay;
1710 break;
1711 default:
1712 headerLayout = ArticleHeaderLayout.Clean;
1713 break;
1714 }
1715
1716
1717 Block articleContainer = new Block
1718 {
1719 Id = "ArticleContainer",
1720 SortId = 10,
1721 Design = new Design
1722 {
1723 RenderType = RenderType.Row
1724 },
1725 BlocksList = new List<Block> {
1726 new Block {
1727 Id = "ArticleBody",
1728 SortId = 30,
1729 Design = new Design {
1730 RenderType = RenderType.Column,
1731 Size = "12",
1732 HidePadding = true,
1733 CssClass = "margin-top-large"
1734 }
1735 }
1736 }
1737 };
1738 articlePage.Add(articleContainer);
1739
1740 ButtonLayout topBannerButtonLayout = ButtonLayout.Primary;
1741
1742 switch (Model.Item.GetString("ButtonDesign"))
1743 {
1744 case "primary":
1745 topBannerButtonLayout = ButtonLayout.Primary;
1746 break;
1747 case "secondary":
1748 topBannerButtonLayout = ButtonLayout.Secondary;
1749 break;
1750 case "teritary":
1751 topBannerButtonLayout = ButtonLayout.Tertiary;
1752 break;
1753 case "link":
1754 topBannerButtonLayout = ButtonLayout.Link;
1755 break;
1756 }
1757
1758 ArticleHeader topBanner = new ArticleHeader
1759 {
1760 Layout = headerLayout,
1761 Image = new Image { Path = Model.Item.GetFile("Image"), ImageDefault = new ImageSettings { Width = 1920, Height = 640 } },
1762 Heading = Model.Item.GetString("Title"),
1763 Subheading = Model.Item.GetString("Summary"),
1764 TextColor = "#fff",
1765 Author = Model.Item.GetString("Author"),
1766 Date = Model.Item.GetString("Date"),
1767 Category = GetArticleCategory(Model.ID),
1768 CategoryColor = GetArticleCategoryColor(Model.ID),
1769 Link = Model.Item.GetString("Link"),
1770 LinkText = Model.Item.GetString("LinkText"),
1771 ButtonLayout = topBannerButtonLayout,
1772 RatingScore = Model.Item.GetString("Rating") != null ? Converter.ToInt32(Model.Item.GetList("Rating").SelectedValue) : 0,
1773 RatingOutOf = Model.Item.GetString("Rating") != null ? Model.Item.GetList("Rating").Options.Count : 0,
1774 ExternalParagraphId = externalParagraphId
1775 };
1776
1777 Block articleTop = new Block
1778 {
1779 Id = "ArticleHead",
1780 SortId = 20,
1781 Component = topBanner,
1782 Design = new Design
1783 {
1784 RenderType = RenderType.Column,
1785 Size = "12",
1786 HidePadding = true,
1787 CssClass = "article-head"
1788 }
1789 };
1790 //articlePage.Add("ArticleContainer", articleTop);
1791
1792
1793 Block articleBodyRow = new Block
1794 {
1795 Id = "ArticleBodyRow",
1796 SortId = 10,
1797 SkipRenderBlocksList = true
1798 };
1799 articlePage.Add("ArticleBody", articleBodyRow);
1800
1801
1802 if (Model.Item.GetString("Paragraphs") != null)
1803 {
1804 int count = 0;
1805 foreach (var paragraph in Model.Item.GetItems("Paragraphs"))
1806 {
1807 if (!paragraph.GetBoolean("RenderAsQuote"))
1808 {
1809 string enableDropCap = Model.Item.GetString("EnableDropCap") != null ? Model.Item.GetList("EnableDropCap").SelectedValue.ToLower() : "default";
1810 enableDropCap = enableDropCap == "default" && GetParentSettingsItem("EnableDropCap") != null ? GetParentSettingsItem("EnableDropCap").ToString().ToLower() : enableDropCap;
1811 string text = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : "";
1812
1813 if (!String.IsNullOrEmpty(text) && enableDropCap == "true" && count == 0 && paragraph.GetString("Text").Substring(0, 3) == "<p>")
1814 {
1815 string firstLetter = paragraph.GetString("Text").Substring(3, 1);
1816 text = paragraph.GetString("Text").Remove(3, 1);
1817 text = text.Insert(3, "<span class=\"article__drop-cap\">" + firstLetter + "</span>");
1818 }
1819
1820 if (!String.IsNullOrEmpty(paragraph.GetString("Heading")))
1821 {
1822 Block articleParagraphHeader = new Block
1823 {
1824 Id = "ArticleParagraph" + count + "Heading",
1825 SortId = (count * 10) ,
1826 Component = new ArticleSubHeader { Title = paragraph.GetString("Heading") },
1827 Design = new Design
1828 {
1829 RenderType = RenderType.Column,
1830 Size = contentColumns,
1831 CssClass = "u-color-light--bg u-padding--lg"
1832 }
1833 };
1834 articlePage.Add("ArticleBodyRow", articleParagraphHeader);
1835 }
1836
1837 if (paragraph.GetFile("Image") != null)
1838 {
1839 string imageTitle = !string.IsNullOrEmpty(paragraph.GetString("Heading")) ? paragraph.GetString("Heading") : "";
1840
1841 Block articleParagraphImage = new Block
1842 {
1843 Id = "ArticleParagraph" + count + "Image",
1844 SortId = (count * 10) + 2,
1845 Design = new Design
1846 {
1847 RenderType = RenderType.Column,
1848 Size = imageColumns,
1849 CssClass = "u-color-light--bg u-padding--lg"
1850 }
1851 };
1852
1853 if (imageLayout == "banner")
1854 {
1855 ArticleBanner banner = new ArticleBanner
1856 {
1857 Image = new Image { Path = paragraph.GetFile("Image"), ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, Caption = paragraph.GetString("ImageCaption") },
1858 Heading = imageTitle,
1859 UseFilters = false
1860 };
1861 articleParagraphImage.Component = banner;
1862 }
1863 else
1864 {
1865 ArticleImage image = new ArticleImage
1866 {
1867 Image = new Image
1868 {
1869 Path = paragraph.GetFile("Image"),
1870 Title = imageTitle,
1871 ImageDefault = new ImageSettings { Height = 650, Width = 1300 },
1872 Caption = paragraph.GetString("ImageCaption"),
1873 CssClass = "u-full-width"
1874 }
1875 };
1876 articleParagraphImage.Component = image;
1877 }
1878
1879 articlePage.Add("ArticleBodyRow", articleParagraphImage);
1880 }
1881
1882 if (!String.IsNullOrEmpty(paragraph.GetString("VideoURL")))
1883 {
1884 Block articleParagraphVideo = new Block
1885 {
1886 Id = "ArticleParagraph" + count + "Video",
1887 SortId = (count * 10) + 3,
1888 Component = new ArticleVideo { Url = paragraph.GetString("VideoURL"), AutoPlay = "false" },
1889 Design = new Design
1890 {
1891 RenderType = RenderType.Column,
1892 Size = imageColumns,
1893 CssClass = "u-color-light--bg u-padding--lg"
1894 }
1895 };
1896 articlePage.Add("ArticleBodyRow", articleParagraphVideo);
1897 }
1898
1899 if (!String.IsNullOrEmpty(text))
1900 {
1901 Block articleParagraphText = new Block
1902 {
1903 Id = "ArticleParagraph" + count + "Text",
1904 SortId = (count * 10) + 3,
1905 Component = new ArticleText { Text = text },
1906 Design = new Design
1907 {
1908 RenderType = RenderType.Column,
1909 Size = contentColumns,
1910 CssClass = "u-color-light--bg u-padding--lg"
1911 }
1912 };
1913
1914 articlePage.Add("ArticleBodyRow", articleParagraphText);
1915 }
1916 }
1917 else
1918 {
1919 if (!String.IsNullOrEmpty(paragraph.GetString("Text")))
1920 {
1921 string quoteText = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : "";
1922 string quoteAuthor = paragraph.GetString("Heading") != null ? paragraph.GetString("Heading") : "";
1923
1924 Block articleParagraphQuote = new Block
1925 {
1926 Id = "ArticleParagraph" + count + "Quote",
1927 SortId = (count * 10) + 3,
1928 Component = new ArticleQuote { Image = new Image { Path = paragraph.GetFile("Image") }, Text = quoteText, Author = quoteAuthor },
1929 Design = new Design
1930 {
1931 RenderType = RenderType.Column,
1932 Size = contentColumns,
1933 CssClass = "u-color-light--bg u-padding--lg"
1934 }
1935 };
1936 articlePage.Add("ArticleBodyRow", articleParagraphQuote);
1937 }
1938 }
1939
1940 count++;
1941 }
1942 }
1943
1944 articleBodyRow.Component = new ArticleBodyRow { SubBlocks = articleBodyRow.BlocksList, TopLayout = topLayout, TextLayout = textLayout };
1945
1946
1947 //Related
1948 string showRelatedArtices = Model.Item.GetString("ShowRelatedArticles") != null ? Model.Item.GetList("ShowRelatedArticles").SelectedValue.ToLower() : "default";
1949 showRelatedArtices = showRelatedArtices == "default" && GetParentSettingsItem("ShowRelatedArticles") != null ? GetParentSettingsItem("ShowRelatedArticles").ToString().ToLower() : showRelatedArtices;
1950
1951 if (showRelatedArtices == "true")
1952 {
1953 Block articleRelated = new Block
1954 {
1955 Id = "ArticleRelated",
1956 SortId = 30,
1957 Component = new ArticleRelated { Title = Translate("Related articles"), FeedPageId = listPageId, Query = "sourceType=Page&sourcePage=" + parentPageId, PageSize = 4, CurrentPageId = Model.ID.ToString() },
1958 Design = new Design
1959 {
1960 RenderType = RenderType.Column,
1961 Size = "12"
1962 }
1963 };
1964 articlePage.Add("ArticleContainer", articleRelated);
1965 }
1966 WriteLiteral("\r\n\r\n");
1967 WriteLiteral("<section class=\"center-container content-container dw-mod\">\r\n ");
1968 Write(RenderBlockList(articlePage.BlocksRoot.BlocksList));
1969 WriteLiteral("\r\n</section>\r\n </div>\r\n\r\n");
1970 if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true)
1971 {
1972 string bName = MyBroker.Broker.Name;
1973 string bClass = "na";
1974 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png";
1975
1976 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName))
1977 {
1978 bName = MyBroker.Broker.CompanyName;
1979 }
1980 try
1981 {
1982 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl");
1983 if (!string.IsNullOrEmpty(imgUrl))
1984 {
1985 bImage = imgUrl;
1986 bClass = "";
1987 }
1988 }
1989 catch
1990 {
1991 // Ignore
1992 }
1993
1994 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId");
1995 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
1996
1997 WriteLiteral(" <section class=\"din-maegler\">\r\n <div");
1998 BeginWriteAttribute("class", " class=\"", 201619, "\"", 201646, 2);
1999 WriteAttributeValue("", 201627, "img-wrapper", 201627, 11, true);
2000 WriteAttributeValue(" ", 201638, bClass, 201639, 7, false);
2001 EndWriteAttribute();
2002 BeginWriteAttribute("style", " style=\"", 201647, "\"", 201686, 3);
2003 WriteAttributeValue("", 201655, "background-image:url(\'", 201655, 22, true);
2004 WriteAttributeValue("", 201677, bImage, 201677, 7, false);
2005 WriteAttributeValue("", 201684, "\')", 201684, 2, true);
2006 EndWriteAttribute();
2007 WriteLiteral(@"></div>
2008 <div class=""container"">
2009 <div class=""col-12 col-sm-12 col-md-6 offset-md-6"">
2010 <h2>Din personlige mægler</h2>
2011 <div class=""row"">
2012 <div class=""col-12 col-sm-6"">
2013 <p>
2014 <b class=""my-broker-name"">");
2015 Write(MyBroker.Employee.Name);
2016 WriteLiteral("</b><br>\r\n");
2017 if (!string.IsNullOrEmpty(MyBroker.Employee.Email))
2018 {
2019 WriteLiteral("Mail: <a");
2020 BeginWriteAttribute("href", " href=\"", 202243, "\"", 202303, 2);
2021 WriteAttributeValue("", 202250, "mailto:", 202250, 7, true);
2022 WriteAttributeValue("", 202257, ExtractMaskedEmail(MyBroker.Employee.Email), 202257, 46, false);
2023 EndWriteAttribute();
2024 WriteLiteral(" class=\"my-broker-email\">");
2025 Write(ExtractMaskedEmail(MyBroker.Employee.Email));
2026 WriteLiteral("</a><br>");
2027
2028 }
2029 if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile))
2030 {
2031 WriteLiteral("Tlf.: <a");
2032 BeginWriteAttribute("href", " href=\"", 202602, "\"", 202645, 2);
2033 WriteAttributeValue("", 202609, "tel:", 202609, 4, true);
2034 WriteAttributeValue("", 202613, MyBroker.Employee.PhoneMobile, 202613, 32, false);
2035 EndWriteAttribute();
2036 WriteLiteral(" class=\"my-broker-phone\">");
2037 Write(FormatPhoneNumber(MyBroker.Employee.PhoneMobile));
2038 WriteLiteral("</a>");
2039
2040 }
2041 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
2042 {
2043 WriteLiteral("Tlf.: <a");
2044 BeginWriteAttribute("href", " href=\"", 202945, "\"", 202984, 2);
2045 WriteAttributeValue("", 202952, "tel:", 202952, 4, true);
2046 WriteAttributeValue("", 202956, MyBroker.Broker.Telephone, 202956, 28, false);
2047 EndWriteAttribute();
2048 WriteLiteral(" class=\"my-broker-phone\">");
2049 Write(FormatPhoneNumber(MyBroker.Broker.Telephone));
2050 WriteLiteral("</a>");
2051
2052 }
2053 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\">");
2054 Write(bName);
2055 WriteLiteral("</b><br>\r\n <span class=\"my-broker-company-address\">");
2056 Write(MyBroker.Broker.Address);
2057 WriteLiteral("</span><br>\r\n <span class=\"my-broker-company-zip\">");
2058 Write(MyBroker.Broker.ZipCode);
2059 WriteLiteral("</span> <span class=\"my-broker-company-city\">");
2060 Write(MyBroker.Broker.City);
2061 WriteLiteral("</span><br>\r\n");
2062 if (!string.IsNullOrEmpty(bEmail))
2063 {
2064 WriteLiteral("Mail: <a");
2065 BeginWriteAttribute("href", " href=\"", 203773, "\"", 203796, 2);
2066 WriteAttributeValue("", 203780, "mailto:", 203780, 7, true);
2067 WriteAttributeValue("", 203787, bEmail, 203787, 9, false);
2068 EndWriteAttribute();
2069 WriteLiteral(" class=\"my-broker-broker-email\">");
2070 Write(bEmail);
2071 WriteLiteral("</a><br>");
2072
2073 }
2074 if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
2075 {
2076 WriteLiteral("Tlf.: <a");
2077 BeginWriteAttribute("href", " href=\"", 204061, "\"", 204100, 2);
2078 WriteAttributeValue("", 204068, "tel:", 204068, 4, true);
2079 WriteAttributeValue("", 204072, MyBroker.Broker.Telephone, 204072, 28, false);
2080 EndWriteAttribute();
2081 WriteLiteral(" class=\"my-broker-broker-phone\">");
2082 Write(FormatPhoneNumber(MyBroker.Broker.Telephone));
2083 WriteLiteral("</a>");
2084
2085 }
2086 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");
2087 BeginWriteAttribute("href", " href=\"", 204476, "\"", 204511, 2);
2088 WriteAttributeValue("", 204483, "/", 204483, 1, true);
2089 WriteAttributeValue("", 204484, medlemsnummer.Substring(1), 204484, 27, false);
2090 EndWriteAttribute();
2091 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");
2092 }
2093 WriteLiteral(" <footer>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n");
2094
2095 var navigationSettings = new NavigationSettings();
2096 navigationSettings.StartLevel = 1;
2097 navigationSettings.StopLevel = 3;
2098 navigationSettings.ExpandMode = ExpandMode.All;
2099 navigationSettings.RootAreaId = 1;
2100 navigationSettings.RootNavigationTag = "footer-nav";
2101
2102 WriteLiteral(" ");
2103 Write(Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings));
2104 WriteLiteral("\r\n </div>\r\n </div>\r\n </footer>\r\n\r\n");
2105 if (Model.CurrentUser?.ID <= 0)
2106 {
2107 WriteLiteral(" <div id=\"panel-login\" class=\"panel panel-form\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"panel-form\" aria-label=\"Close\">\r\n <b></b>\r\n </button>\r\n <div class=\"loginform login\">\r\n");
2108 if (loginParagraphId > 0)
2109 {
2110 WriteLiteral("\r\n ");
2111 Write(RenderParagraphContent(loginParagraphId));
2112 WriteLiteral("\r\n ");
2113
2114 }
2115 WriteLiteral(" </div>\r\n <div class=\"loginform register js-register-form-wrapper\" style=\"display: none;\">\r\n");
2116 if (createUserParagraphId > 0)
2117 {
2118 WriteLiteral("\r\n ");
2119 Write(RenderParagraphContent(createUserParagraphId));
2120 WriteLiteral("\r\n ");
2121
2122 }
2123 WriteLiteral(" </div>\r\n <div class=\"loginform forgotpw\" style=\"display: none;\">\r\n <h2 class=\"forgotpw-reg\">");
2124 Write(Translate("forgot-pw-reg-title", "Glemt adgangskode"));
2125 WriteLiteral("</h2>\r\n <h2 class=\"forgotpw-broker\">");
2126 Write(Translate("forgot-pw-broker-title", "Tilmeldt via. mægler"));
2127 WriteLiteral("</h2>\r\n <form id=\"forgotPwForm\" class=\"form-body\" method=\"post\"");
2128 BeginWriteAttribute("action", " action=\"", 206574, "\"", 206583, 0);
2129 EndWriteAttribute();
2130 WriteLiteral(">\r\n <input type=\"hidden\" id=\"AccessUserShopID\" name=\"AccessUserShopID\" value=\"SHOP6\" />\r\n <p class=\"forgotpw-reg\">");
2131 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."));
2132 WriteLiteral("</p>\r\n <p class=\"forgotpw-broker\">");
2133 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."));
2134 WriteLiteral(@"</p>
2135 <div class=""form-group"">
2136 <input id=""AccessUserEmail"" name=""AccessUserEmail"" type=""email"" pattern=""[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$"" placeholder=""E-mail"" class=""form-control"" required />
2137 </div>
2138 <button class=""btn btn-primary btn-block"" type=""submit"">");
2139 Write(Translate("forgot-pw-cta", "Nulstil adgangskode"));
2140 WriteLiteral("</button>\r\n <br />\r\n <div id=\"submitMessage\"></div>\r\n </form>\r\n </div>\r\n </div>\r\n");
2141 }
2142 WriteLiteral("\r\n");
2143 WriteLiteral("\r\n");
2144
2145 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");
2146 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>");
2147 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler"));
2148 WriteLiteral("</h2>\r\n <form id=\"form-koeberraadgivning\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>");
2149 Write(Translate("form-navn", "Navn"));
2150 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\" tabindex=\"1\"");
2151 BeginWriteAttribute("placeholder", " placeholder=\'", 208823, "\'", 208905, 1);
2152 WriteAttributeValue("", 208837, Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn"), 208837, 68, false);
2153 EndWriteAttribute();
2154 BeginWriteAttribute("value", " value=\'", 208906, "\'", 208945, 1);
2155 WriteAttributeValue("", 208914, UserContext.Current.User?.Name, 208914, 31, false);
2156 EndWriteAttribute();
2157 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2158 Write(Translate("form-email", "E-mail"));
2159 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\"");
2160 BeginWriteAttribute("placeholder", " placeholder=\'", 209222, "\'", 209307, 1);
2161 WriteAttributeValue("", 209236, Translate("Smartpage:Kontakt.Placeholder.Email", "Indtast din e-mail"), 209236, 71, false);
2162 EndWriteAttribute();
2163 BeginWriteAttribute("value", " value=\'", 209308, "\'", 209348, 1);
2164 WriteAttributeValue("", 209316, UserContext.Current.User?.Email, 209316, 32, false);
2165 EndWriteAttribute();
2166 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2167 Write(Translate("form-mobile", "Mobil nr."));
2168 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"3\" maxlength=\"20\" name=\"mobile\"");
2169 BeginWriteAttribute("placeholder", " placeholder=\'", 209659, "\'", 209744, 1);
2170 WriteAttributeValue("", 209673, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 209673, 71, false);
2171 EndWriteAttribute();
2172 BeginWriteAttribute("value", " value=\'", 209745, "\'", 209785, 1);
2173 WriteAttributeValue("", 209753, UserContext.Current.User?.Phone, 209753, 32, false);
2174 EndWriteAttribute();
2175 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2176 Write(Translate("form-telephone", "Telefon nr."));
2177 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" tabindex=\"4\" maxlength=\"20\" name=\"telefonnummer\"");
2178 BeginWriteAttribute("placeholder", " placeholder=\'", 210068, "\'", 210152, 1);
2179 WriteAttributeValue("", 210082, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 210082, 70, false);
2180 EndWriteAttribute();
2181 BeginWriteAttribute("value", " value=\'", 210153, "\'", 210194, 1);
2182 WriteAttributeValue("", 210161, UserContext.Current?.User?.Phone, 210161, 33, false);
2183 EndWriteAttribute();
2184 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <h3>");
2185 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"));
2186 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2187 Write(Translate("form-zip", "Post nr"));
2188 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\" tabindex=\"5\"");
2189 BeginWriteAttribute("placeholder", " placeholder=\'", 210602, "\'", 210680, 1);
2190 WriteAttributeValue("", 210616, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 210616, 64, false);
2191 EndWriteAttribute();
2192 BeginWriteAttribute("value", " value=\"", 210681, "\"", 210697, 1);
2193 WriteAttributeValue("", 210689, userZip, 210689, 8, false);
2194 EndWriteAttribute();
2195 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2196 Write(Translate("form-city", "By"));
2197 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>");
2198 Write(Translate("form-adresse", "Adresse"));
2199 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\" tabindex=\"6\"");
2200 BeginWriteAttribute("placeholder", " placeholder=\'", 211264, "\'", 211354, 1);
2201 WriteAttributeValue("", 211278, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 211278, 76, false);
2202 EndWriteAttribute();
2203 WriteLiteral(" required />\r\n\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2204 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2205 WriteLiteral(@"</label>
2206 </div>
2207 <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"">
2208 <strong class=""f-12""><i class=""fas fa-plus""></i> ");
2209 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar"));
2210 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\"");
2211 BeginWriteAttribute("placeholder", " placeholder=\'", 212148, "\'", 212226, 1);
2212 WriteAttributeValue("", 212162, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 212162, 64, false);
2213 EndWriteAttribute();
2214 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\">");
2215 Write(Translate("KontaktMægler", "Kontakt Mægler"));
2216 WriteLiteral(@"</button>
2217 </div>
2218 </div>
2219 </div>
2220 <div class=""form-group mt-3"">
2221 <div class=""checkbox"">
2222 <label>
2223 <input type=""checkbox"" name=""kontaktmigok"" required />
2224
2225 <span>");
2226 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2227 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2228 Write(privacyPolicyText);
2229 WriteLiteral(" <a");
2230 BeginWriteAttribute("href", " href=\"", 213039, "\"", 213063, 2);
2231 WriteAttributeValue("", 213046, "mailto:", 213046, 7, true);
2232 WriteAttributeValue("", 213053, termsMail, 213053, 10, false);
2233 EndWriteAttribute();
2234 WriteLiteral(">");
2235 Write(termsMail);
2236 WriteLiteral("</a>.\r\n Læs mere på <a");
2237 BeginWriteAttribute("href", " href=\"", 213108, "\"", 213142, 1);
2238 WriteAttributeValue("", 213115, settings_Persondatapolitik, 213115, 27, false);
2239 EndWriteAttribute();
2240 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n\r\n <input type=\"hidden\" name=\"fn\" value=\"krk\" />\r\n <input type=\"hidden\" name=\"origin\"");
2241 BeginWriteAttribute("value", " value=\"", 213288, "\"", 213296, 0);
2242 EndWriteAttribute();
2243 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2244 BeginWriteAttribute("value", " value=\"", 213346, "\"", 213354, 0);
2245 EndWriteAttribute();
2246 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2247 BeginWriteAttribute("value", " value=\"", 213402, "\"", 213426, 1);
2248 WriteAttributeValue("", 213410, Pageview.AreaID, 213410, 16, false);
2249 EndWriteAttribute();
2250 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\"");
2251 BeginWriteAttribute("value", " value=\"", 213475, "\"", 213491, 1);
2252 WriteAttributeValue("", 213483, butikId, 213483, 8, false);
2253 EndWriteAttribute();
2254 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2255 BeginWriteAttribute("value", " value=\"", 213545, "\"", 213553, 0);
2256 EndWriteAttribute();
2257 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2258 BeginWriteAttribute("value", " value=\"", 213604, "\"", 213612, 0);
2259 EndWriteAttribute();
2260 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2261 BeginWriteAttribute("value", " value=\"", 213662, "\"", 213670, 0);
2262 EndWriteAttribute();
2263 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-advisor\" style=\"display:none;\">\r\n <h2>");
2264 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2265 WriteLiteral("</h2>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2266 BeginWriteAttribute("src", " src=\"", 213903, "\"", 213909, 0);
2267 EndWriteAttribute();
2268 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2269 </div>
2270 <div class=""col-6"">
2271 <p class=""js-maegler-name""></p>
2272 <p class=""js-maegler-address""></p>
2273 <p class=""js-maegler-phone""></p>
2274 <p class=""js-maegler-mail""></p>
2275 </div>
2276 </div>
2277 <p>");
2278 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2279 WriteLiteral(@"</p>
2280 </div>
2281 </div>
2282
2283 <!--ÅBENT HUS-->
2284 <div id=""panel-aabenthus"" class=""panel panel-form"">
2285 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2286 <b></b>
2287 </button>
2288
2289
2290 <form id=""form-aabenthus"" method=""POST"" action=""/InboxHandler"">
2291 <h2>");
2292 Write(Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus"));
2293 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>");
2294 Write(Translate("Smarptage:Adresse", "Adresse:"));
2295 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>");
2296 Write(Translate("Smarptage:Date", "Dato:"));
2297 WriteLiteral("</strong> <label class=\"js-aabenthus-date mb-0\"></label>\r\n </div>\r\n <div class=\"d-block mb-4\">\r\n <strong>");
2298 Write(Translate("Smarptage:Time", "Tidspunkt:"));
2299 WriteLiteral("</strong> <label class=\"js-aabenthus-time mb-0\"></label>\r\n </div>\r\n <h3>");
2300 Write(Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger"));
2301 WriteLiteral("</h3>\r\n <div class=\"form-group\">\r\n <label for=\"aabenthus-name\"><strong>");
2302 Write(Translate("form-navn", "Navn"));
2303 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2304 BeginWriteAttribute("placeholder", " placeholder=\'", 215527, "\'", 215611, 1);
2305 WriteAttributeValue("", 215541, Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn"), 215541, 70, false);
2306 EndWriteAttribute();
2307 BeginWriteAttribute("value", " value=\'", 215612, "\'", 215652, 1);
2308 WriteAttributeValue("", 215620, UserContext.Current?.User?.Name, 215620, 32, false);
2309 EndWriteAttribute();
2310 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2311 Write(Translate("form-email", "E-mail"));
2312 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2313 BeginWriteAttribute("placeholder", " placeholder=\'", 215916, "\'", 216003, 1);
2314 WriteAttributeValue("", 215930, Translate("Smartpage:Aabenthus.Placeholder.Email", "Indtast din e-mail"), 215930, 73, false);
2315 EndWriteAttribute();
2316 BeginWriteAttribute("value", " value=\'", 216004, "\'", 216044, 1);
2317 WriteAttributeValue("", 216012, UserContext.Current.User?.Email, 216012, 32, false);
2318 EndWriteAttribute();
2319 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2320 Write(Translate("form-mobile", "Mobil nr."));
2321 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2322 BeginWriteAttribute("placeholder", " placeholder=\'", 216337, "\'", 216424, 1);
2323 WriteAttributeValue("", 216351, Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr."), 216351, 73, false);
2324 EndWriteAttribute();
2325 BeginWriteAttribute("value", " value=\'", 216425, "\'", 216465, 1);
2326 WriteAttributeValue("", 216433, UserContext.Current.User?.Phone, 216433, 32, false);
2327 EndWriteAttribute();
2328 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2329 Write(Translate("form-telephone", "Telefon nr."));
2330 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2331 BeginWriteAttribute("placeholder", " placeholder=\'", 216735, "\'", 216821, 1);
2332 WriteAttributeValue("", 216749, Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr."), 216749, 72, false);
2333 EndWriteAttribute();
2334 BeginWriteAttribute("value", " value=\'", 216822, "\'", 216862, 1);
2335 WriteAttributeValue("", 216830, UserContext.Current.User?.Phone, 216830, 32, false);
2336 EndWriteAttribute();
2337 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\">");
2338 Write(Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus"));
2339 WriteLiteral(@"</button>
2340 </div>
2341 </div>
2342 </div>
2343 <div class=""form-group"">
2344 <div class=""checkbox"">
2345 <label>
2346 <input type=""checkbox"" name=""kontaktmigok"" required />
2347
2348 <span class=""base-color"">");
2349 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2350 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n ");
2351 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>"));
2352 WriteLiteral("\r\n\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"ah\" />\r\n <input type=\"hidden\" name=\"origin\"");
2353 BeginWriteAttribute("value", " value=\"", 218025, "\"", 218033, 0);
2354 EndWriteAttribute();
2355 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2356 BeginWriteAttribute("value", " value=\"", 218083, "\"", 218098, 1);
2357 WriteAttributeValue("", 218091, userID, 218091, 7, false);
2358 EndWriteAttribute();
2359 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2360 BeginWriteAttribute("value", " value=\"", 218146, "\"", 218170, 1);
2361 WriteAttributeValue("", 218154, Pageview.AreaID, 218154, 16, false);
2362 EndWriteAttribute();
2363 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\"");
2364 BeginWriteAttribute("value", " value=\"", 218219, "\"", 218235, 1);
2365 WriteAttributeValue("", 218227, butikId, 218227, 8, false);
2366 EndWriteAttribute();
2367 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsaddresse\"");
2368 BeginWriteAttribute("value", " value=\"", 218289, "\"", 218297, 0);
2369 EndWriteAttribute();
2370 WriteLiteral(" class=\"js-aabenthus-address-input\" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2371 BeginWriteAttribute("value", " value=\"", 218386, "\"", 218394, 0);
2372 EndWriteAttribute();
2373 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2374 BeginWriteAttribute("value", " value=\"", 218445, "\"", 218453, 0);
2375 EndWriteAttribute();
2376 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2377 BeginWriteAttribute("value", " value=\"", 218503, "\"", 218511, 0);
2378 EndWriteAttribute();
2379 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2380 BeginWriteAttribute("value", " value=\"", 218561, "\"", 218569, 0);
2381 EndWriteAttribute();
2382 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"sagsnr\"");
2383 BeginWriteAttribute("value", " value=\"", 218617, "\"", 218625, 0);
2384 EndWriteAttribute();
2385 WriteLiteral(" class=\"js-sagsnr\" />\r\n <input type=\"hidden\" name=\"productId\"");
2386 BeginWriteAttribute("value", " value=\"", 218694, "\"", 218750, 1);
2387 WriteAttributeValue("", 218702, Dynamicweb.Context.Current.Request["ProductId"], 218702, 48, false);
2388 EndWriteAttribute();
2389 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"aftaleid\"");
2390 BeginWriteAttribute("value", " value=\"", 218800, "\"", 218808, 0);
2391 EndWriteAttribute();
2392 WriteLiteral(@" class=""js-aftaleid"" />
2393
2394 <input type=""hidden"" name=""dateMail"" class=""js-aabenthus-date-input"" />
2395 <input type=""hidden"" name=""timeMail"" class=""js-aabenthus-time-input"" />
2396 <input type=""hidden"" name=""brokerImageMail"" class=""property-broker-image-input"" />
2397 <input type=""hidden"" name=""employeeNameMail"" class=""js-maegler-employee-name-input"" />
2398 <input type=""hidden"" name=""employeeTitleMail"" class=""js-maegler-employee-title-input"" />
2399 <input type=""hidden"" name=""employeeMailMail"" class=""js-maegler-mail-input"" />
2400 <input type=""hidden"" name=""employeeMobileMail"" class=""js-maegler-mobile-input"" />
2401 <input type=""hidden"" name=""employeePhoneMail"" class=""js-maegler-phone-input"" />
2402
2403 <input type=""hidden"" name=""brokerNameMail"" class=""js-broker-name-input"" />
2404 <input type=""hidden"" name=""brokerAddressMail"" class=""js-broker-address-input"" />
2405 <input type=""hidden"" name=""brokerPhoneMail"" class=""js-broker-phone-input"" />
2406 </form>
2407 <di");
2408 WriteLiteral("v id=\"tak-aabenthus\" style=\"display:none;\">\r\n <h2>");
2409 Write(Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!"));
2410 WriteLiteral("</h2>\r\n <div class=\"d-block\">\r\n <strong>");
2411 Write(Translate("Smarptage:Adresse", "Adresse:"));
2412 WriteLiteral("</strong> <label class=\"js-aabenthus-address mb-0\"></label>\r\n </div>\r\n <div class=\"d-block\">\r\n <strong>");
2413 Write(Translate("Smarptage:Date", "Dato:"));
2414 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>");
2415 Write(Translate("Smarptage:Time", "Tidspunkt:"));
2416 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>");
2417 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>"));
2418 WriteLiteral("</p>\r\n </div>\r\n <div class=\"js-not-employee\">\r\n <p>");
2419 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"));
2420 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\"");
2421 BeginWriteAttribute("style", " style=\"", 221200, "\"", 221208, 0);
2422 EndWriteAttribute();
2423 WriteLiteral(@"></div>
2424
2425 </div>
2426 </div>
2427 <div class=""col-12"">
2428 <div class=""bg-base"">
2429
2430 <div class=""js-employee"">
2431 <h4 class=""js-maegler-employee-name""></h4>
2432 <div class=""icon-container"">
2433 <i class=""fas fa-envelope""></i> <span class=""js-maegler-mail""></span>
2434 </div>
2435 <div class=""icon-container"">
2436 <i class=""fas fa-phone""></i> <span class=""js-maegler-mobile""></span>
2437 </div>
2438 </div>
2439
2440
2441 <h4 class=""js-maegler-name""></h4>
2442 <div class=""icon-container"">
2443 <i class=""fas fa-map-marker-alt""></i> <span class=""js-maegler-address""></span>
2444 </div>
2445 <div class=""icon-container"">
2446 <i class=""fas fa-phone""></i> <span class=""js-maegler-phone""></span>");
2447 WriteLiteral(@"
2448
2449 </div>
2450 <a class=""btn btn-border"" onclick=""panelKontaktmaeglerGuldkoeber()"">KONTAKT MÆGLER</a>
2451 </div>
2452 </div>
2453 </div>
2454 </div>
2455 </div>
2456
2457 <!-- KONTAKT GULDKØBER -->
2458 <div id=""panel-kontakt-guldkoeber"" class=""panel panel-form"">
2459 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2460 <b></b>
2461 </button>
2462 <h2>");
2463 Write(Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler"));
2464 WriteLiteral("</h2>\r\n <form id=\"form-kontaktmaegler\" method=\"POST\" action=\"/InboxHandler\">\r\n <div class=\"form-group\">\r\n <label><strong>");
2465 Write(Translate("form-navn", "Navn"));
2466 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2467 BeginWriteAttribute("placeholder", " placeholder=\'", 222993, "\'", 223038, 1);
2468 WriteAttributeValue("", 223007, Translate("form-navn", "Navn"), 223007, 31, false);
2469 EndWriteAttribute();
2470 BeginWriteAttribute("value", " value=\'", 223039, "\'", 223078, 1);
2471 WriteAttributeValue("", 223047, UserContext.Current.User?.Name, 223047, 31, false);
2472 EndWriteAttribute();
2473 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2474 Write(Translate("form-email", "E-mail"));
2475 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2476 BeginWriteAttribute("placeholder", " placeholder=\'", 223342, "\'", 223390, 1);
2477 WriteAttributeValue("", 223356, Translate("form-email", "E-mail"), 223356, 34, false);
2478 EndWriteAttribute();
2479 BeginWriteAttribute("value", " value=\'", 223391, "\'", 223431, 1);
2480 WriteAttributeValue("", 223399, UserContext.Current.User?.Email, 223399, 32, false);
2481 EndWriteAttribute();
2482 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2483 Write(Translate("form-mobile", "Mobil nr."));
2484 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2485 BeginWriteAttribute("placeholder", " placeholder=\'", 223729, "\'", 223814, 1);
2486 WriteAttributeValue("", 223743, Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr."), 223743, 71, false);
2487 EndWriteAttribute();
2488 BeginWriteAttribute("value", " value=\'", 223815, "\'", 223855, 1);
2489 WriteAttributeValue("", 223823, UserContext.Current.User?.Phone, 223823, 32, false);
2490 EndWriteAttribute();
2491 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2492 Write(Translate("form-telephone", "Telefon nr."));
2493 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2494 BeginWriteAttribute("placeholder", " placeholder=\'", 224125, "\'", 224209, 1);
2495 WriteAttributeValue("", 224139, Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr."), 224139, 70, false);
2496 EndWriteAttribute();
2497 BeginWriteAttribute("value", " value=\'", 224210, "\'", 224250, 1);
2498 WriteAttributeValue("", 224218, UserContext.Current.User?.Phone, 224218, 32, false);
2499 EndWriteAttribute();
2500 WriteLiteral(" />\r\n </div>\r\n </div>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2501 Write(Translate("form-zip", "Post nr"));
2502 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\"");
2503 BeginWriteAttribute("placeholder", " placeholder=\'", 224566, "\'", 224644, 1);
2504 WriteAttributeValue("", 224580, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 224580, 64, false);
2505 EndWriteAttribute();
2506 BeginWriteAttribute("value", " value=\"", 224645, "\"", 224661, 1);
2507 WriteAttributeValue("", 224653, userZip, 224653, 8, false);
2508 EndWriteAttribute();
2509 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2510 Write(Translate("form-city", "By"));
2511 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>");
2512 Write(Translate("form-adresse", "Adresse"));
2513 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\"");
2514 BeginWriteAttribute("placeholder", " placeholder=\'", 225217, "\'", 225307, 1);
2515 WriteAttributeValue("", 225231, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 225231, 76, false);
2516 EndWriteAttribute();
2517 BeginWriteAttribute("value", " value=\"", 225308, "\"", 225328, 1);
2518 WriteAttributeValue("", 225316, userAddress, 225316, 12, false);
2519 EndWriteAttribute();
2520 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2521 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2522 WriteLiteral("</label>\r\n </div>\r\n <div class=\"form-group\">\r\n <textarea class=\"form-control\" name=\"besked\"");
2523 BeginWriteAttribute("placeholder", " placeholder=\'", 225654, "\'", 225732, 1);
2524 WriteAttributeValue("", 225668, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 225668, 64, false);
2525 EndWriteAttribute();
2526 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>");
2527 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2528 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\">");
2529 Write(Translate("KontaktMægler", "Kontakt Mægler"));
2530 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2531 Write(privacyPolicyText);
2532 WriteLiteral(" <a");
2533 BeginWriteAttribute("href", " href=\"", 226518, "\"", 226542, 2);
2534 WriteAttributeValue("", 226525, "mailto:", 226525, 7, true);
2535 WriteAttributeValue("", 226532, termsMail, 226532, 10, false);
2536 EndWriteAttribute();
2537 WriteLiteral(">");
2538 Write(termsMail);
2539 WriteLiteral("</a>.\r\n Læs mere på <a");
2540 BeginWriteAttribute("href", " href=\"", 226587, "\"", 226621, 1);
2541 WriteAttributeValue("", 226594, settings_Persondatapolitik, 226594, 27, false);
2542 EndWriteAttribute();
2543 WriteLiteral(">privatlivspolitikkerne</a>.\r\n </div>\r\n <input type=\"hidden\" name=\"fn\" value=\"gk\" />\r\n <input type=\"hidden\" name=\"origin\"");
2544 BeginWriteAttribute("value", " value=\"", 226764, "\"", 226772, 0);
2545 EndWriteAttribute();
2546 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2547 BeginWriteAttribute("value", " value=\"", 226822, "\"", 226837, 1);
2548 WriteAttributeValue("", 226830, userID, 226830, 7, false);
2549 EndWriteAttribute();
2550 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2551 BeginWriteAttribute("value", " value=\"", 226885, "\"", 226909, 1);
2552 WriteAttributeValue("", 226893, Pageview.AreaID, 226893, 16, false);
2553 EndWriteAttribute();
2554 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"butikId\"");
2555 BeginWriteAttribute("value", " value=\"", 226958, "\"", 226974, 1);
2556 WriteAttributeValue("", 226966, butikId, 226966, 8, false);
2557 EndWriteAttribute();
2558 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2559 BeginWriteAttribute("value", " value=\"", 227028, "\"", 227036, 0);
2560 EndWriteAttribute();
2561 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2562 BeginWriteAttribute("value", " value=\"", 227087, "\"", 227095, 0);
2563 EndWriteAttribute();
2564 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2565 BeginWriteAttribute("value", " value=\"", 227145, "\"", 227153, 0);
2566 EndWriteAttribute();
2567 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2568 BeginWriteAttribute("value", " value=\"", 227203, "\"", 227211, 0);
2569 EndWriteAttribute();
2570 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-kontakt-maegler-guldkoeber\" style=\"display:none;\">\r\n <h2>");
2571 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2572 WriteLiteral("</h2>\r\n <p>");
2573 Write(Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:"));
2574 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2575 BeginWriteAttribute("src", " src=\"", 227573, "\"", 227579, 0);
2576 EndWriteAttribute();
2577 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2578 </div>
2579 <div class=""col-6"">
2580 <p class=""js-maegler-name""></p>
2581 <p class=""js-maegler-address""></p>
2582 <p class=""js-maegler-phone""></p>
2583 <p class=""js-maegler-mail""></p>
2584 </div>
2585 </div>
2586 <p>");
2587 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2588 WriteLiteral(@"</p>
2589 </div>
2590 </div>
2591
2592 <!-- BESTIL SALGSVURDERING -->
2593 <div id=""panel-salgsvurdering"" class=""panel panel-form"">
2594 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2595 <b></b>
2596 </button>
2597
2598 <form id=""bestil-salgsvurdering"" class=""buyer-advisor-form js-buyer-advisor-form"" method=""POST"" action=""/InboxHandler"">
2599 <h2 class=""js-buyer-advisor-header"">");
2600 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering"));
2601 WriteLiteral("</h2>\r\n <p>");
2602 Write(Translate("form-salgsvurdering-beskrivelse", ""));
2603 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>");
2604 Write(Translate("form-navn", "Navn"));
2605 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2606 BeginWriteAttribute("placeholder", " placeholder=\'", 228736, "\'", 228825, 1);
2607 WriteAttributeValue("", 228750, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 228750, 75, false);
2608 EndWriteAttribute();
2609 BeginWriteAttribute("value", " value=\'", 228826, "\'", 228865, 1);
2610 WriteAttributeValue("", 228834, UserContext.Current.User?.Name, 228834, 31, false);
2611 EndWriteAttribute();
2612 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2613 Write(Translate("form-email", "E-mail"));
2614 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2615 BeginWriteAttribute("placeholder", " placeholder=\'", 229129, "\'", 229221, 1);
2616 WriteAttributeValue("", 229143, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 229143, 78, false);
2617 EndWriteAttribute();
2618 BeginWriteAttribute("value", " value=\'", 229222, "\'", 229262, 1);
2619 WriteAttributeValue("", 229230, UserContext.Current.User?.Email, 229230, 32, false);
2620 EndWriteAttribute();
2621 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2622 Write(Translate("form-mobile", "Mobil nr."));
2623 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2624 BeginWriteAttribute("placeholder", " placeholder=\'", 229560, "\'", 229652, 1);
2625 WriteAttributeValue("", 229574, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 229574, 78, false);
2626 EndWriteAttribute();
2627 BeginWriteAttribute("value", " value=\'", 229653, "\'", 229693, 1);
2628 WriteAttributeValue("", 229661, UserContext.Current.User?.Phone, 229661, 32, false);
2629 EndWriteAttribute();
2630 WriteLiteral(" required />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2631 Write(Translate("form-telephone", "Telefon nr."));
2632 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2633 BeginWriteAttribute("placeholder", " placeholder=\'", 229963, "\'", 230054, 1);
2634 WriteAttributeValue("", 229977, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 229977, 77, false);
2635 EndWriteAttribute();
2636 BeginWriteAttribute("value", " value=\'", 230055, "\'", 230095, 1);
2637 WriteAttributeValue("", 230063, UserContext.Current.User?.Phone, 230063, 32, false);
2638 EndWriteAttribute();
2639 WriteLiteral(" />\r\n </div>\r\n\r\n </div>\r\n\r\n <h3>");
2640 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"));
2641 WriteLiteral("</h3>\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2642 Write(Translate("form-zip", "Post nr"));
2643 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\"");
2644 BeginWriteAttribute("placeholder", " placeholder=\'", 230515, "\'", 230593, 1);
2645 WriteAttributeValue("", 230529, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 230529, 64, false);
2646 EndWriteAttribute();
2647 BeginWriteAttribute("value", " value=\"", 230594, "\"", 230610, 1);
2648 WriteAttributeValue("", 230602, userZip, 230602, 8, false);
2649 EndWriteAttribute();
2650 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2651 Write(Translate("form-city", "By"));
2652 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>");
2653 Write(Translate("form-adresse", "Adresse"));
2654 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\"");
2655 BeginWriteAttribute("placeholder", " placeholder=\'", 231164, "\'", 231254, 1);
2656 WriteAttributeValue("", 231178, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 231178, 76, false);
2657 EndWriteAttribute();
2658 BeginWriteAttribute("value", " value=\"", 231255, "\"", 231275, 1);
2659 WriteAttributeValue("", 231263, userAddress, 231263, 12, false);
2660 EndWriteAttribute();
2661 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2662 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2663 WriteLiteral(@"</label>
2664 </div>
2665
2666 <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"">
2667 <strong class=""f-12""><i class=""fas fa-plus""></i> ");
2668 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar"));
2669 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\"");
2670 BeginWriteAttribute("placeholder", " placeholder=\'", 232045, "\'", 232123, 1);
2671 WriteAttributeValue("", 232059, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 232059, 64, false);
2672 EndWriteAttribute();
2673 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>");
2674 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:"));
2675 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\"");
2676 BeginWriteAttribute("id", " id=\"", 232569, "\"", 232574, 0);
2677 EndWriteAttribute();
2678 WriteLiteral(" name=\"choose-broker\"");
2679 BeginWriteAttribute("value", " value=\"", 232596, "\"", 232604, 0);
2680 EndWriteAttribute();
2681 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\"");
2682 BeginWriteAttribute("for", " for=\"", 232670, "\"", 232676, 0);
2683 EndWriteAttribute();
2684 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");
2685 BeginWriteAttribute("src", " src=\"", 232922, "\"", 232928, 0);
2686 EndWriteAttribute();
2687 WriteLiteral(@" class=""img-fluid js-broker-image"">
2688 </div>
2689 <div class=""col-6"">
2690 <span class=""d-block"">
2691 <strong class=""js-choose-broker-name""></strong>
2692 </span>
2693 <span class=""js-choose-broker-address""></span>
2694 <input type=""hidden"" class=""js-choose-broker-phone""");
2695 BeginWriteAttribute("value", " value=\"", 233340, "\"", 233348, 0);
2696 EndWriteAttribute();
2697 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\"");
2698 BeginWriteAttribute("value", " value=\"", 233429, "\"", 233437, 0);
2699 EndWriteAttribute();
2700 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\">");
2701 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler"));
2702 WriteLiteral(@"</h3>
2703 <div class=""js-choose-broker col-12"">
2704 </div>
2705
2706 </div>
2707
2708 <div class=""form-group mt-4"">
2709 <div class=""checkbox"">
2710 <label>
2711 <input type=""checkbox"" name=""kontaktmigok"" required />
2712
2713 <span class=""consent-checkbox"">");
2714 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2715 WriteLiteral(@"</span>
2716
2717 </label>
2718 </div>
2719 </div>
2720 <div class=""form-group"">
2721 <div class=""row"">
2722 <div class=""col-12"">
2723 <button type=""submit"" class=""btn btn-green btn-block js-buyer-advisor-button"">");
2724 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering"));
2725 WriteLiteral("</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2726 Write(privacyPolicyText);
2727 WriteLiteral(" <a");
2728 BeginWriteAttribute("href", " href=\"", 234597, "\"", 234621, 2);
2729 WriteAttributeValue("", 234604, "mailto:", 234604, 7, true);
2730 WriteAttributeValue("", 234611, termsMail, 234611, 10, false);
2731 EndWriteAttribute();
2732 WriteLiteral(">");
2733 Write(termsMail);
2734 WriteLiteral("</a>.\r\n Læs mere på <a");
2735 BeginWriteAttribute("href", " href=\"", 234666, "\"", 234700, 1);
2736 WriteAttributeValue("", 234673, settings_Persondatapolitik, 234673, 27, false);
2737 EndWriteAttribute();
2738 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\"");
2739 BeginWriteAttribute("value", " value=\"", 234877, "\"", 234885, 0);
2740 EndWriteAttribute();
2741 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2742 BeginWriteAttribute("value", " value=\"", 234935, "\"", 234950, 1);
2743 WriteAttributeValue("", 234943, userID, 234943, 7, false);
2744 EndWriteAttribute();
2745 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2746 BeginWriteAttribute("value", " value=\"", 234998, "\"", 235022, 1);
2747 WriteAttributeValue("", 235006, Pageview.AreaID, 235006, 16, false);
2748 EndWriteAttribute();
2749 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning\" name=\"boligvisning\"");
2750 BeginWriteAttribute("value", " value=\"", 235094, "\"", 235102, 0);
2751 EndWriteAttribute();
2752 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-butikid\" name=\"butikId\"");
2753 BeginWriteAttribute("value", " value=\"", 235185, "\"", 235193, 0);
2754 EndWriteAttribute();
2755 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-sagsnr\" name=\"sagsnr\"");
2756 BeginWriteAttribute("value", " value=\"", 235274, "\"", 235282, 0);
2757 EndWriteAttribute();
2758 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\"");
2759 BeginWriteAttribute("value", " value=\"", 235333, "\"", 235389, 1);
2760 WriteAttributeValue("", 235341, Dynamicweb.Context.Current.Request["ProductId"], 235341, 48, false);
2761 EndWriteAttribute();
2762 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2763 BeginWriteAttribute("value", " value=\"", 235443, "\"", 235451, 0);
2764 EndWriteAttribute();
2765 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2766 BeginWriteAttribute("value", " value=\"", 235502, "\"", 235510, 0);
2767 EndWriteAttribute();
2768 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2769 BeginWriteAttribute("value", " value=\"", 235560, "\"", 235568, 0);
2770 EndWriteAttribute();
2771 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2772 BeginWriteAttribute("value", " value=\"", 235618, "\"", 235626, 0);
2773 EndWriteAttribute();
2774 WriteLiteral(" />\r\n <input class=\"js-value-check\" type=\"hidden\" name=\"valueCheck\"");
2775 BeginWriteAttribute("value", " value=\"", 235701, "\"", 235709, 0);
2776 EndWriteAttribute();
2777 WriteLiteral(" />\r\n <input class=\"js-green-appraisal\" type=\"hidden\" name=\"greenAppraisal\"");
2778 BeginWriteAttribute("value", " value=\"", 235792, "\"", 235800, 0);
2779 EndWriteAttribute();
2780 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>");
2781 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2782 WriteLiteral("</h2>\r\n <p>");
2783 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:"));
2784 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2785 BeginWriteAttribute("src", " src=\"", 236162, "\"", 236168, 0);
2786 EndWriteAttribute();
2787 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2788 </div>
2789 <div class=""col-6"">
2790 <p class=""js-maegler-name""></p>
2791 <p class=""js-maegler-address""></p>
2792 <p class=""js-maegler-phone""></p>
2793 <p class=""js-maegler-mail""></p>
2794 </div>
2795 </div>
2796 <p>");
2797 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
2798 WriteLiteral(@"</p>
2799 </div>
2800 </div>
2801
2802 <!-- BESTIL SALGSVURDERING GULDKØBER -->
2803 <div id=""panel-salgsvurdering-guldkoeber"" class=""panel panel-form"">
2804 <button type=""button"" class=""close"" data-dismiss=""panel-form"" aria-label=""Close"">
2805 <b></b>
2806 </button>
2807
2808 <form id=""bestil-salgsvurdering-guldkoeber"" method=""POST"" action=""/InboxHandler"">
2809 <h2>");
2810 Write(Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering"));
2811 WriteLiteral("</h2>\r\n <p>");
2812 Write(Translate("form-salgsvurdering-beskrivelse", ""));
2813 WriteLiteral("</p>\r\n <div class=\"form-group\">\r\n <label><strong>");
2814 Write(Translate("form-navn", "Navn"));
2815 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"text\" name=\"navn\"");
2816 BeginWriteAttribute("placeholder", " placeholder=\'", 237276, "\'", 237365, 1);
2817 WriteAttributeValue("", 237290, Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn"), 237290, 75, false);
2818 EndWriteAttribute();
2819 BeginWriteAttribute("value", " value=\'", 237366, "\'", 237405, 1);
2820 WriteAttributeValue("", 237374, UserContext.Current.User?.Name, 237374, 31, false);
2821 EndWriteAttribute();
2822 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label><strong>");
2823 Write(Translate("form-email", "E-mail"));
2824 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"email\" pattern=\"[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$\" name=\"email\"");
2825 BeginWriteAttribute("placeholder", " placeholder=\'", 237669, "\'", 237761, 1);
2826 WriteAttributeValue("", 237683, Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail"), 237683, 78, false);
2827 EndWriteAttribute();
2828 BeginWriteAttribute("value", " value=\'", 237762, "\'", 237802, 1);
2829 WriteAttributeValue("", 237770, UserContext.Current.User?.Email, 237770, 32, false);
2830 EndWriteAttribute();
2831 WriteLiteral(" required />\r\n </div>\r\n <div class=\"form-group row mb-4\">\r\n <div class=\"col-6\">\r\n <label><strong>");
2832 Write(Translate("form-telephone", "Telefon nr."));
2833 WriteLiteral("</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"telefonnummer\"");
2834 BeginWriteAttribute("placeholder", " placeholder=\'", 238111, "\'", 238202, 1);
2835 WriteAttributeValue("", 238125, Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr."), 238125, 77, false);
2836 EndWriteAttribute();
2837 BeginWriteAttribute("value", " value=\'", 238203, "\'", 238243, 1);
2838 WriteAttributeValue("", 238211, UserContext.Current.User?.Phone, 238211, 32, false);
2839 EndWriteAttribute();
2840 WriteLiteral(" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label><strong>");
2841 Write(Translate("form-mobile", "Mobil nr."));
2842 WriteLiteral("*</strong></label>\r\n <input class=\"form-control\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"20\" name=\"mobile\"");
2843 BeginWriteAttribute("placeholder", " placeholder=\'", 238493, "\'", 238585, 1);
2844 WriteAttributeValue("", 238507, Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr."), 238507, 78, false);
2845 EndWriteAttribute();
2846 BeginWriteAttribute("value", " value=\'", 238586, "\'", 238626, 1);
2847 WriteAttributeValue("", 238594, UserContext.Current.User?.Phone, 238594, 32, false);
2848 EndWriteAttribute();
2849 WriteLiteral(" required />\r\n </div>\r\n </div>\r\n\r\n <h3>");
2850 Write(Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"));
2851 WriteLiteral("</h3>\r\n\r\n <div class=\"form-group row\">\r\n <div class=\"col-4\">\r\n <label><strong>");
2852 Write(Translate("form-zip", "Post nr"));
2853 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-postnummer js-updatebroker-list\" type=\"tel\" pattern=\"^[0-9]*$\" maxlength=\"4\" name=\"postnummer\"");
2854 BeginWriteAttribute("placeholder", " placeholder=\'", 239055, "\'", 239133, 1);
2855 WriteAttributeValue("", 239069, Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr"), 239069, 64, false);
2856 EndWriteAttribute();
2857 BeginWriteAttribute("value", " value=\"", 239134, "\"", 239150, 1);
2858 WriteAttributeValue("", 239142, userZip, 239142, 8, false);
2859 EndWriteAttribute();
2860 WriteLiteral(" required />\r\n <input type=\"hidden\" class=\"js-postnummer-validation\" />\r\n </div>\r\n <div class=\"col-8\">\r\n <label><strong>");
2861 Write(Translate("form-city", "By"));
2862 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>");
2863 Write(Translate("form-adresse", "Adresse"));
2864 WriteLiteral("*</strong></label>\r\n <input class=\"form-control js-validate-address\" type=\"text\" name=\"adresse\"");
2865 BeginWriteAttribute("placeholder", " placeholder=\'", 239704, "\'", 239794, 1);
2866 WriteAttributeValue("", 239718, Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse"), 239718, 76, false);
2867 EndWriteAttribute();
2868 BeginWriteAttribute("value", " value=\"", 239795, "\"", 239815, 1);
2869 WriteAttributeValue("", 239803, userAddress, 239803, 12, false);
2870 EndWriteAttribute();
2871 WriteLiteral(" required />\r\n <label class=\"form-validate-error js-address-error d-none\" for=\"adresse\">");
2872 Write(Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse"));
2873 WriteLiteral(@"</label>
2874 </div>
2875
2876 <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"">
2877 <strong class=""f-12""><i class=""fas fa-plus""></i> ");
2878 Write(Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar"));
2879 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\"");
2880 BeginWriteAttribute("placeholder", " placeholder=\'", 240585, "\'", 240663, 1);
2881 WriteAttributeValue("", 240599, Translate("form-besked-max", "Skriv en besked på max 150 tegn"), 240599, 64, false);
2882 EndWriteAttribute();
2883 WriteLiteral(" maxlength=\"150\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"salgsvurdering-precheck\">\r\n <h3>");
2884 Write(Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:"));
2885 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\"");
2886 BeginWriteAttribute("id", " id=\"", 241107, "\"", 241112, 0);
2887 EndWriteAttribute();
2888 WriteLiteral(" name=\"choose-broker-gk\"");
2889 BeginWriteAttribute("value", " value=\"", 241137, "\"", 241145, 0);
2890 EndWriteAttribute();
2891 WriteLiteral(" checked>\r\n <label class=\"js-broker-label\"");
2892 BeginWriteAttribute("for", " for=\"", 241211, "\"", 241217, 0);
2893 EndWriteAttribute();
2894 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");
2895 BeginWriteAttribute("src", " src=\"", 241463, "\"", 241469, 0);
2896 EndWriteAttribute();
2897 WriteLiteral(@" class=""img-fluid js-broker-image"">
2898 </div>
2899 <div class=""col-6"">
2900 <span class=""d-block"">
2901 <strong class=""js-choose-broker-name""></strong>
2902 </span>
2903 <span class=""js-choose-broker-address""></span>
2904 <input type=""hidden"" class=""js-choose-broker-phone""");
2905 BeginWriteAttribute("value", " value=\"", 241881, "\"", 241889, 0);
2906 EndWriteAttribute();
2907 WriteLiteral(" />\r\n <input type=\"hidden\" class=\"js-choose-broker-email\"");
2908 BeginWriteAttribute("value", " value=\"", 241970, "\"", 241978, 0);
2909 EndWriteAttribute();
2910 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\">");
2911 Write(Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler"));
2912 WriteLiteral(@"</h3>
2913 <div class=""js-choose-broker col-12"">
2914 </div>
2915
2916 </div>
2917
2918
2919 <div class=""form-group"">
2920 <div class=""row"">
2921 <div class=""col-12"">
2922 <button type=""submit"" class=""btn btn-green btn-block"">");
2923 Write(Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering"));
2924 WriteLiteral(@"</button>
2925 </div>
2926 </div>
2927 </div>
2928 <div class=""form-group"">
2929 <div class=""checkbox"">
2930 <label>
2931 <input type=""checkbox"" name=""kontaktmigok"" required />
2932
2933 <span>");
2934 Write(Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *"));
2935 WriteLiteral("</span>\r\n\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group form-group-terms\">\r\n ");
2936 Write(privacyPolicyText);
2937 WriteLiteral(" <a");
2938 BeginWriteAttribute("href", " href=\"", 243086, "\"", 243110, 2);
2939 WriteAttributeValue("", 243093, "mailto:", 243093, 7, true);
2940 WriteAttributeValue("", 243100, termsMail, 243100, 10, false);
2941 EndWriteAttribute();
2942 WriteLiteral(">");
2943 Write(termsMail);
2944 WriteLiteral("</a>.\r\n Læs mere på <a");
2945 BeginWriteAttribute("href", " href=\"", 243155, "\"", 243189, 1);
2946 WriteAttributeValue("", 243162, settings_Persondatapolitik, 243162, 27, false);
2947 EndWriteAttribute();
2948 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\"");
2949 BeginWriteAttribute("value", " value=\"", 243366, "\"", 243374, 0);
2950 EndWriteAttribute();
2951 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"brugerId\"");
2952 BeginWriteAttribute("value", " value=\"", 243424, "\"", 243439, 1);
2953 WriteAttributeValue("", 243432, userID, 243432, 7, false);
2954 EndWriteAttribute();
2955 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"areaid\"");
2956 BeginWriteAttribute("value", " value=\"", 243487, "\"", 243511, 1);
2957 WriteAttributeValue("", 243495, Pageview.AreaID, 243495, 16, false);
2958 EndWriteAttribute();
2959 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"boligvisning-gk\" name=\"boligvisning\"");
2960 BeginWriteAttribute("value", " value=\"", 243586, "\"", 243594, 0);
2961 EndWriteAttribute();
2962 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-butikid\" name=\"butikId\"");
2963 BeginWriteAttribute("value", " value=\"", 243680, "\"", 243688, 0);
2964 EndWriteAttribute();
2965 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"panel-salgsvurdering-gk-sagsnr\" name=\"sagsnr\"");
2966 BeginWriteAttribute("value", " value=\"", 243772, "\"", 243780, 0);
2967 EndWriteAttribute();
2968 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"productId\"");
2969 BeginWriteAttribute("value", " value=\"", 243831, "\"", 243887, 1);
2970 WriteAttributeValue("", 243839, Dynamicweb.Context.Current.Request["ProductId"], 243839, 48, false);
2971 EndWriteAttribute();
2972 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"ejendomstype\"");
2973 BeginWriteAttribute("value", " value=\"", 243941, "\"", 243949, 0);
2974 EndWriteAttribute();
2975 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"salgspris\"");
2976 BeginWriteAttribute("value", " value=\"", 244000, "\"", 244008, 0);
2977 EndWriteAttribute();
2978 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"employee\"");
2979 BeginWriteAttribute("value", " value=\"", 244058, "\"", 244066, 0);
2980 EndWriteAttribute();
2981 WriteLiteral(" />\r\n <input type=\"hidden\" name=\"modtager\"");
2982 BeginWriteAttribute("value", " value=\"", 244116, "\"", 244124, 0);
2983 EndWriteAttribute();
2984 WriteLiteral(" />\r\n </form>\r\n <div id=\"tak-salgsvurdering\" style=\"display:none;\">\r\n <h2>");
2985 Write(Translate("TakForDinInteresse", "Tak for din interesse"));
2986 WriteLiteral("</h2>\r\n <p>");
2987 Write(Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:"));
2988 WriteLiteral("</p>\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <img");
2989 BeginWriteAttribute("src", " src=\"", 244486, "\"", 244492, 0);
2990 EndWriteAttribute();
2991 WriteLiteral(@" class=""img-fluid js-maegler-img"" />
2992 </div>
2993 <div class=""col-6"">
2994 <p class=""js-maegler-name""></p>
2995 <p class=""js-maegler-address""></p>
2996 <p class=""js-maegler-phone""></p>
2997 <p class=""js-maegler-mail""></p>
2998 </div>
2999 </div>
3000 <p>");
3001 Write(Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt"));
3002 WriteLiteral("</p>\r\n </div>\r\n</div>\r\n\r\n\r\n <div class=\"overlay-wrapper\"></div>\r\n <div class=\"dropdown-overlay\"></div>\r\n <div class=\"loader-inner ball-pulse\"></div>\r\n\r\n");
3003
3004 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js"));
3005 WriteLiteral(" <script type=\"text/javascript\"");
3006 BeginWriteAttribute("src", " src=\'", 245293, "\'", 245397, 3);
3007 WriteAttributeValue("", 245299, TemplateUrl, 245299, 14, false);
3008 WriteAttributeValue("", 245313, "assets/webpack/js/3rdparty/viamapstrap.js?", 245313, 42, true);
3009 WriteAttributeValue("", 245355, viamapstrapFileInfo.LastWriteTime.Ticks, 245355, 42, false);
3010 EndWriteAttribute();
3011 WriteLiteral(" async></script>\r\n");
3012
3013 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js"));
3014 WriteLiteral(" <script type=\"text/javascript\"");
3015 BeginWriteAttribute("src", " src=\'", 245600, "\'", 245687, 3);
3016 WriteAttributeValue("", 245606, TemplateUrl, 245606, 14, false);
3017 WriteAttributeValue("", 245620, "assets/dist/bundle.app.min.js?", 245620, 30, true);
3018 WriteAttributeValue("", 245650, bundleFileInfo.LastWriteTime.Ticks, 245650, 37, false);
3019 EndWriteAttribute();
3020 WriteLiteral(" async></script>\r\n");
3021 WriteLiteral("\r\n ");
3022 Write(RenderSnippet("JavaScriptBottom"));
3023 WriteLiteral("\r\n\r\n");
3024 if (Context.Current.Request.QueryString["ShowLogin"] == "true")
3025 {
3026 WriteLiteral(" <input class=\"js-showLogin\" value=\"true\" />\r\n");
3027 }
3028 WriteLiteral("\r\n");
3029 if (!string.IsNullOrEmpty(settings_ConduzeId))
3030 {
3031 WriteLiteral(" <script type=\"text/javascript\" id=\"conduze-sdk\"");
3032 BeginWriteAttribute("src", " src=\"", 246011, "\"", 246072, 3);
3033 WriteAttributeValue("", 246017, "https://cdn.conduze.com/", 246017, 24, true);
3034 WriteAttributeValue("", 246041, settings_ConduzeId, 246041, 19, false);
3035 WriteAttributeValue("", 246060, "/tracking.js", 246060, 12, true);
3036 EndWriteAttribute();
3037 WriteLiteral(" async></script>\r\n");
3038 }
3039 WriteLiteral("\r\n");
3040 if (!string.IsNullOrEmpty(settings_Weply))
3041 {
3042 WriteLiteral(" <script");
3043 BeginWriteAttribute("src", " src=\"", 246171, "\"", 246222, 2);
3044 WriteAttributeValue("", 246177, "https://app.weply.chat/widget/", 246177, 30, true);
3045 WriteAttributeValue("", 246207, settings_Weply, 246207, 15, false);
3046 EndWriteAttribute();
3047 WriteLiteral(" async></script>\r\n");
3048 }
3049 WriteLiteral("\r\n</body>\r\n</html>\r\n\r\n");
3050 }
3051 #pragma warning restore 1998
3052
3053 void RenderErhvervsTypeCheckboxes(string productGroupFilter)
3054 {
3055 WriteLiteral(@" <div class=""col-xs-6 col-md-4"">
3056 <div class=""checkbox"">
3057 <label>
3058 <input type=""checkbox"" name=""propertytype"" value=""bolig/erhverv, kombineret erhverv og bolig, byejendom (kontor, butik, beboelse)"" />
3059 <span>Bolig/erhverv</span>
3060 </label>
3061 </div>
3062 <div class=""checkbox"">
3063 <label>
3064 <input type=""checkbox"" name=""propertytype"" value=""erhvervsgrund"" />
3065 <span>Erhvervsgrund</span>
3066 </label>
3067 </div>
3068 <div class=""checkbox"">
3069 <label>
3070 <input type=""checkbox"" name=""propertytype"" value=""boligudlejning"" />
3071 <span>Boligudlejningsejendom</span>
3072 </label>
3073 </div>
3074 <div class=""checkbox"">
3075 <label>
3076 <input type=""checkbox"" name=""propertytype"" value=""kontor, klinik, kontorhotel, showroom, under");
3077 WriteLiteral(@"visningslokaler"" />
3078 <span>Kontor</span>
3079 </label>
3080 </div>
3081 </div>
3082 <div class=""col-xs-6 col-md-4"">
3083 <div class=""checkbox"">
3084 <label>
3085 <input type=""checkbox"" name=""propertytype"" value=""butik / detail, butik / detailhandel"" />
3086 <span>Butik/detailhandel</span>
3087 </label>
3088 </div>
3089 <div class=""checkbox"">
3090 <label>
3091 <input type=""checkbox"" name=""propertytype"" value=""industri / logistik, håndværk, industri, kontor / lager, logistik"" />
3092 <span>Produktion/lager</span>
3093 </label>
3094 </div>
3095 <div class=""checkbox"">
3096 <label>
3097 <input type=""checkbox"" name=""propertytype"" value=""hotel - kursusejendom, restaurant"" />
3098 <span>Hotel og restaurant</span>
3099 </label>
3100 </div>
3101 <div c");
3102 WriteLiteral(@"lass=""checkbox"">
3103 <label>
3104 <input type=""checkbox"" name=""propertytype"" value=""projekt ejendom"" />
3105 <span>Projektejendom</span>
3106 </label>
3107 </div>
3108 </div>
3109 <div class=""col-xs-6 col-md-4"">
3110 <div class=""checkbox"">
3111 <label>
3112 <input type=""checkbox"" name=""propertytype"" value=""andet"" />
3113 <span>Andet</span>
3114 </label>
3115 </div>
3116 </div>
3117 ");
3118 WriteLiteral(" <input type=\"hidden\" name=\"propertycategory\" value=\"erhverv, udlejning\" />\r\n <input type=\"hidden\" name=\"filtrering\"");
3119 BeginWriteAttribute("value", " value=\"", 3445, "\"", 3472, 1);
3120 WriteAttributeValue("", 3453, productGroupFilter, 3453, 19, false);
3121 EndWriteAttribute();
3122 WriteLiteral(" />\r\n");
3123 }
3124 void RenderBoligtypeCheckboxes()
3125 {
3126 WriteLiteral(@" <div class=""col-6 col-md-4"">
3127 <div class=""checkbox"">
3128 <label>
3129 <input type=""checkbox"" name=""propertytype"" value=""villa"" />
3130 <span>Villa</span>
3131 </label>
3132 </div>
3133 <div class=""checkbox"">
3134 <label>
3135 <input type=""checkbox"" name=""propertytype"" value=""rækkehus"" />
3136 <span>Rækkehus</span>
3137 </label>
3138 </div>
3139 <div class=""checkbox"">
3140 <label>
3141 <input type=""checkbox"" name=""propertytype"" value=""villalejlighed"" />
3142 <span>Villalejlighed</span>
3143 </label>
3144 </div>
3145 <div class=""checkbox"">
3146 <label>
3147 <input type=""checkbox"" name=""propertytype"" value=""andelsbolig"" />
3148 <span>Andelsbolig</span>
3149 </label>
3150 </div>
3151 </div>
3152 <div class=""co");
3153 WriteLiteral(@"l-6 col-md-4"">
3154 <div class=""checkbox"">
3155 <label>
3156 <input type=""checkbox"" name=""propertytype"" value=""fritidshus, fritidsbolig"" />
3157 <span>Fritidsbolig</span>
3158 </label>
3159 </div>
3160 <div class=""checkbox"">
3161 <label>
3162 <input type=""checkbox"" name=""propertytype"" value=""ejerlejlighed"" class=""specialOption"" data-disable-slider=""#grundareal"" data-disable-slider-ranges=""#grundarealmin,#grundarealmax"" />
3163 <span>Ejerlejlighed</span>
3164 </label>
3165 </div>
3166 <div class=""checkbox"">
3167 <label>
3168 <input type=""checkbox"" name=""propertytype"" value=""helårsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" />
3169 <span>Helårsgrund</span>
3170 </label>
3171 </div>
3172 <div ");
3173 WriteLiteral(@"class=""checkbox"">
3174 <label>
3175 <input type=""checkbox"" name=""propertytype"" value=""fritidsgrund"" class=""specialOption"" data-disable-slider=""#boligareal,#roomsslider"" data-disable-slider-ranges=""#boligarealmin,#boligarealmax,#roomsmin"" />
3176 <span>Fritidsgrund</span>
3177 </label>
3178 </div>
3179 </div>
3180 <div class=""col-6 col-md-4"">
3181 <div class=""checkbox"">
3182 <label>
3183 <input type=""checkbox"" name=""propertytype"" value=""landejendom, lystejendom"" class=""specialOption"" data-disable-checkbox=""true"" />
3184 <span>Landejendom</span>
3185 </label>
3186 </div>
3187 <div class=""checkbox"">
3188 <label>
3189 <input type=""checkbox"" name=""propertytype"" value=""erhverv"" class=""specialOption"" data-disable-checkbox=""true"" data-disable-slider=""#roomsslider"" data-disable-slider-ranges=""#roomsmin"" />
3190 <span>Erhverv<");
3191 WriteLiteral("/span>\r\n </label>\r\n </div>\r\n </div>\r\n");
3192 }
3193
3194 void RenderChecked(string queryString)
3195 {
3196 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString)
3197 {
3198 Write("checked");
3199
3200 }
3201 }
3202
3203 void RenderBoligtypeCheckboxesDropdown()
3204 {
3205 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){
3206 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" },
3207 { "Andelsbolig", "andelsbolig" }
3208 };
3209 foreach (KeyValuePair<string, string> type in propertyTypes)
3210 {
3211 bool ischecked = false;
3212 string[] propertytypeSplit = new string[0];
3213 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
3214 {
3215 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
3216 }
3217 foreach (var propertytypeParams in propertytypeSplit)
3218 {
3219 if (propertytypeParams == type.Value)
3220 {
3221 ischecked = true;
3222 }
3223 }
3224 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3225 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3226 WriteLiteral("\r\n <input type=\"checkbox\" name=\"propertytype\"");
3227 BeginWriteAttribute("value", " value=\"", 8068, "\"", 8087, 1);
3228 WriteAttributeValue("", 8076, type.Value, 8076, 11, false);
3229 EndWriteAttribute();
3230 WriteLiteral(" class=\"js-input-check datavalue js-datavalue js-count\" data-val=\"");
3231 Write(type.Key);
3232 WriteLiteral("\" onchange=\"submitFilter()\"");
3233 BeginWriteAttribute("checked", " checked=\"", 8190, "\"", 8210, 1);
3234 WriteAttributeValue("", 8200, ischecked, 8200, 10, false);
3235 EndWriteAttribute();
3236 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3237 }
3238
3239 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3240 Write(Translate("Smartpage:Search.DropDown.Blandet Bolig/Erhverv", "Blandet Bolig/Erhverv"));
3241 WriteLiteral("\r\n");
3242
3243 bool blboligcheck = false;
3244 if (Dynamicweb.Context.Current.Request.QueryString["propertycategory"] == "Blandet Bolig/Erhverv")
3245 {
3246 blboligcheck = true;
3247 }
3248 WriteLiteral(" <input type=\"checkbox\" name=\"propertycategory\" value=\"Blandet Bolig/Erhverv\" class=\"specialOption js-input-check js-datavalue js-count\" data-disable-checkbox=\"true\" data-disable-slider=\"#roomsslider\" data-disable-slider-ranges=\"#roomsmin\"");
3249 BeginWriteAttribute("checked", " checked=\"", 9043, "\"", 9066, 1);
3250 WriteAttributeValue("", 9053, blboligcheck, 9053, 13, false);
3251 EndWriteAttribute();
3252 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3253
3254 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){
3255 { "Fritidsbolig", "fritidshus, fritidsbolig" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" },
3256 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" }
3257 };
3258 foreach (KeyValuePair<string, string> type in propertyTypes2)
3259 {
3260 bool ischecked = false;
3261 string[] propertytypeSplit2 = new string[0];
3262 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
3263 {
3264 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
3265 }
3266 foreach (var propertytypeParams in propertytypeSplit2)
3267 {
3268 if (propertytypeParams == type.Value)
3269 {
3270 ischecked = true;
3271 }
3272 }
3273 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3274 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3275 WriteLiteral("\r\n");
3276 if (type.Value == "ejerlejlighed")
3277 {
3278 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3279 BeginWriteAttribute("value", " value=\"", 10467, "\"", 10486, 1);
3280 WriteAttributeValue("", 10475, type.Value, 10475, 11, false);
3281 EndWriteAttribute();
3282 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#grundareal\" data-disable-slider-ranges=\"#grundarealmin,#grundarealmax\" data-val=\"");
3283 Write(type.Key);
3284 WriteLiteral("\" onchange=\"submitFilter()\"");
3285 BeginWriteAttribute("checked", " checked=\"", 10660, "\"", 10680, 1);
3286 WriteAttributeValue("", 10670, ischecked, 10670, 10, false);
3287 EndWriteAttribute();
3288 WriteLiteral(" />\r\n");
3289 }
3290 else if (type.Value == "helårsgrund")
3291 {
3292 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3293 BeginWriteAttribute("value", " value=\"", 10857, "\"", 10876, 1);
3294 WriteAttributeValue("", 10865, type.Value, 10865, 11, false);
3295 EndWriteAttribute();
3296 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\"");
3297 Write(type.Key);
3298 WriteLiteral("\" onchange=\"submitFilter()\"");
3299 BeginWriteAttribute("checked", " checked=\"", 11073, "\"", 11093, 1);
3300 WriteAttributeValue("", 11083, ischecked, 11083, 10, false);
3301 EndWriteAttribute();
3302 WriteLiteral(" />\r\n");
3303 }
3304 else if (type.Value == "fritidsgrund")
3305 {
3306 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3307 BeginWriteAttribute("value", " value=\"", 11271, "\"", 11290, 1);
3308 WriteAttributeValue("", 11279, type.Value, 11279, 11, false);
3309 EndWriteAttribute();
3310 WriteLiteral(" class=\"js-input-check datavalue\" data-disable-slider=\"#boligareal,#roomsslider\" data-disable-slider-ranges=\"#boligarealmin,#boligarealmax,#roomsmin\" data-val=\"");
3311 Write(type.Key);
3312 WriteLiteral("\" onchange=\"submitFilter()\"");
3313 BeginWriteAttribute("checked", " checked=\"", 11487, "\"", 11507, 1);
3314 WriteAttributeValue("", 11497, ischecked, 11497, 10, false);
3315 EndWriteAttribute();
3316 WriteLiteral(" />\r\n");
3317 }
3318 else
3319 {
3320 WriteLiteral(" <input type=\"checkbox\" name=\"propertytype\"");
3321 BeginWriteAttribute("value", " value=\"", 11651, "\"", 11670, 1);
3322 WriteAttributeValue("", 11659, type.Value, 11659, 11, false);
3323 EndWriteAttribute();
3324 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\"");
3325 Write(type.Key);
3326 WriteLiteral("\" onchange=\"submitFilter()\"");
3327 BeginWriteAttribute("checked", " checked=\"", 11751, "\"", 11771, 1);
3328 WriteAttributeValue("", 11761, ischecked, 11761, 10, false);
3329 EndWriteAttribute();
3330 WriteLiteral(" />\r\n");
3331 }
3332 WriteLiteral(" <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3333 }
3334 }
3335
3336 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false)
3337 {
3338 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3339 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" },
3340 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" }
3341 };
3342 var submitonchange = "";
3343 if (submitOnChange)
3344 {
3345 submitonchange = "onchange='submitFilter()'";
3346 }
3347
3348 foreach (KeyValuePair<string, string> type in erhverType)
3349 {
3350 string ischecked = "";
3351 string[] olineParamsSplit = new string[0];
3352 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
3353 {
3354 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
3355 }
3356 foreach (var olineParams in olineParamsSplit)
3357 {
3358 if (olineParams == type.Value)
3359 {
3360 ischecked = "checked";
3361 }
3362 }
3363
3364 WriteLiteral(" <li>\r\n <label class=\"checkbox-container d-flex\">\r\n ");
3365 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3366 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\"");
3367 BeginWriteAttribute("value", " value=\"", 13415, "\"", 13434, 1);
3368 WriteAttributeValue("", 13423, type.Value, 13423, 11, false);
3369 EndWriteAttribute();
3370 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\"");
3371 Write(type.Key);
3372 WriteLiteral("\" ");
3373 Write(submitonchange);
3374 WriteLiteral(" ");
3375 Write(ischecked);
3376 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3377 }
3378
3379
3380 bool ischeckedpropertycat = false;
3381 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertycategory"]))
3382 {
3383 if (Dynamicweb.Context.Current.Request.QueryString["propertycategory"] == "Blandet Bolig/Erhverv")
3384 {
3385 ischeckedpropertycat = true;
3386 }
3387 }
3388 WriteLiteral(" <li>\r\n <label class=\"checkbox-container\">\r\n ");
3389 Write(Translate("Smartpage:Search.DropDown.Blandet Bolig/Erhverv", "Blandet Bolig/Erhverv"));
3390 WriteLiteral("\r\n <input type=\"checkbox\" name=\"propertycategory\" value=\"Blandet Bolig/Erhverv\" class=\"js-input-check datavalue\" data-val=\"Blandet Bolig/Erhverv\" onchange=\"submitFilter()\"");
3391 BeginWriteAttribute("checked", " checked=\"", 14347, "\"", 14378, 1);
3392 WriteAttributeValue("", 14357, ischeckedpropertycat, 14357, 21, false);
3393 EndWriteAttribute();
3394 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3395 }
3396
3397 void RenderBoligTypeErhvervInvest(bool submitOnChange = false)
3398 {
3399 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3400 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" },
3401 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" }
3402 };
3403
3404 foreach (KeyValuePair<string, string> type in erhverType)
3405 {
3406 bool ischecked = false;
3407 string[] olineParamsSplit = new string[0];
3408 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
3409 {
3410 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
3411 }
3412 foreach (var olineParams in olineParamsSplit)
3413 {
3414 if (olineParams == type.Value)
3415 {
3416 ischecked = true;
3417 }
3418 }
3419
3420 WriteLiteral(" <li>\r\n <label class=\"checkbox-container\">\r\n ");
3421 Write(Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + ""));
3422 WriteLiteral("\r\n <input type=\"checkbox\" name=\"olinecategory\"");
3423 BeginWriteAttribute("value", " value=\"", 15865, "\"", 15884, 1);
3424 WriteAttributeValue("", 15873, type.Value, 15873, 11, false);
3425 EndWriteAttribute();
3426 WriteLiteral(" class=\"js-input-check datavalue\" data-val=\"");
3427 Write(type.Key);
3428 WriteLiteral("\" onchange=\"submitFilter()\"");
3429 BeginWriteAttribute("checked", " checked=\"", 15965, "\"", 15985, 1);
3430 WriteAttributeValue("", 15975, ischecked, 15975, 10, false);
3431 EndWriteAttribute();
3432 WriteLiteral(" />\r\n <span class=\"checkmark grey\"></span>\r\n </label>\r\n </li>\r\n");
3433 }
3434 }
3435 int GetWebsiteSettingsPageId(string pageSysName)
3436 {
3437 int sideId = 0;
3438
3439 var pw = Dynamicweb.Frontend.PageView.Current();
3440
3441 string settingsItemId = "1";
3442
3443 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true")
3444 {
3445 settingsItemId = "2";
3446 }
3447
3448 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId);
3449
3450 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName))
3451 {
3452 return sideId;
3453 }
3454
3455 string boligsideLink = settingsItem[pageSysName] as String;
3456 string linkPrefix = "Default.aspx?ID=";
3457
3458 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
3459 {
3460 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
3461 }
3462
3463 return sideId;
3464 }
3465
3466 int GetPageSettingsPageId(string pageSysName)
3467 {
3468 int sideId = 0;
3469
3470 var pw = Dynamicweb.Frontend.PageView.Current();
3471
3472 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName))
3473 {
3474 return sideId;
3475 }
3476
3477 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String;
3478 string linkPrefix = "Default.aspx?ID=";
3479
3480 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
3481 {
3482 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
3483 }
3484
3485 return sideId;
3486 }
3487 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname)
3488 {
3489 WriteLiteral(" <select");
3490 BeginWriteAttribute("class", " class=\"", 17928, "\"", 17983, 5);
3491 WriteAttributeValue("", 17936, "form-control", 17936, 12, true);
3492 WriteAttributeValue(" ", 17948, "d-block", 17949, 8, true);
3493 WriteAttributeValue(" ", 17956, "d-lg-none", 17957, 10, true);
3494 WriteAttributeValue(" ", 17966, "mb-10", 17967, 6, true);
3495 WriteAttributeValue(" ", 17972, className, 17973, 10, false);
3496 EndWriteAttribute();
3497 WriteLiteral(" onchange=\"submitFilter()\"");
3498 BeginWriteAttribute("name", " name=\"", 18010, "\"", 18027, 1);
3499 WriteAttributeValue("", 18017, inputname, 18017, 10, false);
3500 EndWriteAttribute();
3501 WriteLiteral(">\r\n <option selected=\"true\" disabled=\"disabled\">");
3502 Write(Translate("Smartpage:Search.Placeholder." + name + "", "" + name + ""));
3503 WriteLiteral("</option>\r\n\r\n");
3504 for (var i = 0; i <= max; i += step)
3505 {
3506 var selected = string.Empty;
3507 var current = string.Empty;
3508 if (i == max)
3509 {
3510 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
3511 {
3512 WriteLiteral(" <option");
3513 BeginWriteAttribute("value", " value=\"", 18623, "\"", 18633, 1);
3514 WriteAttributeValue("", 18631, i, 18631, 2, false);
3515 EndWriteAttribute();
3516 WriteLiteral(" data-value=\'");
3517 Write(Convert.ToInt32(i).ToString("N0"));
3518 WriteLiteral("\' selected=\"selected\">");
3519 Write(Convert.ToInt32(i).ToString("N0"));
3520 WriteLiteral("+</option>\r\n");
3521 }
3522 else
3523 {
3524 WriteLiteral(" <option");
3525 BeginWriteAttribute("value", " value=\"", 18852, "\"", 18862, 1);
3526 WriteAttributeValue("", 18860, i, 18860, 2, false);
3527 EndWriteAttribute();
3528 WriteLiteral(" data-value=\'");
3529 Write(Convert.ToInt32(i).ToString("N0"));
3530 WriteLiteral("\'>");
3531 Write(Convert.ToInt32(i).ToString("N0"));
3532 WriteLiteral("+</option>\r\n");
3533 }
3534 }
3535 else
3536 {
3537 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
3538 {
3539 WriteLiteral(" <option");
3540 BeginWriteAttribute("value", " value=\"", 19286, "\"", 19296, 1);
3541 WriteAttributeValue("", 19294, i, 19294, 2, false);
3542 EndWriteAttribute();
3543 WriteLiteral(" data-value=\'");
3544 Write(Convert.ToInt32(i).ToString("N0"));
3545 WriteLiteral("\' selected=\"selected\">");
3546 Write(Convert.ToInt32(i).ToString("N0"));
3547 WriteLiteral("</option>\r\n");
3548 }
3549 else
3550 {
3551 WriteLiteral(" <option");
3552 BeginWriteAttribute("value", " value=\"", 19514, "\"", 19524, 1);
3553 WriteAttributeValue("", 19522, i, 19522, 2, false);
3554 EndWriteAttribute();
3555 WriteLiteral(" data-value=\'");
3556 Write(Convert.ToInt32(i).ToString("N0"));
3557 WriteLiteral("\'>");
3558 Write(Convert.ToInt32(i).ToString("N0"));
3559 WriteLiteral("</option>\r\n");
3560 }
3561 }
3562 }
3563 WriteLiteral(" </select>\r\n");
3564 }
3565
3566 void RenderTopFilter(string parameter)
3567 {
3568 if (parameter == "pricemin" || parameter == "pricemax")
3569 {
3570 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"]))
3571 {
3572 if (parameter == "pricemin")
3573 {
3574 Write("<div class='search-terms' id='priceFilter'>");
3575 Write("Pris ");
3576 Write(Dynamicweb.Context.Current.Request[parameter]);
3577
3578 }
3579
3580 else
3581 {
3582 Write(" - ");
3583 Write(Dynamicweb.Context.Current.Request[parameter]);
3584 Write(" kr.");
3585 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"pricemin,pricemax\"></i>\r\n");
3586 Write("</div>");
3587
3588 }
3589 }
3590 }
3591
3592 else if (parameter == "subsidymin" || parameter == "subsidymax")
3593 {
3594 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"]))
3595 {
3596 if (parameter == "subsidymin")
3597 {
3598 Write("<div class='search-terms' id='subsidyFilter'>");
3599 Write("Årlig leje ");
3600 Write(Dynamicweb.Context.Current.Request[parameter]);
3601
3602 }
3603
3604 else
3605 {
3606 Write(" - ");
3607 Write(Dynamicweb.Context.Current.Request[parameter]);
3608 Write(" kr.");
3609 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidymin,subsidymax\"></i>\r\n");
3610 Write("</div>");
3611
3612 }
3613 }
3614 }
3615 else if (parameter == "etagearealmin" || parameter == "etagearealmax")
3616 {
3617 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"]))
3618 {
3619 if (parameter == "etagearealmin")
3620 {
3621 Write("<div class='search-terms' id='etagearealFilter'>");
3622 Write("Etageareal ");
3623 Write(Dynamicweb.Context.Current.Request[parameter]);
3624
3625 }
3626
3627 else
3628 {
3629 Write(" - ");
3630 Write(Dynamicweb.Context.Current.Request[parameter]);
3631 Write(" kvm.");
3632 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"etagearealmin,etagearealmax\"></i>\r\n");
3633 Write("</div>");
3634
3635 }
3636 }
3637 }
3638
3639 else if (parameter == "grundarealmin" || parameter == "grundarealmax")
3640 {
3641 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"]))
3642 {
3643 if (parameter == "grundarealmin")
3644 {
3645 Write("<div class='search-terms' id='grundarealFilter'>");
3646 Write("Grundareal ");
3647 Write(Dynamicweb.Context.Current.Request[parameter]);
3648
3649 }
3650
3651 else
3652 {
3653 Write(" - ");
3654 Write(Dynamicweb.Context.Current.Request[parameter]);
3655 Write(" kvm.");
3656 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"grundarealmin,grundarealmax\"></i>\r\n");
3657 Write("</div>");
3658
3659 }
3660 }
3661 }
3662
3663 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax")
3664 {
3665 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"]))
3666 {
3667 if (parameter == "subsidykvmmin")
3668 {
3669 Write("<div class='search-terms' id='subsidykvmFilter'>");
3670 Write("Årlig leje kvm ");
3671 Write(Dynamicweb.Context.Current.Request[parameter]);
3672
3673 }
3674
3675 else
3676 {
3677 Write(" - ");
3678 Write(Dynamicweb.Context.Current.Request[parameter]);
3679 Write(" kr.");
3680 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"subsidykvmmin,subsidykvmmax\"></i>\r\n");
3681 Write("</div>");
3682
3683 }
3684 }
3685 }
3686
3687 else if (parameter == "olinecategory")
3688 {
3689
3690 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"]))
3691 {
3692 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3693 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" },
3694 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"},
3695 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" },
3696 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" }
3697 };
3698
3699
3700 foreach (var er in erhverType)
3701 {
3702 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
3703 {
3704 WriteLiteral(" <div class=\"search-terms\"");
3705 BeginWriteAttribute("id", " id=\"", 24694, "\"", 24709, 1);
3706 WriteAttributeValue("", 24699, parameter, 24699, 10, false);
3707 EndWriteAttribute();
3708 WriteLiteral(">\r\n ");
3709 Write(er.Value);
3710 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3711 Write(parameter);
3712 WriteLiteral("\" data-val=\"");
3713 Write(er.Key);
3714 WriteLiteral("\"></i>\r\n </div>\r\n");
3715 }
3716 }
3717 }
3718 }
3719 else if (parameter == "propertycategory")
3720 {
3721
3722 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["propertycategory"]))
3723 {
3724 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
3725 { "propertycategory", "Blandet Bolig/Erhverv" }
3726 };
3727
3728 foreach (var er in erhverType)
3729 {
3730 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]) && Dynamicweb.Context.Current.Request[parameter] == er.Value)
3731 {
3732 WriteLiteral(" <div class=\"search-terms\"");
3733 BeginWriteAttribute("id", " id=\"", 25615, "\"", 25630, 1);
3734 WriteAttributeValue("", 25620, parameter, 25620, 10, false);
3735 EndWriteAttribute();
3736 WriteLiteral(">\r\n ");
3737 Write(er.Value);
3738 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3739 Write(parameter);
3740 WriteLiteral("\" data-val=\"");
3741 Write(er.Key);
3742 WriteLiteral("\"></i>\r\n </div>\r\n");
3743 }
3744 }
3745 }
3746 }
3747 else if (parameter == "search")
3748 {
3749 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"]))
3750 {
3751 WriteLiteral(" <div class=\"search-terms\"");
3752 BeginWriteAttribute("id", " id=\"", 26078, "\"", 26093, 1);
3753 WriteAttributeValue("", 26083, parameter, 26083, 10, false);
3754 EndWriteAttribute();
3755 WriteLiteral(">\r\n ");
3756 Write(Dynamicweb.Context.Current.Request[parameter]);
3757 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3758 Write(parameter);
3759 WriteLiteral("\"></i>\r\n </div>\r\n");
3760 }
3761 }
3762 else
3763 {
3764 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]))
3765 {
3766 Dictionary<string, string>
3767 ubudsform = new Dictionary<string, string>
3768 (){
3769 {"salg", "Salg" }, { "leje","Leje" }
3770 };
3771
3772 foreach (var er in ubudsform)
3773 {
3774 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
3775 {
3776 WriteLiteral(" <div class=\"search-terms\"");
3777 BeginWriteAttribute("id", " id=\"", 27242, "\"", 27257, 1);
3778 WriteAttributeValue("", 27247, parameter, 27247, 10, false);
3779 EndWriteAttribute();
3780 WriteLiteral(">\r\n ");
3781 Write(er.Value);
3782 WriteLiteral(" <i class=\"fa fa-times ml-2 pointer\" onclick=\"removeParams(this)\" data-tag=\"");
3783 Write(parameter);
3784 WriteLiteral("\" data-val=\"");
3785 Write(er.Key);
3786 WriteLiteral("\"></i>\r\n </div>\r\n");
3787 }
3788 }
3789
3790
3791 }
3792 }
3793 }
3794
3795 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString)
3796 {
3797 var selected = "";
3798 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue)
3799 {
3800 selected = "selected";
3801 }
3802
3803 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected);
3804
3805 Write(current);
3806
3807 }
3808
3809 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "")
3810 {
3811 WriteLiteral(" <div");
3812 BeginWriteAttribute("class", " class=\"", 28261, "\"", 28307, 3);
3813 WriteAttributeValue("", 28269, "main-search-form", 28269, 16, true);
3814 WriteAttributeValue(" ", 28285, "frontpage", 28286, 10, true);
3815 WriteAttributeValue(" ", 28295, cssClasses, 28296, 11, false);
3816 EndWriteAttribute();
3817 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>");
3818 Write(Translate("Smartpage:Search.Søg bolig", "Søg bolig"));
3819 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>");
3820 Write(Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg"));
3821 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\"");
3822 BeginWriteAttribute("value", " value=\'", 29022, "\'", 29043, 1);
3823 WriteAttributeValue("", 29030, searchPageId, 29030, 13, false);
3824 EndWriteAttribute();
3825 WriteLiteral(@" id=""searchPageId-frontpage"" disabled=""disabled"" />
3826 <div class=""row form-wrapper no-gutters"">
3827
3828 <div class=""col-xs-12 col-md-5 col-searchbar"">
3829 <div class=""searchbar"">
3830 <input type=""text""");
3831 BeginWriteAttribute("name", " name=\"", 29321, "\"", 29348, 1);
3832 WriteAttributeValue("", 29328, querySearchNameAttr, 29328, 20, false);
3833 EndWriteAttribute();
3834 WriteLiteral(" id=\"searchfield-frontpage\" class=\"search-input\" placeholder=\"Postnummer, by, vej eller sagsnummer\" tabindex=\"1\"");
3835 BeginWriteAttribute("value", " value=\"", 29461, "\"", 29539, 1);
3836 WriteAttributeValue("", 29469, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch), 29469, 70, false);
3837 EndWriteAttribute();
3838 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodefrom-frontpage\" name=\"zipcodefrom\"");
3839 BeginWriteAttribute("value", " value=\"", 29639, "\"", 29722, 1);
3840 WriteAttributeValue("", 29647, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom), 29647, 75, false);
3841 EndWriteAttribute();
3842 WriteLiteral(" />\r\n <input type=\"hidden\" id=\"zipcodeto-frontpage\" name=\"zipcodeto\"");
3843 BeginWriteAttribute("value", " value=\"", 29818, "\"", 29899, 1);
3844 WriteAttributeValue("", 29826, Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo), 29826, 73, false);
3845 EndWriteAttribute();
3846 WriteLiteral(@" />
3847 </div>
3848 </div>
3849 <div class=""col-xs-12 col-md-5"">
3850 <div class=""row no-gutters"">
3851 <div class=""col-xs-12 col-md-6 input-col"">
3852 <div class=""dropdown w-overlay"">
3853 <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"">
3854 ");
3855 Write(Translate("Smartpage:Search.Boligtype", "Boligtype"));
3856 WriteLiteral(@"
3857 </button>
3858 <div class=""dropdown-menu box-shadow bolig-dropdown-container"" aria-labelledby=""Boligtype"">
3859 <ul class=""bolig-dropdown list-unstyled"">
3860 ");
3861
3862 RenderBoligtypeCheckboxesDropdown();
3863 WriteLiteral(" </ul>\r\n <span class=\"border-fat\"></span>\r\n <button class=\"btn btn-primary js-close-dropdown\">");
3864 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
3865 WriteLiteral(@"</button>
3866 </div>
3867
3868 </div>
3869
3870 </div>
3871 <div class=""col-xs-12 col-md-6 input-col"">
3872 <div class=""dropdown w-overlay"">
3873 <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"">
3874 ");
3875 Write(Translate("Smartpage:Search.Pris", "Pris"));
3876 WriteLiteral(@"
3877 </button>
3878 <div class=""dropdown-menu box-shadow dropdown-price"" aria-labelledby=""Pris"">
3879 <input type=""text"" class=""form-control mb-10 js-auto-thousand js-pricemin-frontpage-input""");
3880 BeginWriteAttribute("placeholder", " placeholder=\'", 32078, "\'", 32154, 1);
3881 WriteAttributeValue("", 32092, Translate("Smartpage:Search.Placeholder.MinPris","Min. pris"), 32092, 62, false);
3882 EndWriteAttribute();
3883 WriteLiteral(" />\r\n <select class=\"form-control js-pricemin-frontpage-select js-input-min-select mb-10\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3884 Write(Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris"));
3885 WriteLiteral("</option>\r\n");
3886 for (var i = 0; i <= 10000000; i += 100000)
3887 {
3888 if (i == 10000000)
3889 {
3890 WriteLiteral(" <option");
3891 BeginWriteAttribute("value", " value=\"", 32763, "\"", 32773, 1);
3892 WriteAttributeValue("", 32771, i, 32771, 2, false);
3893 EndWriteAttribute();
3894 WriteLiteral(" data-value=\'");
3895 Write(Convert.ToInt32(i).ToString("N0"));
3896 WriteLiteral("+\'>");
3897 Write(Convert.ToInt32(i).ToString("N0"));
3898 WriteLiteral("+</option>\r\n");
3899 }
3900 else
3901 {
3902 WriteLiteral(" <option");
3903 BeginWriteAttribute("value", " value=\"", 33085, "\"", 33095, 1);
3904 WriteAttributeValue("", 33093, i, 33093, 2, false);
3905 EndWriteAttribute();
3906 WriteLiteral(" data-value=\'");
3907 Write(Convert.ToInt32(i).ToString("N0"));
3908 WriteLiteral("\'>");
3909 Write(Convert.ToInt32(i).ToString("N0"));
3910 WriteLiteral("</option>\r\n");
3911 }
3912 }
3913 WriteLiteral(@" </select>
3914 <input type=""hidden"" id=""pricemin-frontpage"" name=""pricemin"" />
3915
3916 <input type=""text"" class=""form-control js-auto-thousand js-pricemax-frontpage-input""");
3917 BeginWriteAttribute("placeholder", " placeholder=\'", 33570, "\'", 33646, 1);
3918 WriteAttributeValue("", 33584, Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris"), 33584, 62, false);
3919 EndWriteAttribute();
3920 WriteLiteral(" />\r\n <select class=\"form-control js-pricemax-frontpage-select js-input-max-select\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3921 Write(Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris"));
3922 WriteLiteral("</option>\r\n");
3923 for (var i = 0; i <= 10000000; i += 100000)
3924 {
3925 if (i == 10000000)
3926 {
3927 WriteLiteral(" <option");
3928 BeginWriteAttribute("value", " value=\"", 34249, "\"", 34259, 1);
3929 WriteAttributeValue("", 34257, i, 34257, 2, false);
3930 EndWriteAttribute();
3931 WriteLiteral(" data-value=\'");
3932 Write(Convert.ToInt32(i).ToString("N0"));
3933 WriteLiteral("+\'>");
3934 Write(Convert.ToInt32(i).ToString("N0"));
3935 WriteLiteral("+</option>\r\n");
3936 }
3937 else
3938 {
3939 WriteLiteral(" <option");
3940 BeginWriteAttribute("value", " value=\"", 34571, "\"", 34581, 1);
3941 WriteAttributeValue("", 34579, i, 34579, 2, false);
3942 EndWriteAttribute();
3943 WriteLiteral(" data-value=\'");
3944 Write(Convert.ToInt32(i).ToString("N0"));
3945 WriteLiteral("\'>");
3946 Write(Convert.ToInt32(i).ToString("N0"));
3947 WriteLiteral("</option>\r\n");
3948 }
3949 }
3950 WriteLiteral(" </select>\r\n <input type=\"hidden\" id=\"pricemax-frontpage\" name=\"pricemax\" />\r\n <button class=\"btn btn-primary js-close-dropdown mt-3\">");
3951 Write(Translate("Smartpage:Search.Anvend", "Anvend"));
3952 WriteLiteral(@"</button>
3953 </div>
3954 </div>
3955 </div>
3956 </div>
3957 </div>
3958 <div class=""col-xs-12 col-md-2 d-none d-md-block"">
3959 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
3960 Write(Translate("Smartpage:Search.Søg", "Søg"));
3961 WriteLiteral(@"</button>
3962 </div>
3963 </div>
3964
3965 <div class=""row moresearch-btn no-gutters"">
3966 <div class=""col-sm-12"">
3967 <div class=""row align-items-center no-gutters"">
3968 <div class=""col-12 col-md-4"">
3969 <button class=""btn-blank js-search-collapse"" type=""button"" data-toggle=""collapse"" data-target=""#moreSearch"" aria-expanded=""false"" aria-controls=""moreSearch"">
3970 <span class=""moreSearch-text""><i class=""fas fa-plus open-close""></i> <span class=""not-open"">");
3971 Write(Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder"));
3972 WriteLiteral("</span> <span class=\"open\"><span class=\"js-filter-count\">0</span> ");
3973 Write(Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt"));
3974 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\">");
3975 Write(Translate("Smartpage:Search.NulstilValg", "Nulstil valg"));
3976 WriteLiteral("</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"collapse\" id=\"moreSearch\">\r\n <h4 class=\"mt-20\"><b>");
3977 Write(Translate("Smartpage:Search.Bolig", "Bolig"));
3978 WriteLiteral(@"</b></h4>
3979 <div class=""row align-items-end mb-30"">
3980 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
3981 <div class=""filter-container row"">
3982 <label class=""d-block col-12"">");
3983 Write(Translate("Smartpage:Search.Boligareal", "Boligareal"));
3984 WriteLiteral(@"</label>
3985 <div class=""col-6 pr-sm-0 pr-2"">
3986 <input type=""text"" name=""boligarealmin"" id=""boligarealmin-frontpage"" class=""form-control js-boligarealmin-frontpage-input js-count""");
3987 BeginWriteAttribute("placeholder", " placeholder=\'", 37447, "\'", 37519, 1);
3988 WriteAttributeValue("", 37461, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 37461, 58, false);
3989 EndWriteAttribute();
3990 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
3991 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
3992 WriteLiteral("</option>\r\n");
3993 for (var i = 0; i <= 300; i += 10)
3994 {
3995 if (i == 300)
3996 {
3997 WriteLiteral(" <option");
3998 BeginWriteAttribute("value", " value=\"", 38126, "\"", 38136, 1);
3999 WriteAttributeValue("", 38134, i, 38134, 2, false);
4000 EndWriteAttribute();
4001 WriteLiteral(">");
4002 Write(i);
4003 WriteLiteral("+</option>\r\n");
4004 }
4005 else
4006 {
4007 WriteLiteral(" <option");
4008 BeginWriteAttribute("value", " value=\"", 38383, "\"", 38393, 1);
4009 WriteAttributeValue("", 38391, i, 38391, 2, false);
4010 EndWriteAttribute();
4011 WriteLiteral(">");
4012 Write(i);
4013 WriteLiteral("</option>\r\n");
4014 }
4015 }
4016 WriteLiteral(@" </select>
4017 </div>
4018 <div class=""col-6 pl-sm-0 pl-2"">
4019 <input type=""text"" name=""boligarealmax"" id=""boligarealmax-frontpage"" class=""form-control js-boligarealmax-frontpage-input js-count""");
4020 BeginWriteAttribute("placeholder", " placeholder=\'", 38866, "\'", 38938, 1);
4021 WriteAttributeValue("", 38880, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 38880, 58, false);
4022 EndWriteAttribute();
4023 WriteLiteral(" />\r\n <select class=\"form-control js-boligarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4024 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
4025 WriteLiteral("</option>\r\n");
4026 for (var i = 0; i <= 300; i += 10)
4027 {
4028 if (i == 300)
4029 {
4030 WriteLiteral(" <option");
4031 BeginWriteAttribute("value", " value=\"", 39545, "\"", 39555, 1);
4032 WriteAttributeValue("", 39553, i, 39553, 2, false);
4033 EndWriteAttribute();
4034 WriteLiteral(">");
4035 Write(i);
4036 WriteLiteral("+</option>\r\n");
4037 }
4038 else
4039 {
4040 WriteLiteral(" <option");
4041 BeginWriteAttribute("value", " value=\"", 39802, "\"", 39812, 1);
4042 WriteAttributeValue("", 39810, i, 39810, 2, false);
4043 EndWriteAttribute();
4044 WriteLiteral(">");
4045 Write(i);
4046 WriteLiteral("</option>\r\n");
4047 }
4048 }
4049 WriteLiteral(@" </select>
4050 </div>
4051 </div>
4052 </div>
4053 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
4054 <div class=""filter-container row"">
4055 <label class=""d-block col-12"">");
4056 Write(Translate("Smartpage:Search.Grundareal", "Grundareal"));
4057 WriteLiteral(@"</label>
4058 <div class=""col-6 pr-sm-0 pr-2"">
4059 <input type=""text"" name=""grundarealmin"" id=""grundarealmin-frontpage"" class=""form-control js-grundarealmin-frontpage-input js-count""");
4060 BeginWriteAttribute("placeholder", " placeholder=\'", 40661, "\'", 40733, 1);
4061 WriteAttributeValue("", 40675, Translate("Smartpage:Search.Placeholder.Minm2","Min. m2"), 40675, 58, false);
4062 EndWriteAttribute();
4063 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4064 Write(Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2"));
4065 WriteLiteral("</option>\r\n");
4066 for (var i = 0; i <= 10000; i += 100)
4067 {
4068 if (i == 10000)
4069 {
4070 WriteLiteral(" <option");
4071 BeginWriteAttribute("value", " value=\"", 41345, "\"", 41355, 1);
4072 WriteAttributeValue("", 41353, i, 41353, 2, false);
4073 EndWriteAttribute();
4074 WriteLiteral(">");
4075 Write(i);
4076 WriteLiteral("+</option>\r\n");
4077 }
4078 else
4079 {
4080 WriteLiteral(" <option");
4081 BeginWriteAttribute("value", " value=\"", 41602, "\"", 41612, 1);
4082 WriteAttributeValue("", 41610, i, 41610, 2, false);
4083 EndWriteAttribute();
4084 WriteLiteral(">");
4085 Write(i);
4086 WriteLiteral("</option>\r\n");
4087 }
4088 }
4089 WriteLiteral(@" </select>
4090 </div>
4091 <div class=""col-6 pl-sm-0 pl-2"">
4092 <input type=""text"" name=""grundarealmax"" id=""grundarealmax-frontpage"" class=""form-control js-grundarealmax-frontpage-input js-count""");
4093 BeginWriteAttribute("placeholder", " placeholder=\'", 42085, "\'", 42157, 1);
4094 WriteAttributeValue("", 42099, Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2"), 42099, 58, false);
4095 EndWriteAttribute();
4096 WriteLiteral(" />\r\n <select class=\"form-control js-grundarealmax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4097 Write(Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2"));
4098 WriteLiteral("</option>\r\n");
4099 for (var i = 0; i <= 10000; i += 100)
4100 {
4101 if (i == 10000)
4102 {
4103 WriteLiteral(" <option");
4104 BeginWriteAttribute("value", " value=\"", 42769, "\"", 42779, 1);
4105 WriteAttributeValue("", 42777, i, 42777, 2, false);
4106 EndWriteAttribute();
4107 WriteLiteral(">");
4108 Write(i);
4109 WriteLiteral("+</option>\r\n");
4110 }
4111 else
4112 {
4113 WriteLiteral(" <option");
4114 BeginWriteAttribute("value", " value=\"", 43026, "\"", 43036, 1);
4115 WriteAttributeValue("", 43034, i, 43034, 2, false);
4116 EndWriteAttribute();
4117 WriteLiteral(">");
4118 Write(i);
4119 WriteLiteral("</option>\r\n");
4120 }
4121 }
4122 WriteLiteral(@" </select>
4123 </div>
4124 </div>
4125 </div>
4126 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
4127 <div class=""filter-container row"">
4128 <label class=""d-block col-12"">Antal rum</label>
4129
4130 <div class=""col-6 pr-sm-0 pr-2"">
4131 <select name=""roomsmin"" id=""roomsmin-frontpage"" class=""form-control reverse js-count"">
4132 <option selected=""true"" disabled=""disabled"">");
4133 Write(Translate("Smartpage:Search.Placeholder.Min", "Min"));
4134 WriteLiteral(@"</option>
4135 <option value=""1"">1</option>
4136 <option value=""2"">2</option>
4137 <option value=""3"">3</option>
4138 <option value=""4"">4</option>
4139 <option value=""5+"">5+</option>
4140 </select>
4141 </div>
4142 <div class=""col-6 pl-sm-0 pl-2"">
4143 <select name=""roomsmax"" id=""roomsmax-frontpage"" class=""form-control reverse js-count"">
4144 <option selected=""true"" disabled=""disabled"">");
4145 Write(Translate("Smartpage:Search.Placeholder.Max", "Max"));
4146 WriteLiteral(@"</option>
4147 <option value=""1"">1</option>
4148 <option value=""2"">2</option>
4149 <option value=""3"">3</option>
4150 <option value=""4"">4</option>
4151 <option value=""5+"">");
4152 Write(Translate("Smartpage:Rooms.5", "5"));
4153 WriteLiteral(@"</option>
4154 </select>
4155 </div>
4156 </div>
4157 </div>
4158 <div class=""col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"">
4159 <div class=""row"">
4160 <div class=""col-12"">
4161 <div class=""filter-container"">
4162 <label class=""d-block"">Energimærke</label>
4163 <select name=""energylabel"" id=""energylabel-frontpage"" class=""form-control reverse js-count"">
4164 <option disabled selected=""selected"">");
4165 Write(Translate("Smartpage:Search.Vælg", "Vælg"));
4166 WriteLiteral(@"</option>
4167 <option value=""01"">G</option>
4168 <option value=""02"">F</option>
4169 <option value=""03"">E</option>
4170 <option value=""04"">D</option>
4171 <option value=""05"">C</option>
4172 <option value=""06"">B</option>
4173 <option value=""07"">A</option>
4174 <option value=""08"">A2010</option>
4175 <option value=""09"">A2015</option>
4176 <option value=""10"">A2020+</option>
4177 </select>
4178 </div>
4179 </div>
4180 ");
4181 WriteLiteral(" </div>\r\n </div>\r\n <div class=\"col-12 col-sm-6 col-lg-3 mt-3\">\r\n <h4");
4182 BeginWriteAttribute("class", " class=\"", 47281, "\"", 47289, 0);
4183 EndWriteAttribute();
4184 WriteLiteral("><b>");
4185 Write(Translate("Smartpage:Search.Økonomi", "Økonomi"));
4186 WriteLiteral("</b></h4>\r\n <div class=\"filter-container row\">\r\n <label class=\"d-block col-12\">");
4187 Write(Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned"));
4188 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\"");
4189 BeginWriteAttribute("placeholder", " placeholder=\'", 47845, "\'", 47919, 1);
4190 WriteAttributeValue("", 47859, Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK"), 47859, 60, false);
4191 EndWriteAttribute();
4192 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymin-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4193 Write(Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK"));
4194 WriteLiteral("</option>\r\n");
4195 for (var i = 0; i <= 25000; i += 1250)
4196 {
4197 if (i == 25000)
4198 {
4199 WriteLiteral(" <option>");
4200 Write(Convert.ToInt32(i).ToString("N0"));
4201 WriteLiteral("+</option>\r\n");
4202 }
4203 else
4204 {
4205 WriteLiteral(" <option>");
4206 Write(Convert.ToInt32(i).ToString("N0"));
4207 WriteLiteral("</option>\r\n");
4208 }
4209 }
4210 WriteLiteral(@" </select>
4211 </div>
4212 <div class=""col-6 pl-sm-0 pl-2"">
4213 <input type=""text"" name=""subsidymax"" id=""subsidymax-frontpage"" class=""form-control js-subsidymax-frontpage-input js-count""");
4214 BeginWriteAttribute("placeholder", " placeholder=\'", 49304, "\'", 49378, 1);
4215 WriteAttributeValue("", 49318, Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK"), 49318, 60, false);
4216 EndWriteAttribute();
4217 WriteLiteral(" />\r\n <select class=\"form-control js-subsidymax-frontpage-select js-count\">\r\n <option selected=\"true\" disabled=\"disabled\">");
4218 Write(Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK"));
4219 WriteLiteral("</option>\r\n");
4220 for (var i = 0; i <= 25000; i += 1250)
4221 {
4222 if (i == 25000)
4223 {
4224 WriteLiteral(" <option");
4225 BeginWriteAttribute("value", " value=\"", 49990, "\"", 50017, 1);
4226 WriteAttributeValue("", 49998, Convert.ToInt32(i), 49998, 19, false);
4227 EndWriteAttribute();
4228 WriteLiteral(">");
4229 Write(Convert.ToInt32(i).ToString("N0"));
4230 WriteLiteral("+</option>\r\n");
4231 }
4232 else
4233 {
4234 WriteLiteral(" <option");
4235 BeginWriteAttribute("value", " value=\"", 50296, "\"", 50323, 1);
4236 WriteAttributeValue("", 50304, Convert.ToInt32(i), 50304, 19, false);
4237 EndWriteAttribute();
4238 WriteLiteral(">");
4239 Write(Convert.ToInt32(i).ToString("N0"));
4240 WriteLiteral("</option>\r\n");
4241 }
4242 }
4243 WriteLiteral(@" </select>
4244 </div>
4245 </div>
4246 </div>
4247 <div class=""col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0"">
4248 <button type=""submit"" class=""btn btn-block btn-search""><i class=""fa fa-search""></i> ");
4249 Write(Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre"));
4250 WriteLiteral(@"</button>
4251 </div>
4252 </div>
4253 </div>
4254 </div>
4255 </div>
4256
4257 <div class=""row d-block d-md-none form-wrapper no-gutters"">
4258 <div class=""col-xs-12 col-md-2"">
4259 <button type=""submit"" class=""btn btn-block btn-search btn-mobile-search"">");
4260 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig"));
4261 WriteLiteral(@"<i class=""fa fa-search cta-icon""></i></button>
4262 </div>
4263 </div>
4264 </form>
4265 <div class=""front-page-actions d-md-none"">
4266 <div>
4267 <button class=""btn btn-block btn-search btn-mobile-search js-search-mobile"">");
4268 Write(Translate("Smartpage:Search.SøgBolig", "Søg Bolig"));
4269 WriteLiteral("<i class=\"fa fa-search cta-icon\"></i></button>\r\n </div>\r\n <div>\r\n");
4270
4271 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : "";
4272 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER");
4273 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\">\r\n <input name=\"id\"");
4274 BeginWriteAttribute("value", " value=\"", 52266, "\"", 52289, 1);
4275 WriteAttributeValue("", 52274, brokerSearchId, 52274, 15, false);
4276 EndWriteAttribute();
4277 WriteLiteral(@" type=""hidden"" />
4278 <div class=""icon-wrapper-wclick"">
4279 <i class=""fas fa-search ta-submit-on-icon-click""></i>
4280 <input class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"" name=""q"" type=""text""");
4281 BeginWriteAttribute("placeholder", " placeholder=\"", 52593, "\"", 52615, 1);
4282 WriteAttributeValue("", 52607, ctaText, 52607, 8, false);
4283 EndWriteAttribute();
4284 WriteLiteral(" onfocus=\"this.placeholder = \'\'\"");
4285 BeginWriteAttribute("onblur", " onblur=\"", 52648, "\"", 52684, 3);
4286 WriteAttributeValue("", 52657, "this.placeholder=\'", 52657, 18, true);
4287 WriteAttributeValue("", 52675, ctaText, 52675, 8, false);
4288 WriteAttributeValue("", 52683, "\'", 52683, 1, true);
4289 EndWriteAttribute();
4290 WriteLiteral(" />\r\n </div>\r\n </form>\r\n");
4291 WriteLiteral(" </div>\r\n <div>\r\n <a href=\"javascript:panelSalgsvurdering(\'Hovedmenu\')\" class=\"btn btn-orange btn-block\">");
4292 Write(Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING"));
4293 WriteLiteral("<i class=\"cta-icon fa fa-angle-right\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n");
4294
4295 }
4296 Custom.Integration.Brokers.Models.BrokerEmployee GetBrokerFromCurrentProduct()
4297 {
4298 string productId = Dynamicweb.Context.Current.Request["ProductId"];
4299
4300 if (string.IsNullOrWhiteSpace(productId))
4301 {
4302 return null;
4303 }
4304
4305 var propertyProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(productId, string.Empty, true);
4306 if (propertyProduct == null)
4307 {
4308 return null;
4309 }
4310
4311 string employee = Dynamicweb.Core.Converter.ToString(
4312 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xAktoererMaeglerKontaktEmail")
4313 );
4314 string storeId = Dynamicweb.Core.Converter.ToString(
4315 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xButikID")
4316 );
4317
4318 if (string.IsNullOrWhiteSpace(employee) || string.IsNullOrWhiteSpace(storeId))
4319 {
4320 return null;
4321 }
4322
4323 return Custom.Integration.Brokers.Search.GetEmployee(storeId, employee);
4324 }
4325
4326 string GetAgentTitleFromCurrentProduct()
4327 {
4328 var propBroker = GetBrokerFromCurrentProduct();
4329
4330 if (propBroker?.Broker == null)
4331 {
4332 return string.Empty;
4333 }
4334
4335 if (!string.IsNullOrEmpty(propBroker.Broker.CompanyName))
4336 {
4337 return propBroker.Broker.CompanyName;
4338 }
4339
4340 return propBroker.Broker.Name ?? string.Empty;
4341 }
4342
4343 string GetMasterBrokerUrlFromCurrentProduct()
4344 {
4345 var propBroker = GetBrokerFromCurrentProduct();
4346
4347 var itemId = propBroker?.Broker?.ItemId;
4348 var itemType = propBroker?.Broker?.ItemType;
4349
4350 if (string.IsNullOrWhiteSpace(itemId) || string.IsNullOrWhiteSpace(itemType))
4351 {
4352 return string.Empty;
4353 }
4354 var brokerItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(itemType, itemId);
4355
4356 if (brokerItem == null)
4357 {
4358 return string.Empty;
4359 }
4360
4361 var websiteId = Dynamicweb.Core.Converter.ToInt32(brokerItem["WebsiteId"]);
4362 var page = Dynamicweb.Content.Services.Pages.GetFirstPageForArea(websiteId);
4363 return Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?Id=" + page?.ID);
4364 }
4365
4366 void RenderSlideMenu(bool erhverv, string maeglersoegning)
4367 {
4368 WriteLiteral(" <div id=\"menu\" \r\n class=\"main-menu-slide \"\r\n role=\"navigation\"");
4369 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 55864, "\"", 55980, 1);
4370 WriteAttributeValue("", 55891, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.MainMenu", "Hovedmenu")), 55891, 89, false);
4371 EndWriteAttribute();
4372 WriteLiteral(@"
4373 aria-modal=""true"">
4374 <div class=""container"">
4375 <div class=""row"">
4376 <div class=""col-12"">
4377 <span class=""menu-headline"">MENU</span>
4378 </div>
4379 <div class=""menu-slide""
4380 role=""button""
4381 tabindex=""0""");
4382 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 56345, "\"", 56473, 1);
4383 WriteAttributeValue("", 56384, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.CloseMenu", "Luk menu")), 56384, 89, false);
4384 EndWriteAttribute();
4385 WriteLiteral(">\r\n <b aria-hidden=\"true\"></b>\r\n </div>\r\n <div class=\"col-12 main-slidemenu\" role=\"region\"");
4386 BeginWriteAttribute("aria-label", " aria-label=\"", 56625, "\"", 56741, 1);
4387 WriteAttributeValue("", 56638, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.NavigationLinks", "Navigationslinks")), 56638, 103, false);
4388 EndWriteAttribute();
4389 WriteLiteral(">\r\n");
4390
4391 var navigationSettings = new NavigationSettings();
4392 navigationSettings.StartLevel = 1;
4393 navigationSettings.StopLevel = 2;
4394 navigationSettings.ExpandMode = ExpandMode.All;
4395 navigationSettings.RootAreaId = Pageview.Area.ID;
4396
4397 Write(Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings));
4398 WriteLiteral(" </div>\r\n <div class=\"col-12 bottom-btns\">\r\n\r\n");
4399
4400 string[] maeglerid;
4401 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0";
4402
4403 if (erhverv)
4404 {
4405 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None);
4406 }
4407 else
4408 {
4409 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None);
4410 }
4411
4412 WriteLiteral(" <form method=\"GET\" action=\"/Default.aspx\" role=\"search\">\r\n <input name=\"id\"");
4413 BeginWriteAttribute("value", " value=\"", 58238, "\"", 58259, 1);
4414 WriteAttributeValue("", 58246, maeglerid[1], 58246, 13, false);
4415 EndWriteAttribute();
4416 WriteLiteral(" type=\"hidden\" />\r\n <div class=\"icon-wrapper-wclick\">\r\n <label for=\"broker-search-menu-vm\" class=\"sr-only\">");
4417 Write(Translate("Custom:Accessibility.FindBroker", "Find mægler"));
4418 WriteLiteral(@"</label>
4419 <i class=""fas fa-search ta-submit-on-icon-click""
4420 aria-hidden=""true""
4421 role=""button""
4422 tabindex=""0""");
4423 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 58754, "\"", 58907, 1);
4424 WriteAttributeValue("", 58807, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.SearchBroker", "Søg efter mægler")), 58807, 100, false);
4425 EndWriteAttribute();
4426 WriteLiteral(@"></i>
4427 <input id=""broker-search-menu-vm""
4428 class=""box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter""
4429 name=""q""
4430 type=""text""");
4431 BeginWriteAttribute("placeholder", " \r\n placeholder=\"", 59215, "\"", 59366, 1);
4432 WriteAttributeValue("", 59274, HtmlEncoder.HtmlAttributeEncode(Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER")), 59274, 92, false);
4433 EndWriteAttribute();
4434 BeginWriteAttribute("aria-label", " \r\n aria-label=\"", 59367, "\"", 59563, 1);
4435 WriteAttributeValue("", 59425, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.BrokerSearchField", "Indtast postnummer eller navn for at finde mægler")), 59425, 138, false);
4436 EndWriteAttribute();
4437 WriteLiteral("\r\n onfocus=\"this.placeholder = \'FIND MÆGLER\'\" />\r\n </div>\r\n </form>\r\n");
4438 WriteLiteral(" <br />\r\n");
4439
4440 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + "";
4441 WriteLiteral(" <a");
4442 BeginWriteAttribute("href", " href=\"", 59973, "\"", 60044, 5);
4443 WriteAttributeValue("", 59980, "javascript:panelSalgsvurdering(\'", 59980, 32, true);
4444 WriteAttributeValue("", 60012, dpmaegler, 60012, 10, false);
4445 WriteAttributeValue("", 60022, "\',\'", 60022, 3, true);
4446 WriteAttributeValue("", 60025, Pageview.AreaID, 60025, 16, false);
4447 WriteAttributeValue("", 60041, "\');", 60041, 3, true);
4448 EndWriteAttribute();
4449 WriteLiteral(" \r\n class=\"btn btn-block btn-default-invert js-close-menu\"");
4450 BeginWriteAttribute("aria-label", "\r\n aria-label=\"", 60129, "\"", 60285, 1);
4451 WriteAttributeValue("", 60170, HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.FreeSalesAssessment", "Få gratis salgsvurdering")), 60170, 115, false);
4452 EndWriteAttribute();
4453 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");
4454 }
4455
4456 void RenderBlockList(List<Block> blocks)
4457 {
4458 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
4459 blocks = blocks.OrderBy(item => item.SortId).ToList();
4460
4461 foreach (Block item in blocks)
4462 {
4463 if (debug) {
4464 WriteLiteral(" <!-- Block START: ");
4465 Write(item.Id);
4466 WriteLiteral(" -->\r\n");
4467 }
4468
4469 if (item.Design == null)
4470 {
4471 RenderBlock(item);
4472 }
4473 else if (item.Design.RenderType == RenderType.None) {
4474 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
4475
4476 WriteLiteral(" <div");
4477 BeginWriteAttribute("class", " class=\"", 61540, "\"", 61564, 2);
4478 WriteAttributeValue("", 61548, cssClass, 61548, 9, false);
4479 WriteAttributeValue(" ", 61557, "dw-mod", 61558, 7, true);
4480 EndWriteAttribute();
4481 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4482 }
4483 else if (item.Design.RenderType != RenderType.Hide)
4484 {
4485 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
4486
4487 if (!item.SkipRenderBlocksList) {
4488 if (item.Design.RenderType == RenderType.Row)
4489 {
4490 WriteLiteral(" <div");
4491 BeginWriteAttribute("class", " class=\"", 61991, "\"", 62046, 4);
4492 WriteAttributeValue("", 61999, "grid", 61999, 4, true);
4493 WriteAttributeValue(" ", 62003, "grid--align-content-start", 62004, 26, true);
4494 WriteAttributeValue(" ", 62029, cssClass, 62030, 9, false);
4495 WriteAttributeValue(" ", 62039, "dw-mod", 62040, 7, true);
4496 EndWriteAttribute();
4497 BeginWriteAttribute("id", " id=\"", 62047, "\"", 62067, 2);
4498 WriteAttributeValue("", 62052, "Block__", 62052, 7, true);
4499 WriteAttributeValue("", 62059, item.Id, 62059, 8, false);
4500 EndWriteAttribute();
4501 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4502 }
4503
4504 if (item.Design.RenderType == RenderType.Column)
4505 {
4506 string hidePadding = item.Design.HidePadding ? "u-no-padding" : "";
4507 string size = item.Design.Size ?? "12";
4508 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size;
4509
4510 WriteLiteral(" <div");
4511 BeginWriteAttribute("class", " class=\"", 62563, "\"", 62694, 9);
4512 WriteAttributeValue("", 62571, "grid__col-lg-", 62571, 13, true);
4513 WriteAttributeValue("", 62584, item.Design.Size, 62584, 17, false);
4514 WriteAttributeValue(" ", 62601, "grid__col-md-", 62602, 14, true);
4515 WriteAttributeValue("", 62615, item.Design.Size, 62615, 17, false);
4516 WriteAttributeValue(" ", 62632, "grid__col-sm-12", 62633, 16, true);
4517 WriteAttributeValue(" ", 62648, "grid__col-xs-12", 62649, 16, true);
4518 WriteAttributeValue(" ", 62664, hidePadding, 62665, 12, false);
4519 WriteAttributeValue(" ", 62677, cssClass, 62678, 9, false);
4520 WriteAttributeValue(" ", 62687, "dw-mod", 62688, 7, true);
4521 EndWriteAttribute();
4522 BeginWriteAttribute("id", " id=\"", 62695, "\"", 62715, 2);
4523 WriteAttributeValue("", 62700, "Block__", 62700, 7, true);
4524 WriteAttributeValue("", 62707, item.Id, 62707, 8, false);
4525 EndWriteAttribute();
4526 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4527 }
4528
4529 if (item.Design.RenderType == RenderType.Table)
4530 {
4531 WriteLiteral(" <table");
4532 BeginWriteAttribute("class", " class=\"", 62946, "\"", 62976, 3);
4533 WriteAttributeValue("", 62954, "table", 62954, 5, true);
4534 WriteAttributeValue(" ", 62959, cssClass, 62960, 9, false);
4535 WriteAttributeValue(" ", 62969, "dw-mod", 62970, 7, true);
4536 EndWriteAttribute();
4537 BeginWriteAttribute("id", " id=\"", 62977, "\"", 62997, 2);
4538 WriteAttributeValue("", 62982, "Block__", 62982, 7, true);
4539 WriteAttributeValue("", 62989, item.Id, 62989, 8, false);
4540 EndWriteAttribute();
4541 WriteLiteral(">\r\n RenderBlock(item);\r\n </table>\r\n");
4542 }
4543
4544 if (item.Design.RenderType == RenderType.TableRow)
4545 {
4546 WriteLiteral(" <tr");
4547 BeginWriteAttribute("class", " class=\"", 63230, "\"", 63254, 2);
4548 WriteAttributeValue("", 63238, cssClass, 63238, 9, false);
4549 WriteAttributeValue(" ", 63247, "dw-mod", 63248, 7, true);
4550 EndWriteAttribute();
4551 BeginWriteAttribute("id", " id=\"", 63255, "\"", 63275, 2);
4552 WriteAttributeValue("", 63260, "Block__", 63260, 7, true);
4553 WriteAttributeValue("", 63267, item.Id, 63267, 8, false);
4554 EndWriteAttribute();
4555 WriteLiteral(">\r\n RenderBlock(item);\r\n </tr>\r\n");
4556 }
4557
4558 if (item.Design.RenderType == RenderType.TableColumn)
4559 {
4560 WriteLiteral(" <td");
4561 BeginWriteAttribute("class", " class=\"", 63508, "\"", 63532, 2);
4562 WriteAttributeValue("", 63516, cssClass, 63516, 9, false);
4563 WriteAttributeValue(" ", 63525, "dw-mod", 63526, 7, true);
4564 EndWriteAttribute();
4565 BeginWriteAttribute("id", " id=\"", 63533, "\"", 63553, 2);
4566 WriteAttributeValue("", 63538, "Block__", 63538, 7, true);
4567 WriteAttributeValue("", 63545, item.Id, 63545, 8, false);
4568 EndWriteAttribute();
4569 WriteLiteral(">\r\n RenderBlock(item);\r\n </td>\r\n");
4570 }
4571
4572 if (item.Design.RenderType == RenderType.CardHeader)
4573 {
4574 WriteLiteral(" <div");
4575 BeginWriteAttribute("class", " class=\"", 63786, "\"", 63822, 3);
4576 WriteAttributeValue("", 63794, "card-header", 63794, 11, true);
4577 WriteAttributeValue(" ", 63805, cssClass, 63806, 9, false);
4578 WriteAttributeValue(" ", 63815, "dw-mod", 63816, 7, true);
4579 EndWriteAttribute();
4580 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4581 }
4582
4583 if (item.Design.RenderType == RenderType.CardBody)
4584 {
4585 WriteLiteral(" <div");
4586 BeginWriteAttribute("class", " class=\"", 64054, "\"", 64083, 3);
4587 WriteAttributeValue("", 64062, "card", 64062, 4, true);
4588 WriteAttributeValue(" ", 64066, cssClass, 64067, 9, false);
4589 WriteAttributeValue(" ", 64076, "dw-mod", 64077, 7, true);
4590 EndWriteAttribute();
4591 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4592 }
4593
4594 if (item.Design.RenderType == RenderType.CardFooter)
4595 {
4596 WriteLiteral(" <div");
4597 BeginWriteAttribute("class", " class=\"", 64317, "\"", 64353, 3);
4598 WriteAttributeValue("", 64325, "card-footer", 64325, 11, true);
4599 WriteAttributeValue(" ", 64336, cssClass, 64337, 9, false);
4600 WriteAttributeValue(" ", 64346, "dw-mod", 64347, 7, true);
4601 EndWriteAttribute();
4602 WriteLiteral(">\r\n RenderBlock(item);\r\n </div>\r\n");
4603 }
4604 }
4605 else
4606 {
4607 RenderBlock(item);
4608 }
4609 }
4610
4611 if (debug) {
4612 WriteLiteral(" <!-- Block END: ");
4613 Write(item.Id);
4614 WriteLiteral(" -->\r\n");
4615 }
4616 }
4617 }
4618
4619 void RenderBlock(Block item)
4620 {
4621 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
4622
4623 if (item.Template != null)
4624 {
4625 Write(BlocksPage.RenderTemplate(item.Template));
4626
4627 }
4628
4629 if (item.Component != null)
4630 {
4631 string customSufix = "Custom";
4632 string methodName = item.Component.HelperName;
4633
4634 ComponentBase[] methodParameters = new ComponentBase[1];
4635 methodParameters[0] = item.Component;
4636 Type methodType = this.GetType();
4637
4638 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix);
4639 MethodInfo generalMethod = methodType.GetMethod(methodName);
4640
4641 try {
4642 if (debug) {
4643 WriteLiteral(" <!-- Component: ");
4644 Write(methodName.Replace("Render", ""));
4645 WriteLiteral(" -->\r\n");
4646 }
4647 Write(customMethod.Invoke(this, methodParameters).ToString());
4648 ;
4649 } catch {
4650 try {
4651 Write(generalMethod.Invoke(this, methodParameters).ToString());
4652
4653 ;
4654 } catch(Exception ex) {
4655 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex);
4656 }
4657 }
4658 }
4659
4660 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList)
4661 {
4662 RenderBlockList(item.BlocksList);
4663 }
4664 }
4665
4666 void Render(ComponentBase component)
4667 {
4668 if (component != null)
4669 {
4670 Write(component.Render(this));
4671
4672 }
4673 }
4674
4675 void RenderIcon(Icon settings)
4676 {
4677 if (settings != null)
4678 {
4679 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
4680
4681 if (settings.Name != null)
4682 {
4683 if (string.IsNullOrEmpty(settings.Label))
4684 {
4685 WriteLiteral(" <i");
4686 BeginWriteAttribute("class", " class=\"", 67249, "\"", 67307, 3);
4687 WriteAttributeValue("", 67257, settings.Prefix, 67257, 16, false);
4688 WriteAttributeValue(" ", 67273, settings.Name, 67274, 14, false);
4689 WriteAttributeValue(" ", 67288, settings.CssClass, 67289, 18, false);
4690 EndWriteAttribute();
4691 WriteLiteral(" ");
4692 Write(color);
4693 WriteLiteral("></i>\r\n");
4694 }
4695 else
4696 {
4697 if (settings.LabelPosition == IconLabelPosition.Before)
4698 {
4699 WriteLiteral(" <div");
4700 BeginWriteAttribute("class", " class=\"", 67510, "\"", 67570, 3);
4701 WriteAttributeValue("", 67518, "u-flex", 67518, 6, true);
4702 WriteAttributeValue(" ", 67524, "u-flex--align-items-center", 67525, 27, true);
4703 WriteAttributeValue(" ", 67551, settings.CssClass, 67552, 18, false);
4704 EndWriteAttribute();
4705 WriteLiteral(">");
4706 Write(settings.Label);
4707 WriteLiteral(" <i");
4708 BeginWriteAttribute("class", " class=\"", 67590, "\"", 67643, 3);
4709 WriteAttributeValue("", 67598, settings.Prefix, 67598, 16, false);
4710 WriteAttributeValue(" ", 67614, settings.Name, 67615, 14, false);
4711 WriteAttributeValue(" ", 67629, "u-margin-left", 67630, 14, true);
4712 EndWriteAttribute();
4713 WriteLiteral(" ");
4714 Write(color);
4715 WriteLiteral("></i></div>\r\n");
4716 }
4717 else
4718 {
4719 WriteLiteral(" <div");
4720 BeginWriteAttribute("class", " class=\"", 67764, "\"", 67824, 3);
4721 WriteAttributeValue("", 67772, "u-flex", 67772, 6, true);
4722 WriteAttributeValue(" ", 67778, "u-flex--align-items-center", 67779, 27, true);
4723 WriteAttributeValue(" ", 67805, settings.CssClass, 67806, 18, false);
4724 EndWriteAttribute();
4725 WriteLiteral("><i");
4726 BeginWriteAttribute("class", " class=\"", 67828, "\"", 67894, 4);
4727 WriteAttributeValue("", 67836, settings.Prefix, 67836, 16, false);
4728 WriteAttributeValue(" ", 67852, settings.Name, 67853, 14, false);
4729 WriteAttributeValue(" ", 67867, "u-margin-right--lg", 67868, 19, true);
4730 WriteAttributeValue(" ", 67886, "u-w20px", 67887, 8, true);
4731 EndWriteAttribute();
4732 WriteLiteral(" ");
4733 Write(color);
4734 WriteLiteral("></i>");
4735 Write(settings.Label);
4736 WriteLiteral("</div>\r\n");
4737 }
4738 }
4739 }
4740 else if (!string.IsNullOrEmpty(settings.Label))
4741 {
4742 Write(settings.Label);
4743
4744 }
4745 }
4746 }
4747
4748 void RenderButton(Button settings)
4749 {
4750 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
4751 {
4752 Dictionary<string, string> attributes = new Dictionary<string, string>();
4753 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
4754 if (settings.Disabled) {
4755 attributes.Add("disabled", "true");
4756 classList.Add("disabled");
4757 }
4758
4759 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle))
4760 {
4761 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
4762 RenderConfirmDialog(settings);
4763 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true";
4764 }
4765
4766 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
4767 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
4768 if (!string.IsNullOrEmpty(settings.AltText))
4769 {
4770 attributes.Add("title", settings.AltText);
4771 }
4772 else if (!string.IsNullOrEmpty(settings.Title))
4773 {
4774 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty);
4775 cleanTitle = cleanTitle.Replace(" ", " ");
4776 attributes.Add("title", cleanTitle);
4777 }
4778
4779 var onClickEvents = new List<string>();
4780 if (!string.IsNullOrEmpty(settings.OnClick))
4781 {
4782 onClickEvents.Add(settings.OnClick);
4783 }
4784 if (!string.IsNullOrEmpty(settings.Href))
4785 {
4786 if (settings.Href.Contains("javascript"))
4787 {
4788 settings.Href = settings.Href.Replace("http://", "");
4789 }
4790 onClickEvents.Add("location.href='" + settings.Href + "'");
4791 }
4792 if (onClickEvents.Count > 0)
4793 {
4794 attributes.Add("onClick", string.Join(";", onClickEvents));
4795 }
4796
4797 if (settings.ButtonLayout != ButtonLayout.None)
4798 {
4799 classList.Add("btn");
4800 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
4801 if (btnLayout == "linkclean")
4802 {
4803 btnLayout = "link-clean"; //fix
4804 }
4805 classList.Add("btn--" + btnLayout);
4806 }
4807
4808 if (settings.Icon == null)
4809 {
4810 settings.Icon = new Icon();
4811 }
4812
4813 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : "";
4814 settings.Icon.Label = settings.Title;
4815
4816 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower());
4817
4818 WriteLiteral(" <button");
4819 BeginWriteAttribute("class", " class=\"", 71487, "\"", 71530, 2);
4820 WriteAttributeValue("", 71495, string.Join(" ", classList), 71495, 28, false);
4821 WriteAttributeValue(" ", 71523, "dw-mod", 71524, 7, true);
4822 EndWriteAttribute();
4823 WriteLiteral(" ");
4824 Write(ComponentMethods.AddAttributes(attributes));
4825 WriteLiteral(" ");
4826 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
4827 WriteLiteral(">");
4828 RenderIcon(settings.Icon);WriteLiteral("</button>\r\n");
4829 }
4830 }
4831
4832 void RenderConfirmDialog(Button settings)
4833 {
4834 Modal confirmDialog = new Modal {
4835 Id = settings.Id,
4836 Width = ModalWidth.Sm,
4837 Heading = new Heading
4838 {
4839 Level = 2,
4840 Title = settings.ConfirmTitle
4841 },
4842 BodyText = settings.ConfirmText
4843 };
4844
4845 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"});
4846 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick });
4847
4848 RenderModal(confirmDialog);
4849 }
4850
4851 void RenderLink(Link settings)
4852 {
4853 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
4854 {
4855 Dictionary<string, string> attributes = new Dictionary<string, string>();
4856 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
4857 if (settings.Disabled)
4858 {
4859 attributes.Add("disabled", "true");
4860 classList.Add("disabled");
4861 }
4862
4863 if (!string.IsNullOrEmpty(settings.AltText))
4864 {
4865 attributes.Add("title", settings.AltText);
4866 }
4867 else if (!string.IsNullOrEmpty(settings.Title))
4868 {
4869 attributes.Add("title", settings.Title);
4870 }
4871
4872 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
4873 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
4874 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); }
4875 attributes.Add("href", settings.Href);
4876
4877 if (settings.ButtonLayout != ButtonLayout.None)
4878 {
4879 classList.Add("btn");
4880 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
4881 if (btnLayout == "linkclean")
4882 {
4883 btnLayout = "link-clean"; //fix
4884 }
4885 classList.Add("btn--" + btnLayout);
4886 }
4887
4888 if (settings.Icon == null)
4889 {
4890 settings.Icon = new Icon();
4891 }
4892 settings.Icon.Label = settings.Title;
4893
4894 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None)
4895 {
4896 settings.Rel = LinkRelType.Noopener;
4897 }
4898 if (settings.Target != LinkTargetType.None)
4899 {
4900 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower());
4901 }
4902 if (settings.Download)
4903 {
4904 attributes.Add("download", "true");
4905 }
4906 if (settings.Rel != LinkRelType.None)
4907 {
4908 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower());
4909 }
4910
4911 WriteLiteral(" <a");
4912 BeginWriteAttribute("class", " class=\"", 75262, "\"", 75305, 2);
4913 WriteAttributeValue("", 75270, string.Join(" ", classList), 75270, 28, false);
4914 WriteAttributeValue(" ", 75298, "dw-mod", 75299, 7, true);
4915 EndWriteAttribute();
4916 WriteLiteral(" ");
4917 Write(ComponentMethods.AddAttributes(attributes));
4918 WriteLiteral(" ");
4919 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
4920 WriteLiteral(">Render(settings.Icon);</a>\r\n");
4921 }
4922 }
4923
4924 void RenderRating(Rating settings)
4925 {
4926 if (settings.Score > 0)
4927 {
4928 int rating = settings.Score;
4929 string iconType = "fa-star";
4930
4931 switch (settings.Type.ToString()) {
4932 case "Stars":
4933 iconType = "fa-star";
4934 break;
4935 case "Hearts":
4936 iconType = "fa-heart";
4937 break;
4938 case "Lemons":
4939 iconType = "fa-lemon";
4940 break;
4941 case "Bombs":
4942 iconType = "fa-bomb";
4943 break;
4944 }
4945
4946 WriteLiteral(" <div class=\"u-ta-right\">\r\n");
4947 for (int i = 0; i < settings.OutOf; i++)
4948 {
4949 WriteLiteral(" <i");
4950 BeginWriteAttribute("class", " class=\"", 76439, "\"", 76486, 2);
4951 WriteAttributeValue("", 76447, rating > i ? "fas" : "far", 76447, 29, false);
4952 WriteAttributeValue(" ", 76476, iconType, 76477, 9, false);
4953 EndWriteAttribute();
4954 WriteLiteral("></i>\r\n");
4955 }
4956 WriteLiteral(" </div>\r\n");
4957 }
4958 }
4959
4960 void RenderNavigation(Navigation settings) {
4961 RenderNavigation(new
4962 {
4963 id = settings.Id,
4964 cssclass = settings.CssClass,
4965 startLevel = settings.StartLevel,
4966 endlevel = settings.EndLevel,
4967 expandmode = settings.Expandmode,
4968 sitemapmode = settings.SitemapMode,
4969 template = settings.Template
4970 });
4971 }
4972
4973 void RenderLeftNavigation(LeftNavigation settings) {
4974 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id;
4975 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template;
4976 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel;
4977 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel;
4978 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode;
4979
4980 WriteLiteral(" <div class=\"grid__cell\">\r\n RenderNavigation(settings);\r\n </div> \r\n");
4981 }
4982
4983 void RenderHeading(Heading settings)
4984 {
4985 if (settings != null && !string.IsNullOrEmpty(settings.Title))
4986 {
4987 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
4988 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div";
4989
4990 Write("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">");
4991
4992 if (!string.IsNullOrEmpty(settings.Link))
4993 {
4994 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None });
4995 }
4996 else
4997 {
4998 if (settings.Icon == null)
4999 {
5000 settings.Icon = new Icon();
5001 }
5002 settings.Icon.Label = settings.Title;
5003 RenderIcon(settings.Icon);
5004 }
5005 Write("</" + tagName + ">");
5006 ;
5007 }
5008 }
5009
5010 void RenderImage(Image settings)
5011 {
5012 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None)
5013 {
5014 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
5015 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); }
5016
5017 if (settings.Caption != null)
5018 {
5019 WriteLiteral(" ");
5020 WriteLiteral("<div>\r\n");
5021 }
5022
5023 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower();
5024 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower();
5025
5026 WriteLiteral(" <div");
5027 BeginWriteAttribute("class", " class=\"", 79967, "\"", 80048, 5);
5028 WriteAttributeValue("", 79975, "image-filter", 79975, 12, true);
5029 WriteAttributeValue(" ", 79987, "image-filter--", 79988, 15, true);
5030 WriteAttributeValue("", 80002, primaryFilterClass, 80002, 19, false);
5031 WriteAttributeValue(" ", 80021, "u-position-relative", 80022, 20, true);
5032 WriteAttributeValue(" ", 80041, "dw-mod", 80042, 7, true);
5033 EndWriteAttribute();
5034 WriteLiteral(" ");
5035 Write(ComponentMethods.AddAttributes(optionalAttributes));
5036 WriteLiteral(">\r\n <div");
5037 BeginWriteAttribute("class", " class=\"", 80128, "\"", 80191, 4);
5038 WriteAttributeValue("", 80136, "image-filter", 80136, 12, true);
5039 WriteAttributeValue(" ", 80148, "image-filter--", 80149, 15, true);
5040 WriteAttributeValue("", 80163, secondaryFilterClass, 80163, 21, false);
5041 WriteAttributeValue(" ", 80184, "dw-mod", 80185, 7, true);
5042 EndWriteAttribute();
5043 WriteLiteral(">\r\n");
5044 if (settings.Link != null)
5045 {
5046 WriteLiteral(" <a");
5047 BeginWriteAttribute("href", " href=\"", 80305, "\"", 80326, 1);
5048 WriteAttributeValue("", 80312, settings.Link, 80312, 14, false);
5049 EndWriteAttribute();
5050 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n");
5051 }
5052 else
5053 {
5054 RenderTheImage(settings);
5055 }
5056 WriteLiteral(" </div>\r\n </div>\r\n");
5057
5058 if (settings.Caption != null)
5059 {
5060 WriteLiteral(" <span class=\"image-caption dw-mod\">");
5061 Write(settings.Caption);
5062 WriteLiteral("</span>\r\n ");
5063 WriteLiteral("</div>\r\n");
5064 }
5065 }
5066 else
5067 {
5068 if (settings.Caption != null)
5069 {
5070 WriteLiteral(" ");
5071 WriteLiteral("<div>\r\n");
5072 }
5073 if (!string.IsNullOrEmpty(settings.Link))
5074 {
5075 WriteLiteral(" <a");
5076 BeginWriteAttribute("href", " href=\"", 81069, "\"", 81090, 1);
5077 WriteAttributeValue("", 81076, settings.Link, 81076, 14, false);
5078 EndWriteAttribute();
5079 WriteLiteral(">\r\n RenderTheImage(settings);\r\n </a>\r\n");
5080 }
5081 else
5082 {
5083 RenderTheImage(settings);
5084 }
5085
5086 if (settings.Caption != null)
5087 {
5088 WriteLiteral(" <span class=\"image-caption dw-mod\">");
5089 Write(settings.Caption);
5090 WriteLiteral("</span>\r\n ");
5091 WriteLiteral("</div>\r\n");
5092 }
5093 }
5094 }
5095
5096 void RenderTheImage(Image settings)
5097 {
5098 if (settings != null)
5099 {
5100 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg";
5101 string placeholderImage = "/Files/Images/placeholder.gif";
5102 string imageEngine = "/Admin/Public/GetImage.ashx?";
5103
5104 string imageStyle = "";
5105
5106 switch (settings.Style)
5107 {
5108 case ImageStyle.Ball:
5109 imageStyle = "grid__cell-img--ball";
5110 break;
5111
5112 case ImageStyle.Triangle:
5113 imageStyle = "grid__cell-img--triangle";
5114 break;
5115 }
5116
5117 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle)
5118 {
5119 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop;
5120
5121 if (settings.ImageDefault != null)
5122 {
5123 settings.ImageDefault.Height = settings.ImageDefault.Width;
5124 }
5125 if (settings.ImageMedium != null)
5126 {
5127 settings.ImageMedium.Height = settings.ImageMedium.Width;
5128 }
5129 if (settings.ImageSmall != null)
5130 {
5131 settings.ImageSmall.Height = settings.ImageSmall.Width;
5132 }
5133 }
5134
5135 string defaultImage = imageEngine;
5136 string imageSmall = "";
5137 string imageMedium = "";
5138
5139 if (settings.DisableImageEngine)
5140 {
5141 defaultImage = settings.Path;
5142 }
5143 else
5144 {
5145 if (settings.ImageDefault != null)
5146 {
5147 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault);
5148
5149 if (settings.Path.GetType() != typeof(string))
5150 {
5151 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
5152 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
5153 }
5154 else
5155 {
5156 defaultImage += settings.Path != null ? "Image=" + settings.Path : "";
5157 }
5158
5159 defaultImage += "&AlternativeImage=" + alternativeImage;
5160 }
5161
5162 if (settings.ImageSmall != null)
5163 {
5164 imageSmall = "data-src-small=\"" + imageEngine;
5165 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall);
5166
5167 if (settings.Path.GetType() != typeof(string))
5168 {
5169 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
5170 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
5171 }
5172 else
5173 {
5174 imageSmall += settings.Path != null ? "Image=" + settings.Path : "";
5175 }
5176
5177 imageSmall += "&alternativeImage=" + alternativeImage;
5178
5179 imageSmall += "\"";
5180 }
5181
5182 if (settings.ImageMedium != null)
5183 {
5184 imageMedium = "data-src-medium=\"" + imageEngine;
5185 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium);
5186
5187 if (settings.Path.GetType() != typeof(string))
5188 {
5189 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
5190 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
5191 }
5192 else
5193 {
5194 imageMedium += settings.Path != null ? "Image=" + settings.Path : "";
5195 }
5196
5197 imageMedium += "&alternativeImage=" + alternativeImage;
5198
5199 imageMedium += "\"";
5200 }
5201 }
5202
5203 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
5204 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); }
5205 if (!string.IsNullOrEmpty(settings.Title))
5206 {
5207 optionalAttributes.Add("alt", settings.Title);
5208 optionalAttributes.Add("title", settings.Title);
5209 }
5210
5211 if (settings.DisableLazyLoad)
5212 {
5213 WriteLiteral(" <img");
5214 BeginWriteAttribute("id", " id=\"", 86569, "\"", 86586, 1);
5215 WriteAttributeValue("", 86574, settings.Id, 86574, 12, false);
5216 EndWriteAttribute();
5217 BeginWriteAttribute("class", " class=\"", 86587, "\"", 86632, 3);
5218 WriteAttributeValue("", 86595, imageStyle, 86595, 11, false);
5219 WriteAttributeValue(" ", 86606, settings.CssClass, 86607, 18, false);
5220 WriteAttributeValue(" ", 86625, "dw-mod", 86626, 7, true);
5221 EndWriteAttribute();
5222 BeginWriteAttribute("src", " src=\"", 86633, "\"", 86652, 1);
5223 WriteAttributeValue("", 86639, defaultImage, 86639, 13, false);
5224 EndWriteAttribute();
5225 WriteLiteral(" ");
5226 Write(ComponentMethods.AddAttributes(optionalAttributes));
5227 WriteLiteral(" ");
5228 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5229 WriteLiteral(" />\r\n");
5230 }
5231 else
5232 {
5233
5234 WriteLiteral(" <img");
5235 BeginWriteAttribute("id", " id=\"", 86850, "\"", 86867, 1);
5236 WriteAttributeValue("", 86855, settings.Id, 86855, 12, false);
5237 EndWriteAttribute();
5238 BeginWriteAttribute("class", " class=\"", 86868, "\"", 86913, 3);
5239 WriteAttributeValue("", 86876, imageStyle, 86876, 11, false);
5240 WriteAttributeValue(" ", 86887, settings.CssClass, 86888, 18, false);
5241 WriteAttributeValue(" ", 86906, "dw-mod", 86907, 7, true);
5242 EndWriteAttribute();
5243 WriteLiteral(" loading=\"lazy\"");
5244 BeginWriteAttribute("src", " src=\"", 86929, "\"", 86948, 1);
5245 WriteAttributeValue("", 86935, defaultImage, 86935, 13, false);
5246 EndWriteAttribute();
5247 WriteLiteral(" ");
5248 Write(ComponentMethods.AddAttributes(optionalAttributes));
5249 WriteLiteral(" ");
5250 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5251 WriteLiteral(" />\r\n");
5252 }
5253 }
5254 }
5255
5256 void RenderHiddenField(HiddenField settings) {
5257 var attributes = new Dictionary<string, string>();
5258 attributes.Add("type", "hidden");
5259 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5260 if (settings.Value != null) { attributes.Add("value", settings.Value); }
5261 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
5262
5263 WriteLiteral(" <input ");
5264 Write(ComponentMethods.AddAttributes(attributes));
5265 WriteLiteral(" ");
5266 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5267 WriteLiteral("/>\r\n");
5268 }
5269
5270 void RenderRadioButtonField(RadioButtonField settings)
5271 {
5272 var attributes = new Dictionary<string, string>();
5273 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id))
5274 {
5275 settings.Id = Guid.NewGuid().ToString("N");
5276 }
5277
5278 /*base settings*/
5279 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5280 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); }
5281 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); }
5282 if (settings.Disabled) { attributes.Add("disabled", "true"); }
5283 if (settings.Required) { attributes.Add("required", "true"); }
5284 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
5285 /*end*/
5286
5287 attributes.Add("type", "radio");
5288 if (settings.Checked) { attributes.Add("checked", "true"); }
5289 settings.CssClass = "form__control " + settings.CssClass;
5290 if (settings.Value != null) { attributes.Add("value", settings.Value); }
5291
5292 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value);
5293
5294 WriteLiteral(" <div");
5295 BeginWriteAttribute("class", " class=\"", 89268, "\"", 89326, 3);
5296 WriteAttributeValue("", 89276, "form__field-group", 89276, 17, true);
5297 WriteAttributeValue(" ", 89293, settings.WrapperCssClass, 89294, 25, false);
5298 WriteAttributeValue(" ", 89319, "dw-mod", 89320, 7, true);
5299 EndWriteAttribute();
5300 WriteLiteral(">\r\n <input ");
5301 Write(ComponentMethods.AddAttributes(resultAttributes));
5302 WriteLiteral(" class=\"");
5303 Write(settings.CssClass);
5304 WriteLiteral(" dw-mod\" />\r\n");
5305 if (!string.IsNullOrEmpty(settings.Label))
5306 {
5307 WriteLiteral(" <label");
5308 BeginWriteAttribute("for", " for=\"", 89531, "\"", 89549, 1);
5309 WriteAttributeValue("", 89537, settings.Id, 89537, 12, false);
5310 EndWriteAttribute();
5311 WriteLiteral(" class=\"dw-mod\">");
5312 Write(settings.Label);
5313 WriteLiteral("</label>\r\n");
5314 }
5315 if (!string.IsNullOrEmpty(settings.HelpText))
5316 {
5317 WriteLiteral(" <small class=\"form__help-text\">");
5318 Write(settings.HelpText);
5319 WriteLiteral("</small>\r\n");
5320 }
5321 WriteLiteral(" Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n");
5322 }
5323
5324 void RenderRadioButtonListField(RadioButtonListField settings)
5325 {
5326 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; }
5327
5328 WriteLiteral(" <div");
5329 BeginWriteAttribute("class", " class=\"", 90264, "\"", 90338, 4);
5330 WriteAttributeValue("", 90272, "form__field-group", 90272, 17, true);
5331 WriteAttributeValue(" ", 90289, settings.WrapperCssClass, 90290, 25, false);
5332 WriteAttributeValue(" ", 90315, "u-margin-bottom", 90316, 16, true);
5333 WriteAttributeValue(" ", 90331, "dw-mod", 90332, 7, true);
5334 EndWriteAttribute();
5335 WriteLiteral(" ");
5336 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5337 WriteLiteral(">\r\n");
5338 if (!string.IsNullOrEmpty(settings.Label))
5339 {
5340 WriteLiteral(" <label>");
5341 Write(settings.Label);
5342 WriteLiteral("</label>\r\n");
5343 }
5344 if (!string.IsNullOrEmpty(settings.HelpText))
5345 {
5346 WriteLiteral(" <small class=\"form__help-text\">");
5347 Write(settings.HelpText);
5348 WriteLiteral("</small>\r\n");
5349 }
5350 WriteLiteral("\r\n");
5351 foreach (var item in settings.Options)
5352 {
5353 if (settings.Required)
5354 {
5355 item.Required = true;
5356 }
5357 if (settings.Disabled)
5358 {
5359 item.Disabled = true;
5360 }
5361 if (!string.IsNullOrEmpty(settings.Name))
5362 {
5363 item.Name = settings.Name;
5364 }
5365 if (settings.Value != null && settings.Value == item.Value)
5366 {
5367 item.Checked = true;
5368 }
5369 if (!string.IsNullOrEmpty(settings.OnClick))
5370 {
5371 item.OnClick += settings.OnClick;
5372 }
5373 if (!string.IsNullOrEmpty(settings.OnChange))
5374 {
5375 item.OnChange += settings.OnChange;
5376 }
5377 if (!string.IsNullOrEmpty(settings.CssClass))
5378 {
5379 item.CssClass += settings.CssClass;
5380 }
5381 Render(item);
5382 }
5383 WriteLiteral("\r\n Render(new NotificationMessage { Message = settings.ErrorMessage });\r\n </div>\r\n");
5384 }
5385
5386 void RenderForm(Form settings) {
5387 if (settings != null)
5388 {
5389 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
5390 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); };
5391 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); };
5392 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); };
5393 var enctypes = new Dictionary<string, string>
5394 {
5395 { "multipart", "multipart/form-data" },
5396 { "text", "text/plain" },
5397 { "application", "application/x-www-form-urlencoded" }
5398 };
5399 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); };
5400 optionalAttributes.Add("method", settings.Method.ToString());
5401
5402 if (!string.IsNullOrEmpty(settings.FormStartMarkup))
5403 {
5404 Write(settings.FormStartMarkup);
5405
5406 }
5407 else
5408 {
5409 WriteLiteral(" ");
5410 WriteLiteral("<form class=\"");
5411 Write(settings.CssClass);
5412 WriteLiteral(" u-no-margin dw-mod\" ");
5413 Write(ComponentMethods.AddAttributes(optionalAttributes));
5414 WriteLiteral(" ");
5415 Write(ComponentMethods.AddAttributes(settings.ExtraAttributes));
5416 WriteLiteral(">\r\n");
5417 }
5418
5419 foreach (var field in settings.GetFields())
5420 {
5421 Render(field);
5422 }
5423
5424 WriteLiteral(" ");
5425 WriteLiteral("</form>\r\n");
5426 }
5427 }
5428
5429 void RenderText(Text settings)
5430 {
5431 Write(settings.Content);
5432
5433 }
5434
5435 void RenderContentModule(ContentModule settings) {
5436 if (!string.IsNullOrEmpty(settings.Content))
5437 {
5438 Write(settings.Content);
5439
5440 }
5441 }
5442
5443 void RenderModal(Modal settings) {
5444 if (settings != null)
5445 {
5446 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
5447
5448 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : "";
5449
5450 WriteLiteral(" <input type=\"checkbox\"");
5451 BeginWriteAttribute("id", " id=\"", 94734, "\"", 94761, 2);
5452 WriteAttributeValue("", 94739, modalId, 94739, 10, false);
5453 WriteAttributeValue("", 94749, "ModalTrigger", 94749, 12, true);
5454 EndWriteAttribute();
5455 WriteLiteral(" class=\"modal-trigger\" ");
5456 Write(onchange);
5457 WriteLiteral(" />\r\n");
5458 WriteLiteral(" <div class=\"modal-container\">\r\n");
5459 if (!settings.DisableDarkOverlay)
5460 {
5461 WriteLiteral(" <label");
5462 BeginWriteAttribute("for", " for=\"", 94941, "\"", 94969, 2);
5463 WriteAttributeValue("", 94947, modalId, 94947, 10, false);
5464 WriteAttributeValue("", 94957, "ModalTrigger", 94957, 12, true);
5465 EndWriteAttribute();
5466 BeginWriteAttribute("id", " id=\"", 94970, "\"", 94997, 2);
5467 WriteAttributeValue("", 94975, modalId, 94975, 10, false);
5468 WriteAttributeValue("", 94985, "ModalOverlay", 94985, 12, true);
5469 EndWriteAttribute();
5470 WriteLiteral(" class=\"modal-overlay\"></label>\r\n");
5471 }
5472 WriteLiteral(" <div");
5473 BeginWriteAttribute("class", " class=\"", 95070, "\"", 95179, 5);
5474 WriteAttributeValue("", 95078, "modal", 95078, 5, true);
5475 WriteAttributeValue(" ", 95083, "modal--", 95084, 8, true);
5476 WriteAttributeValue("", 95091, settings.Width.ToString().ToLower(), 95091, 36, false);
5477 WriteAttributeValue(" ", 95127, "modal-height--", 95128, 15, true);
5478 WriteAttributeValue("", 95142, settings.Height.ToString().ToLower(), 95142, 37, false);
5479 EndWriteAttribute();
5480 BeginWriteAttribute("id", " id=\"", 95180, "\"", 95200, 2);
5481 WriteAttributeValue("", 95185, modalId, 95185, 10, false);
5482 WriteAttributeValue("", 95195, "Modal", 95195, 5, true);
5483 EndWriteAttribute();
5484 WriteLiteral(">\r\n");
5485 if (settings.Heading != null)
5486 {
5487 if (!string.IsNullOrEmpty(settings.Heading.Title))
5488 {
5489 WriteLiteral(" <div class=\"modal__header\">\r\n RenderHeading(settings.Heading);\r\n </div>\r\n");
5490 }
5491 }
5492 WriteLiteral(" <div");
5493 BeginWriteAttribute("class", " class=\"", 95615, "\"", 95710, 2);
5494 WriteAttributeValue("", 95623, "modal__body", 95623, 11, true);
5495 WriteAttributeValue(" ", 95634, settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "", 95635, 75, false);
5496 EndWriteAttribute();
5497 WriteLiteral(">\r\n");
5498 if (!string.IsNullOrEmpty(settings.BodyText))
5499 {
5500 Write(settings.BodyText);
5501
5502 }
5503 if (settings.BodyTemplate != null)
5504 {
5505 Write(settings.BodyTemplate);
5506
5507 }
5508
5509 var actions = settings.GetActions();
5510 WriteLiteral(" </div>\r\n");
5511 if (actions.Length > 0)
5512 {
5513 WriteLiteral(" <div class=\"modal__footer\">\r\n");
5514 foreach (var action in actions)
5515 {
5516 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") {
5517 action.CssClass += " u-no-margin";
5518 } else {
5519 action.CssClass += " u-full-width u-margin-bottom";
5520 }
5521
5522 Render(action);
5523 }
5524 WriteLiteral(" </div>\r\n");
5525 }
5526 WriteLiteral(" <label class=\"modal__close-btn\"");
5527 BeginWriteAttribute("for", " for=\"", 96954, "\"", 96982, 2);
5528 WriteAttributeValue("", 96960, modalId, 96960, 10, false);
5529 WriteAttributeValue("", 96970, "ModalTrigger", 96970, 12, true);
5530 EndWriteAttribute();
5531 WriteLiteral("></label>\r\n </div>\r\n </div>\r\n");
5532 }
5533 }
5534
5535 void RenderMediaListItem(MediaListItem settings)
5536 {
5537 WriteLiteral(" <div");
5538 BeginWriteAttribute("class", " class=\"", 97220, "\"", 97269, 3);
5539 WriteAttributeValue("", 97228, "media-list-item", 97228, 15, true);
5540 WriteAttributeValue(" ", 97243, settings.CssClass, 97244, 18, false);
5541 WriteAttributeValue(" ", 97262, "dw-mod", 97263, 7, true);
5542 EndWriteAttribute();
5543 WriteLiteral(" ");
5544 Write(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : "");
5545 WriteLiteral(">\r\n");
5546 if (!string.IsNullOrEmpty(settings.Label))
5547 {
5548 if (!string.IsNullOrEmpty(settings.Link))
5549 {
5550 Render(new Link
5551 {
5552 Href = settings.Link,
5553 CssClass = "media-list-item__sticker dw-mod",
5554 ButtonLayout = ButtonLayout.None,
5555 Title = settings.Label,
5556 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
5557 });
5558 }
5559 else if (!string.IsNullOrEmpty(settings.OnClick))
5560 {
5561 WriteLiteral(" <span class=\"media-list-item__sticker dw-mod\"");
5562 BeginWriteAttribute("onclick", " onclick=\"", 98077, "\"", 98106, 1);
5563 WriteAttributeValue("", 98087, settings.OnClick, 98087, 19, false);
5564 EndWriteAttribute();
5565 WriteLiteral(">\r\n <span class=\"u-uppercase\">");
5566 Write(settings.Label);
5567 WriteLiteral("</span>\r\n </span>\r\n");
5568 }
5569 else
5570 {
5571 WriteLiteral(" <span class=\"media-list-item__sticker media-list-item__sticker--no-link dw-mod\">\r\n <span class=\"u-uppercase\">");
5572 Write(settings.Label);
5573 WriteLiteral("</span>\r\n </span>\r\n");
5574 }
5575 }
5576 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");
5577 if (!string.IsNullOrEmpty(settings.Title))
5578 {
5579 if (!string.IsNullOrEmpty(settings.Link))
5580 {
5581 Render(new Link
5582 {
5583 Href = settings.Link,
5584 CssClass = "media-list-item__name dw-mod",
5585 ButtonLayout = ButtonLayout.None,
5586 Title = settings.Title,
5587 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
5588 });
5589 }
5590 else if (!string.IsNullOrEmpty(settings.OnClick))
5591 {
5592 WriteLiteral(" <span class=\"media-list-item__name dw-mod\"");
5593 BeginWriteAttribute("onclick", " onclick=\"", 99603, "\"", 99632, 1);
5594 WriteAttributeValue("", 99613, settings.OnClick, 99613, 19, false);
5595 EndWriteAttribute();
5596 WriteLiteral(">");
5597 Write(settings.Title);
5598 WriteLiteral("</span>\r\n");
5599 }
5600 else
5601 {
5602 WriteLiteral(" <span class=\"media-list-item__name media-list-item__name--no-link dw-mod\">");
5603 Write(settings.Title);
5604 WriteLiteral("</span>\r\n");
5605 }
5606 }
5607 WriteLiteral("\r\n");
5608 if (!string.IsNullOrEmpty(settings.Status))
5609 {
5610 WriteLiteral(" <div class=\"media-list-item__state dw-mod\">");
5611 Write(settings.Status);
5612 WriteLiteral("</div>\r\n");
5613 }
5614 WriteLiteral(" </div>\r\n");
5615
5616 settings.InfoTable.CssClass += " media-list-item__parameters-table";
5617 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");
5618
5619 var actions = settings.GetActions();
5620
5621 foreach (ButtonBase action in actions)
5622 {
5623 action.ButtonLayout = ButtonLayout.None;
5624 action.CssClass += " media-list-item__action link";
5625
5626 Render(action);
5627 }
5628 WriteLiteral(" </div>\r\n\r\n");
5629 if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title))
5630 {
5631 settings.SelectButton.CssClass += " u-no-margin";
5632
5633 WriteLiteral(" <div class=\"media-list-item__action-button\">\r\n Render(settings.SelectButton);\r\n </div>\r\n");
5634 }
5635 WriteLiteral(" </div>\r\n </div>\r\n </div>\r\n");
5636 }
5637
5638 void RenderTable(Table settings)
5639 {
5640 Dictionary<string, string> attributes = new Dictionary<string, string>();
5641 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5642
5643 var enumToClasses = new Dictionary<TableDesign, string>
5644 {
5645 { TableDesign.Clean, "table--clean" },
5646 { TableDesign.Bordered, "table--bordered" },
5647 { TableDesign.Striped, "table--striped" },
5648 { TableDesign.Hover, "table--hover" },
5649 { TableDesign.Compact, "table--compact" },
5650 { TableDesign.Condensed, "table--condensed" },
5651 { TableDesign.NoTopBorder, "table--no-top-border" }
5652 };
5653 string tableDesignClass = "";
5654 if (settings.Design != TableDesign.None)
5655 {
5656 tableDesignClass = enumToClasses[settings.Design];
5657 }
5658
5659 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); }
5660
5661 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
5662
5663 WriteLiteral(" <table ");
5664 Write(ComponentMethods.AddAttributes(resultAttributes));
5665 WriteLiteral(">\r\n");
5666 if (settings.Header != null)
5667 {
5668 WriteLiteral(" <thead>\r\n Render(settings.Header);\r\n </thead>\r\n");
5669 }
5670 WriteLiteral(" <tbody>\r\n");
5671 foreach (var row in settings.Rows)
5672 {
5673 Render(row);
5674 }
5675 WriteLiteral(" </tbody>\r\n");
5676 if (settings.Footer != null)
5677 {
5678 WriteLiteral(" <tfoot>\r\n Render(settings.Footer);\r\n </tfoot>\r\n");
5679 }
5680 WriteLiteral(" </table>\r\n");
5681 }
5682
5683 void RenderTableRow(TableRow settings)
5684 {
5685 Dictionary<string, string> attributes = new Dictionary<string, string>();
5686 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5687
5688 var enumToClasses = new Dictionary<TableRowDesign, string>
5689 {
5690 { TableRowDesign.NoBorder, "table__row--no-border" },
5691 { TableRowDesign.Border, "table__row--border" },
5692 { TableRowDesign.TopBorder, "table__row--top-line" },
5693 { TableRowDesign.BottomBorder, "table__row--bottom-line" },
5694 { TableRowDesign.Solid, "table__row--solid" }
5695 };
5696
5697 string tableRowDesignClass = "";
5698 if (settings.Design != TableRowDesign.None)
5699 {
5700 tableRowDesignClass = enumToClasses[settings.Design];
5701 }
5702
5703 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); }
5704
5705 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
5706
5707 WriteLiteral(" <tr ");
5708 Write(ComponentMethods.AddAttributes(resultAttributes));
5709 WriteLiteral(">\r\n");
5710 foreach (var cell in settings.Cells)
5711 {
5712 if (settings.IsHeaderRow)
5713 {
5714 cell.IsHeader = true;
5715 }
5716 Render(cell);
5717 }
5718 WriteLiteral(" </tr>\r\n");
5719 }
5720
5721 void RenderTableCell(TableCell settings)
5722 {
5723 Dictionary<string, string> attributes = new Dictionary<string, string>();
5724 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
5725 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); }
5726 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); }
5727 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); }
5728
5729 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
5730
5731 string tagName = settings.IsHeader ? "th" : "td";
5732
5733 Write("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">");
5734 Write(settings.Content);
5735 Write("</" + tagName + ">");
5736 ;
5737 }
5738
5739 BlocksPage articlePage = BlocksPage.GetBlockPage("DynamicArticle");
5740
5741 public string GetParentSettingsItem(string systemName)
5742 {
5743 string item = null;
5744
5745 Dynamicweb.Content.Page current = Dynamicweb.Services.Pages.GetPage(Model.ID);
5746 while (current != null && current.Parent != current)
5747 {
5748 var temp = current.Item != null ? current.Item[systemName] : "";
5749
5750 if (temp != null)
5751 {
5752 item = temp.ToString();
5753
5754 if (!String.IsNullOrEmpty(item) && !String.Equals("default", item, StringComparison.OrdinalIgnoreCase))
5755 {
5756 break;
5757 }
5758 }
5759
5760 current = current.Parent;
5761 }
5762
5763 return item;
5764 }
5765
5766 public string GetArticleCategory(int pageId)
5767 {
5768 string categoryName = null;
5769
5770 //Secure that the article is not in the root folder = Actual has a category
5771 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null)
5772 {
5773 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null)
5774 {
5775 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType))
5776 {
5777 categoryName = Dynamicweb.Services.Pages.GetPage(pageId).Parent.GetDisplayName();
5778 }
5779 }
5780 }
5781
5782 return categoryName;
5783 }
5784
5785 public string GetArticleCategoryColor(int pageId)
5786 {
5787 string categoryColor = "";
5788
5789 //Secure that the article is not in the root folder = Actual has a category
5790 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null)
5791 {
5792 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null)
5793 {
5794 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType))
5795 {
5796 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"] != null)
5797 {
5798 var service = new ColorSwatchService();
5799 categoryColor = Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"].ToString();
5800
5801 if (!categoryColor.Contains("#"))
5802 {
5803 categoryColor = service.GetHexColor(Converter.ToInt32(Model.Area.ID), categoryColor);
5804 }
5805 }
5806 }
5807 }
5808 }
5809
5810 return categoryColor;
5811 }
5812 }
5813 }
5814 #pragma warning restore 1591
5815
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 <li>
195 <label class="checkbox-container d-flex">
196 @Translate("Smartpage:Search.DropDown.Blandet Bolig/Erhverv", "Blandet Bolig/Erhverv")
197 @{
198 bool blboligcheck = false;
199 }
200 @if (Dynamicweb.Context.Current.Request.QueryString["propertycategory"] == "Blandet Bolig/Erhverv")
201 {
202 blboligcheck = true;
203 }
204 <input type="checkbox" name="propertycategory" value="Blandet Bolig/Erhverv" class="specialOption js-input-check js-datavalue js-count" data-disable-checkbox="true" data-disable-slider="#roomsslider" data-disable-slider-ranges="#roomsmin" checked="@blboligcheck" />
205 <span class="checkmark grey"></span>
206 </label>
207 </li>
208
209 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){
210 { "Fritidsbolig", "fritidshus, fritidsbolig" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" },
211 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" }
212 };
213 foreach (KeyValuePair<string, string> type in propertyTypes2)
214 {
215 bool ischecked = false;
216 string[] propertytypeSplit2 = new string[0];
217 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
218 {
219 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
220 }
221 foreach (var propertytypeParams in propertytypeSplit2)
222 {
223 if (propertytypeParams == type.Value)
224 {
225 ischecked = true;
226 }
227 }
228 <li>
229 <label class="checkbox-container d-flex">
230 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
231 @if (type.Value == "ejerlejlighed")
232 {
233 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-disable-slider="#grundareal" data-disable-slider-ranges="#grundarealmin,#grundarealmax" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
234 }
235 else if (type.Value == "helårsgrund")
236 {
237 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
238 }
239 else if (type.Value == "fritidsgrund")
240 {
241 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
242 }
243 else
244 {
245 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
246 }
247 <span class="checkmark grey"></span>
248 </label>
249 </li>
250 }
251 }
252
253 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false)
254 {
255 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
256 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" },
257 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" }
258 };
259 var submitonchange = "";
260 if (submitOnChange)
261 {
262 submitonchange = "onchange='submitFilter()'";
263 }
264
265 foreach (KeyValuePair<string, string> type in erhverType)
266 {
267 string ischecked = "";
268 string[] olineParamsSplit = new string[0];
269 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
270 {
271 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
272 }
273 foreach (var olineParams in olineParamsSplit)
274 {
275 if (olineParams == type.Value)
276 {
277 ischecked = "checked";
278 }
279 }
280
281 <li>
282 <label class="checkbox-container d-flex">
283 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
284 <input type="checkbox" name="olinecategory" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" @submitonchange @ischecked />
285 <span class="checkmark grey"></span>
286 </label>
287 </li>
288 }
289
290
291 bool ischeckedpropertycat = false;
292 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertycategory"]))
293 {
294 if (Dynamicweb.Context.Current.Request.QueryString["propertycategory"] == "Blandet Bolig/Erhverv")
295 {
296 ischeckedpropertycat = true;
297 }
298 }
299 <li>
300 <label class="checkbox-container">
301 @Translate("Smartpage:Search.DropDown.Blandet Bolig/Erhverv", "Blandet Bolig/Erhverv")
302 <input type="checkbox" name="propertycategory" value="Blandet Bolig/Erhverv" class="js-input-check datavalue" data-val="Blandet Bolig/Erhverv" onchange="submitFilter()" checked="@ischeckedpropertycat" />
303 <span class="checkmark grey"></span>
304 </label>
305 </li>
306 }
307
308 void RenderBoligTypeErhvervInvest(bool submitOnChange = false)
309 {
310 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
311 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" },
312 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" }
313 };
314
315 foreach (KeyValuePair<string, string> type in erhverType)
316 {
317 bool ischecked = false;
318 string[] olineParamsSplit = new string[0];
319 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
320 {
321 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
322 }
323 foreach (var olineParams in olineParamsSplit)
324 {
325 if (olineParams == type.Value)
326 {
327 ischecked = true;
328 }
329 }
330
331 <li>
332 <label class="checkbox-container">
333 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
334 <input type="checkbox" name="olinecategory" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
335 <span class="checkmark grey"></span>
336 </label>
337 </li>
338 }
339 }
340 int GetWebsiteSettingsPageId(string pageSysName)
341 {
342 int sideId = 0;
343
344 var pw = Dynamicweb.Frontend.PageView.Current();
345
346 string settingsItemId = "1";
347
348 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true")
349 {
350 settingsItemId = "2";
351 }
352
353 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId);
354
355 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName))
356 {
357 return sideId;
358 }
359
360 string boligsideLink = settingsItem[pageSysName] as String;
361 string linkPrefix = "Default.aspx?ID=";
362
363 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
364 {
365 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
366 }
367
368 return sideId;
369 }
370
371 int GetPageSettingsPageId(string pageSysName)
372 {
373 int sideId = 0;
374
375 var pw = Dynamicweb.Frontend.PageView.Current();
376
377 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName))
378 {
379 return sideId;
380 }
381
382 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String;
383 string linkPrefix = "Default.aspx?ID=";
384
385 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
386 {
387 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
388 }
389
390 return sideId;
391 }
392 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname)
393 {
394 <select class="form-control d-block d-lg-none mb-10 @className" onchange="submitFilter()" name="@inputname">
395 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder." + name + "", "" + name + "")</option>
396
397 @for (var i = 0; i <= max; i += step)
398 {
399 var selected = string.Empty;
400 var current = string.Empty;
401 if (i == max)
402 {
403 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
404 {
405 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")' selected="selected">@Convert.ToInt32(i).ToString("N0")+</option>
406 }
407 else
408 {
409 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")+</option>
410 }
411 }
412 else
413 {
414 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
415 {
416 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")' selected="selected">@Convert.ToInt32(i).ToString("N0")</option>
417 }
418 else
419 {
420 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
421 }
422 }
423 }
424 </select>
425 }
426
427 void RenderTopFilter(string parameter)
428 {
429 if (parameter == "pricemin" || parameter == "pricemax")
430 {
431 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"]))
432 {
433 if (parameter == "pricemin")
434 {
435 @("<div class='search-terms' id='priceFilter'>")
436 @("Pris ") @Dynamicweb.Context.Current.Request[parameter]
437 }
438
439 else
440 {
441 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="pricemin,pricemax"></i>
442 @("</div>")
443 }
444 }
445 }
446
447 else if (parameter == "subsidymin" || parameter == "subsidymax")
448 {
449 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"]))
450 {
451 if (parameter == "subsidymin")
452 {
453 @("<div class='search-terms' id='subsidyFilter'>")
454 @("Årlig leje ") @Dynamicweb.Context.Current.Request[parameter]
455 }
456
457 else
458 {
459 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="subsidymin,subsidymax"></i>
460 @("</div>")
461 }
462 }
463 }
464 else if (parameter == "etagearealmin" || parameter == "etagearealmax")
465 {
466 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"]))
467 {
468 if (parameter == "etagearealmin")
469 {
470 @("<div class='search-terms' id='etagearealFilter'>")
471 @("Etageareal ") @Dynamicweb.Context.Current.Request[parameter]
472 }
473
474 else
475 {
476 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kvm.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="etagearealmin,etagearealmax"></i>
477 @("</div>")
478 }
479 }
480 }
481
482 else if (parameter == "grundarealmin" || parameter == "grundarealmax")
483 {
484 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"]))
485 {
486 if (parameter == "grundarealmin")
487 {
488 @("<div class='search-terms' id='grundarealFilter'>")
489 @("Grundareal ") @Dynamicweb.Context.Current.Request[parameter]
490 }
491
492 else
493 {
494 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kvm.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="grundarealmin,grundarealmax"></i>
495 @("</div>")
496 }
497 }
498 }
499
500 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax")
501 {
502 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"]))
503 {
504 if (parameter == "subsidykvmmin")
505 {
506 @("<div class='search-terms' id='subsidykvmFilter'>")
507 @("Årlig leje kvm ") @Dynamicweb.Context.Current.Request[parameter]
508 }
509
510 else
511 {
512 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="subsidykvmmin,subsidykvmmax"></i>
513 @("</div>")
514 }
515 }
516 }
517
518 else if (parameter == "olinecategory")
519 {
520
521 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"]))
522 {
523 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
524 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" },
525 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"},
526 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" },
527 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" }
528 };
529
530
531 foreach (var er in erhverType)
532 {
533 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
534 {
535 <div class="search-terms" id="@parameter">
536 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i>
537 </div>
538 }
539 }
540 }
541 }
542 else if (parameter == "propertycategory")
543 {
544
545 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["propertycategory"]))
546 {
547 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
548 { "propertycategory", "Blandet Bolig/Erhverv" }
549 };
550
551 foreach (var er in erhverType)
552 {
553 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]) && Dynamicweb.Context.Current.Request[parameter] == er.Value)
554 {
555 <div class="search-terms" id="@parameter">
556 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i>
557 </div>
558 }
559 }
560 }
561 }
562 else if (parameter == "search")
563 {
564 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"]))
565 {
566 <div class="search-terms" id="@parameter">
567 @Dynamicweb.Context.Current.Request[parameter] <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter"></i>
568 </div>
569 }
570 }
571 else
572 {
573 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]))
574 {
575 Dictionary<string, string>
576 ubudsform = new Dictionary<string, string>
577 (){
578 {"salg", "Salg" }, { "leje","Leje" }
579 };
580
581 foreach (var er in ubudsform)
582 {
583 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
584 {
585 <div class="search-terms" id="@parameter">
586 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i>
587 </div>
588 }
589 }
590
591
592 }
593 }
594 }
595
596 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString)
597 {
598 var selected = "";
599 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue)
600 {
601 selected = "selected";
602 }
603
604 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected);
605
606 @current
607 }
608
609 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "")
610 {
611 <div class="main-search-form frontpage @cssClasses">
612 <div class="dropdown-overlay"></div>
613 <div class="row mb-3 align-items-center">
614 <div class="col-xs-12 col-md-3 border-right">
615 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
616 </div>
617 <div class="col-xs-12 col-md-9 home-count d-none d-md-block">
618 <span class="search-count" id="searchCounter">0</span> <span>@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")</span>
619 </div>
620 </div>
621
622 <form id="main-search-frontpage" class="searchbar-wrapper" action="/Default.aspx" method="GET">
623 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId-frontpage" disabled="disabled" />
624 <div class="row form-wrapper no-gutters">
625
626 <div class="col-xs-12 col-md-5 col-searchbar">
627 <div class="searchbar">
628 <input type="text" name="@querySearchNameAttr" id="searchfield-frontpage" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch)" />
629 <input type="hidden" id="zipcodefrom-frontpage" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" />
630 <input type="hidden" id="zipcodeto-frontpage" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" />
631 </div>
632 </div>
633 <div class="col-xs-12 col-md-5">
634 <div class="row no-gutters">
635 <div class="col-xs-12 col-md-6 input-col">
636 <div class="dropdown w-overlay">
637 <button class="btn btn-dropdown dropdown-toggle reverse position-absolute-md" type="button" id="Boligtype-frontpage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
638 @Translate("Smartpage:Search.Boligtype", "Boligtype")
639 </button>
640 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
641 <ul class="bolig-dropdown list-unstyled">
642 @{
643 RenderBoligtypeCheckboxesDropdown();
644 }
645 </ul>
646 <span class="border-fat"></span>
647 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
648 </div>
649
650 </div>
651
652 </div>
653 <div class="col-xs-12 col-md-6 input-col">
654 <div class="dropdown w-overlay">
655 <button class="btn btn-dropdown dropdown-toggle reverse position-absolute-md" type="button" id="Pris-frontpage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
656 @Translate("Smartpage:Search.Pris", "Pris")
657 </button>
658 <div class="dropdown-menu box-shadow dropdown-price" aria-labelledby="Pris">
659 <input type="text" class="form-control mb-10 js-auto-thousand js-pricemin-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MinPris","Min. pris")' />
660 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
661 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
662 @for (var i = 0; i <= 10000000; i += 100000)
663 {
664 if (i == 10000000)
665 {
666 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
667 }
668 else
669 {
670 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
671 }
672 }
673 </select>
674 <input type="hidden" id="pricemin-frontpage" name="pricemin" />
675
676 <input type="text" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris")' />
677 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
678 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
679 @for (var i = 0; i <= 10000000; i += 100000)
680 {
681 if (i == 10000000)
682 {
683 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
684 }
685 else
686 {
687 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
688 }
689 }
690 </select>
691 <input type="hidden" id="pricemax-frontpage" name="pricemax" />
692 <button class="btn btn-primary js-close-dropdown mt-3">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
693 </div>
694 </div>
695 </div>
696 </div>
697 </div>
698 <div class="col-xs-12 col-md-2 d-none d-md-block">
699 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
700 </div>
701 </div>
702
703 <div class="row moresearch-btn no-gutters">
704 <div class="col-sm-12">
705 <div class="row align-items-center no-gutters">
706 <div class="col-12 col-md-4">
707 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch" aria-expanded="false" aria-controls="moreSearch">
708 <span class="moreSearch-text"><i class="fas fa-plus open-close"></i> <span class="not-open">@Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")</span> <span class="open"><span class="js-filter-count">0</span> @Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt") </span></span>
709 </button>
710 </div>
711 <div class="col-6 col-md-2 mb-xs-4">
712 <a class="js-reset reset-btn">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
713 </div>
714 </div>
715
716 <div class="collapse" id="moreSearch">
717 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
718 <div class="row align-items-end mb-30">
719 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
720 <div class="filter-container row">
721 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
722 <div class="col-6 pr-sm-0 pr-2">
723 <input type="text" name="boligarealmin" id="boligarealmin-frontpage" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2","Min. m2")' />
724 <select class="form-control js-boligarealmin-frontpage-select js-count">
725 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
726 @for (var i = 0; i <= 300; i += 10)
727 {
728 if (i == 300)
729 {
730 <option value="@i">@i+</option>
731 }
732 else
733 {
734 <option value="@i">@i</option>
735 }
736 }
737 </select>
738 </div>
739 <div class="col-6 pl-sm-0 pl-2">
740 <input type="text" name="boligarealmax" id="boligarealmax-frontpage" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2")' />
741 <select class="form-control js-boligarealmax-frontpage-select js-count">
742 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
743 @for (var i = 0; i <= 300; i += 10)
744 {
745 if (i == 300)
746 {
747 <option value="@i">@i+</option>
748 }
749 else
750 {
751 <option value="@i">@i</option>
752 }
753 }
754 </select>
755 </div>
756 </div>
757 </div>
758 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
759 <div class="filter-container row">
760 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
761 <div class="col-6 pr-sm-0 pr-2">
762 <input type="text" name="grundarealmin" id="grundarealmin-frontpage" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2","Min. m2")' />
763 <select class="form-control js-grundarealmin-frontpage-select js-count">
764 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
765 @for (var i = 0; i <= 10000; i += 100)
766 {
767 if (i == 10000)
768 {
769 <option value="@i">@i+</option>
770 }
771 else
772 {
773 <option value="@i">@i</option>
774 }
775 }
776 </select>
777 </div>
778 <div class="col-6 pl-sm-0 pl-2">
779 <input type="text" name="grundarealmax" id="grundarealmax-frontpage" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2")' />
780 <select class="form-control js-grundarealmax-frontpage-select js-count">
781 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
782 @for (var i = 0; i <= 10000; i += 100)
783 {
784 if (i == 10000)
785 {
786 <option value="@i">@i+</option>
787 }
788 else
789 {
790 <option value="@i">@i</option>
791 }
792 }
793 </select>
794 </div>
795 </div>
796 </div>
797 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
798 <div class="filter-container row">
799 <label class="d-block col-12">Antal rum</label>
800
801 <div class="col-6 pr-sm-0 pr-2">
802 <select name="roomsmin" id="roomsmin-frontpage" class="form-control reverse js-count">
803 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
804 <option value="1">1</option>
805 <option value="2">2</option>
806 <option value="3">3</option>
807 <option value="4">4</option>
808 <option value="5+">5+</option>
809 </select>
810 </div>
811 <div class="col-6 pl-sm-0 pl-2">
812 <select name="roomsmax" id="roomsmax-frontpage" class="form-control reverse js-count">
813 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
814 <option value="1">1</option>
815 <option value="2">2</option>
816 <option value="3">3</option>
817 <option value="4">4</option>
818 <option value="5+">@Translate("Smartpage:Rooms.5", "5")</option>
819 </select>
820 </div>
821 </div>
822 </div>
823 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
824 <div class="row">
825 <div class="col-12">
826 <div class="filter-container">
827 <label class="d-block">Energimærke</label>
828 <select name="energylabel" id="energylabel-frontpage" class="form-control reverse js-count">
829 <option disabled selected="selected">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
830 <option value="01">G</option>
831 <option value="02">F</option>
832 <option value="03">E</option>
833 <option value="04">D</option>
834 <option value="05">C</option>
835 <option value="06">B</option>
836 <option value="07">A</option>
837 <option value="08">A2010</option>
838 <option value="09">A2015</option>
839 <option value="10">A2020+</option>
840 </select>
841 </div>
842 </div>
843 </div>
844 </div>
845 <div class="col-12 col-sm-6 col-lg-3 mt-3">
846 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
847 <div class="filter-container row">
848 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
849 <div class="col-6 pr-sm-0 pr-2">
850 <input type="text" name="subsidymin" id="subsidymin-frontpage" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK")' />
851 <select class="form-control js-subsidymin-frontpage-select js-count">
852 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
853 @for (var i = 0; i <= 25000; i += 1250)
854 {
855 if (i == 25000)
856 {
857 <option>@Convert.ToInt32(i).ToString("N0")+</option>
858 }
859 else
860 {
861 <option>@Convert.ToInt32(i).ToString("N0")</option>
862 }
863 }
864 </select>
865 </div>
866 <div class="col-6 pl-sm-0 pl-2">
867 <input type="text" name="subsidymax" id="subsidymax-frontpage" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK")' />
868 <select class="form-control js-subsidymax-frontpage-select js-count">
869 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
870 @for (var i = 0; i <= 25000; i += 1250)
871 {
872 if (i == 25000)
873 {
874 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
875 }
876 else
877 {
878 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
879 }
880 }
881 </select>
882 </div>
883 </div>
884 </div>
885 <div class="col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0">
886 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
887 </div>
888 </div>
889 </div>
890 </div>
891 </div>
892
893 <div class="row d-block d-md-none form-wrapper no-gutters">
894 <div class="col-xs-12 col-md-2">
895 <button type="submit" class="btn btn-block btn-search btn-mobile-search">@Translate("Smartpage:Search.SøgBolig", "Søg Bolig")<i class="fa fa-search cta-icon"></i></button>
896 </div>
897 </div>
898 </form>
899 <div class="front-page-actions d-md-none">
900 <div>
901 <button class="btn btn-block btn-search btn-mobile-search js-search-mobile">@Translate("Smartpage:Search.SøgBolig", "Søg Bolig")<i class="fa fa-search cta-icon"></i></button>
902 </div>
903 <div>
904 @{
905 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : "";
906 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER");
907 <form method="GET" action="/Default.aspx">
908 <input name="id" value="@brokerSearchId" type="hidden" />
909 <div class="icon-wrapper-wclick">
910 <i class="fas fa-search ta-submit-on-icon-click"></i>
911 <input class="box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter" name="q" type="text" placeholder="@ctaText" onfocus="this.placeholder = ''" onblur="this.placeholder='@ctaText'" />
912 </div>
913 </form>
914 }
915 </div>
916 <div>
917 <a href="javascript:panelSalgsvurdering('Hovedmenu')" class="btn btn-orange btn-block">@Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING")<i class="cta-icon fa fa-angle-right"></i></a>
918 </div>
919 </div>
920 </div>
921
922 }
923 Custom.Integration.Brokers.Models.BrokerEmployee GetBrokerFromCurrentProduct()
924 {
925 string productId = Dynamicweb.Context.Current.Request["ProductId"];
926
927 if (string.IsNullOrWhiteSpace(productId))
928 {
929 return null;
930 }
931
932 var propertyProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(productId, string.Empty, true);
933 if (propertyProduct == null)
934 {
935 return null;
936 }
937
938 string employee = Dynamicweb.Core.Converter.ToString(
939 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xAktoererMaeglerKontaktEmail")
940 );
941 string storeId = Dynamicweb.Core.Converter.ToString(
942 Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(propertyProduct, "xButikID")
943 );
944
945 if (string.IsNullOrWhiteSpace(employee) || string.IsNullOrWhiteSpace(storeId))
946 {
947 return null;
948 }
949
950 return Custom.Integration.Brokers.Search.GetEmployee(storeId, employee);
951 }
952
953 string GetAgentTitleFromCurrentProduct()
954 {
955 var propBroker = GetBrokerFromCurrentProduct();
956
957 if (propBroker?.Broker == null)
958 {
959 return string.Empty;
960 }
961
962 if (!string.IsNullOrEmpty(propBroker.Broker.CompanyName))
963 {
964 return propBroker.Broker.CompanyName;
965 }
966
967 return propBroker.Broker.Name ?? string.Empty;
968 }
969
970 string GetMasterBrokerUrlFromCurrentProduct()
971 {
972 var propBroker = GetBrokerFromCurrentProduct();
973
974 var itemId = propBroker?.Broker?.ItemId;
975 var itemType = propBroker?.Broker?.ItemType;
976
977 if (string.IsNullOrWhiteSpace(itemId) || string.IsNullOrWhiteSpace(itemType))
978 {
979 return string.Empty;
980 }
981 var brokerItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(itemType, itemId);
982
983 if (brokerItem == null)
984 {
985 return string.Empty;
986 }
987
988 var websiteId = Dynamicweb.Core.Converter.ToInt32(brokerItem["WebsiteId"]);
989 var page = Dynamicweb.Content.Services.Pages.GetFirstPageForArea(websiteId);
990 return Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?Id=" + page?.ID);
991 }
992 }
993 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel>
994 @using Dynamicweb.Frontend.Navigation
995 @using Dynamicweb.Core
996 @using Dynamicweb.Core.Encoders
997 @using Dynamicweb
998
999 @functions {
1000 void RenderSlideMenu(bool erhverv, string maeglersoegning)
1001 {
1002 <div id="menu"
1003 class="main-menu-slide "
1004 role="navigation"
1005 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.MainMenu", "Hovedmenu"))"
1006 aria-modal="true">
1007 <div class="container">
1008 <div class="row">
1009 <div class="col-12">
1010 <span class="menu-headline">MENU</span>
1011 </div>
1012 <div class="menu-slide"
1013 role="button"
1014 tabindex="0"
1015 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.CloseMenu", "Luk menu"))">
1016 <b aria-hidden="true"></b>
1017 </div>
1018 <div class="col-12 main-slidemenu" role="region" aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.NavigationLinks", "Navigationslinks"))">
1019 @{
1020 var navigationSettings = new NavigationSettings();
1021 navigationSettings.StartLevel = 1;
1022 navigationSettings.StopLevel = 2;
1023 navigationSettings.ExpandMode = ExpandMode.All;
1024 navigationSettings.RootAreaId = Pageview.Area.ID;
1025
1026 @Navigation.RenderNavigation("Navigation/slideMenu.cshtml", navigationSettings)
1027 }
1028 </div>
1029 <div class="col-12 bottom-btns">
1030
1031 @{
1032 string[] maeglerid;
1033 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0";
1034
1035 if (erhverv)
1036 {
1037 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None);
1038 }
1039 else
1040 {
1041 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None);
1042 }
1043
1044 <form method="GET" action="/Default.aspx" role="search">
1045 <input name="id" value="@maeglerid[1]" type="hidden" />
1046 <div class="icon-wrapper-wclick">
1047 <label for="broker-search-menu-vm" class="sr-only">@Translate("Custom:Accessibility.FindBroker", "Find mægler")</label>
1048 <i class="fas fa-search ta-submit-on-icon-click"
1049 aria-hidden="true"
1050 role="button"
1051 tabindex="0"
1052 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.SearchBroker", "Søg efter mægler"))"></i>
1053 <input id="broker-search-menu-vm"
1054 class="box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter"
1055 name="q"
1056 type="text"
1057 placeholder="@HtmlEncoder.HtmlAttributeEncode(Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER"))"
1058 aria-label="@HtmlEncoder.HtmlAttributeEncode(Translate("Custom:Accessibility.BrokerSearchField", "Indtast postnummer eller navn for at finde mægler"))"
1059 onfocus="this.placeholder = 'FIND MÆGLER'" />
1060 </div>
1061 </form>
1062 }
1063 <br />
1064 @{
1065 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + "";
1066 }
1067 <a href="javascript:panelSalgsvurdering('@dpmaegler','@Pageview.AreaID');"
1068 class="btn btn-block btn-default-invert js-close-menu"
1069 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>
1070 </div>
1071 </div>
1072 </div>
1073 </div>
1074 }
1075 }
1076 @using System.Text.RegularExpressions
1077 @using System.Collections.Generic
1078 @using System.Reflection
1079 @using Dynamicweb.Rapido.Blocks.Components
1080 @using Dynamicweb.Rapido.Blocks.Components.Articles
1081 @using Dynamicweb.Rapido.Blocks.Components.Documentation
1082 @using Dynamicweb.Rapido.Blocks
1083 @using Dynamicweb;
1084
1085 @functions {
1086 void RenderBlockList(List<Block> blocks)
1087 {
1088 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
1089 blocks = blocks.OrderBy(item => item.SortId).ToList();
1090
1091 foreach (Block item in blocks)
1092 {
1093 if (debug) {
1094 <!-- Block START: @item.Id -->
1095 }
1096
1097 if (item.Design == null)
1098 {
1099 RenderBlock(item);
1100 }
1101 else if (item.Design.RenderType == RenderType.None) {
1102 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
1103
1104 <div class="@cssClass dw-mod">
1105 RenderBlock(item);
1106 </div>
1107 }
1108 else if (item.Design.RenderType != RenderType.Hide)
1109 {
1110 string cssClass = item.Design.CssClass != null ? item.Design.CssClass : "";
1111
1112 if (!item.SkipRenderBlocksList) {
1113 if (item.Design.RenderType == RenderType.Row)
1114 {
1115 <div class="grid grid--align-content-start @cssClass dw-mod" id="Block__@item.Id">
1116 RenderBlock(item);
1117 </div>
1118 }
1119
1120 if (item.Design.RenderType == RenderType.Column)
1121 {
1122 string hidePadding = item.Design.HidePadding ? "u-no-padding" : "";
1123 string size = item.Design.Size ?? "12";
1124 size = Regex.IsMatch(size, @"\d") ? "md-" + item.Design.Size : item.Design.Size;
1125
1126 <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">
1127 RenderBlock(item);
1128 </div>
1129 }
1130
1131 if (item.Design.RenderType == RenderType.Table)
1132 {
1133 <table class="table @cssClass dw-mod" id="Block__@item.Id">
1134 RenderBlock(item);
1135 </table>
1136 }
1137
1138 if (item.Design.RenderType == RenderType.TableRow)
1139 {
1140 <tr class="@cssClass dw-mod" id="Block__@item.Id">
1141 RenderBlock(item);
1142 </tr>
1143 }
1144
1145 if (item.Design.RenderType == RenderType.TableColumn)
1146 {
1147 <td class="@cssClass dw-mod" id="Block__@item.Id">
1148 RenderBlock(item);
1149 </td>
1150 }
1151
1152 if (item.Design.RenderType == RenderType.CardHeader)
1153 {
1154 <div class="card-header @cssClass dw-mod">
1155 RenderBlock(item);
1156 </div>
1157 }
1158
1159 if (item.Design.RenderType == RenderType.CardBody)
1160 {
1161 <div class="card @cssClass dw-mod">
1162 RenderBlock(item);
1163 </div>
1164 }
1165
1166 if (item.Design.RenderType == RenderType.CardFooter)
1167 {
1168 <div class="card-footer @cssClass dw-mod">
1169 RenderBlock(item);
1170 </div>
1171 }
1172 }
1173 else
1174 {
1175 RenderBlock(item);
1176 }
1177 }
1178
1179 if (debug) {
1180 <!-- Block END: @item.Id -->
1181 }
1182 }
1183 }
1184
1185 void RenderBlock(Block item)
1186 {
1187 bool debug = !String.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) ? Convert.ToBoolean(Dynamicweb.Context.Current.Request.QueryString.Get("debug")) : false;
1188
1189 if (item.Template != null)
1190 {
1191 @BlocksPage.RenderTemplate(item.Template)
1192 }
1193
1194 if (item.Component != null)
1195 {
1196 string customSufix = "Custom";
1197 string methodName = item.Component.HelperName;
1198
1199 ComponentBase[] methodParameters = new ComponentBase[1];
1200 methodParameters[0] = item.Component;
1201 Type methodType = this.GetType();
1202
1203 MethodInfo customMethod = methodType.GetMethod(methodName + customSufix);
1204 MethodInfo generalMethod = methodType.GetMethod(methodName);
1205
1206 try {
1207 if (debug) {
1208 <!-- Component: @methodName.Replace("Render", "") -->
1209 }
1210 @customMethod.Invoke(this, methodParameters).ToString();
1211 } catch {
1212 try {
1213 @generalMethod.Invoke(this, methodParameters).ToString()
1214 ;
1215 } catch(Exception ex) {
1216 throw new Exception(item.Component.GetType().Name + " method '" + methodName +"' could not be invoked", ex);
1217 }
1218 }
1219 }
1220
1221 if (item.BlocksList.Count > 0 && !item.SkipRenderBlocksList)
1222 {
1223 RenderBlockList(item.BlocksList);
1224 }
1225 }
1226 }
1227
1228
1229
1230 @* Include the components *@
1231 @using Dynamicweb.Rapido.Blocks.Components
1232 @using Dynamicweb.Rapido.Blocks.Components.General
1233 @using Dynamicweb.Rapido.Blocks
1234 @using System.IO
1235
1236 @* Required *@
1237 @using Dynamicweb.Rapido.Blocks.Components
1238 @using Dynamicweb.Rapido.Blocks.Components.General
1239 @using Dynamicweb.Rapido.Blocks
1240
1241 @functions {
1242 void Render(ComponentBase component)
1243 {
1244 if (component != null)
1245 {
1246 @component.Render(this)
1247 }
1248 }
1249 }
1250
1251 @* Components *@
1252 @using System.Reflection
1253 @using Dynamicweb.Rapido.Blocks.Components.General
1254
1255 @* Component *@
1256
1257 @functions {
1258 void RenderIcon(Icon settings)
1259 {
1260 if (settings != null)
1261 {
1262 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
1263
1264 if (settings.Name != null)
1265 {
1266 if (string.IsNullOrEmpty(settings.Label))
1267 {
1268 <i class="@settings.Prefix @settings.Name @settings.CssClass" @color></i>
1269 }
1270 else
1271 {
1272 if (settings.LabelPosition == IconLabelPosition.Before)
1273 {
1274 <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>
1275 }
1276 else
1277 {
1278 <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>
1279 }
1280 }
1281 }
1282 else if (!string.IsNullOrEmpty(settings.Label))
1283 {
1284 @settings.Label
1285 }
1286 }
1287 }
1288 }
1289
1290 @using System.Reflection
1291 @using Dynamicweb.Rapido.Blocks.Components.General
1292 @using Dynamicweb.Rapido.Blocks.Components
1293 @using Dynamicweb.Core
1294 @using System.Text.RegularExpressions
1295
1296 @* Component *@
1297
1298 @functions {
1299 void RenderButton(Button settings)
1300 {
1301 if (settings != null && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
1302 {
1303 Dictionary<string, string> attributes = new Dictionary<string, string>();
1304 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
1305 if (settings.Disabled) {
1306 attributes.Add("disabled", "true");
1307 classList.Add("disabled");
1308 }
1309
1310 if (!string.IsNullOrEmpty(settings.ConfirmText) || !string.IsNullOrEmpty(settings.ConfirmTitle))
1311 {
1312 settings.Id = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
1313 RenderConfirmDialog(settings);
1314 settings.OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = true";
1315 }
1316
1317 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
1318 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
1319 if (!string.IsNullOrEmpty(settings.AltText))
1320 {
1321 attributes.Add("title", settings.AltText);
1322 }
1323 else if (!string.IsNullOrEmpty(settings.Title))
1324 {
1325 string cleanTitle = Regex.Replace(settings.Title, "<.*?>", String.Empty);
1326 cleanTitle = cleanTitle.Replace(" ", " ");
1327 attributes.Add("title", cleanTitle);
1328 }
1329
1330 var onClickEvents = new List<string>();
1331 if (!string.IsNullOrEmpty(settings.OnClick))
1332 {
1333 onClickEvents.Add(settings.OnClick);
1334 }
1335 if (!string.IsNullOrEmpty(settings.Href))
1336 {
1337 if (settings.Href.Contains("javascript"))
1338 {
1339 settings.Href = settings.Href.Replace("http://", "");
1340 }
1341 onClickEvents.Add("location.href='" + settings.Href + "'");
1342 }
1343 if (onClickEvents.Count > 0)
1344 {
1345 attributes.Add("onClick", string.Join(";", onClickEvents));
1346 }
1347
1348 if (settings.ButtonLayout != ButtonLayout.None)
1349 {
1350 classList.Add("btn");
1351 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
1352 if (btnLayout == "linkclean")
1353 {
1354 btnLayout = "link-clean"; //fix
1355 }
1356 classList.Add("btn--" + btnLayout);
1357 }
1358
1359 if (settings.Icon == null)
1360 {
1361 settings.Icon = new Icon();
1362 }
1363
1364 settings.Icon.CssClass += Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower() != "linkclean" ? " u-flex--align-center" : "";
1365 settings.Icon.Label = settings.Title;
1366
1367 attributes.Add("type", Enum.GetName(typeof(ButtonType), settings.ButtonType).ToLower());
1368
1369 <button class="@string.Join(" ", classList) dw-mod" @ComponentMethods.AddAttributes(attributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)>@{RenderIcon(settings.Icon);}</button>
1370 }
1371 }
1372
1373 void RenderConfirmDialog(Button settings)
1374 {
1375 Modal confirmDialog = new Modal {
1376 Id = settings.Id,
1377 Width = ModalWidth.Sm,
1378 Heading = new Heading
1379 {
1380 Level = 2,
1381 Title = settings.ConfirmTitle
1382 },
1383 BodyText = settings.ConfirmText
1384 };
1385
1386 confirmDialog.AddAction(new Button { Title = Translate("Cancel"), ButtonLayout = ButtonLayout.Secondary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false"});
1387 confirmDialog.AddAction(new Button { Title = Translate("OK"), ButtonLayout = ButtonLayout.Primary, OnClick = "document.getElementById('" + settings.Id + "ModalTrigger').checked = false;" + settings.OnClick });
1388
1389 RenderModal(confirmDialog);
1390 }
1391 }
1392 @using System.Reflection
1393 @using Dynamicweb.Rapido.Blocks.Components.General
1394 @using Dynamicweb.Rapido.Blocks.Components
1395 @using Dynamicweb.Core
1396
1397 @* Component *@
1398
1399 @functions{
1400 void RenderLink(Link settings)
1401 {
1402 if (settings != null && !string.IsNullOrEmpty(settings.Href) && (!string.IsNullOrEmpty(settings.Title) || settings.Icon != null))
1403 {
1404 Dictionary<string, string> attributes = new Dictionary<string, string>();
1405 List<string> classList = settings.CssClass != null ? settings.CssClass.Split(' ').ToList() : new List<string>();
1406 if (settings.Disabled)
1407 {
1408 attributes.Add("disabled", "true");
1409 classList.Add("disabled");
1410 }
1411
1412 if (!string.IsNullOrEmpty(settings.AltText))
1413 {
1414 attributes.Add("title", settings.AltText);
1415 }
1416 else if (!string.IsNullOrEmpty(settings.Title))
1417 {
1418 attributes.Add("title", settings.Title);
1419 }
1420
1421 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
1422 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
1423 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onClick", settings.OnClick); }
1424 attributes.Add("href", settings.Href);
1425
1426 if (settings.ButtonLayout != ButtonLayout.None)
1427 {
1428 classList.Add("btn");
1429 string btnLayout = Enum.GetName(typeof(ButtonLayout), settings.ButtonLayout).ToLower();
1430 if (btnLayout == "linkclean")
1431 {
1432 btnLayout = "link-clean"; //fix
1433 }
1434 classList.Add("btn--" + btnLayout);
1435 }
1436
1437 if (settings.Icon == null)
1438 {
1439 settings.Icon = new Icon();
1440 }
1441 settings.Icon.Label = settings.Title;
1442
1443 if (settings.Target == LinkTargetType.Blank && settings.Rel == LinkRelType.None)
1444 {
1445 settings.Rel = LinkRelType.Noopener;
1446 }
1447 if (settings.Target != LinkTargetType.None)
1448 {
1449 attributes.Add("target", "_" + Enum.GetName(typeof(LinkTargetType), settings.Target).ToLower());
1450 }
1451 if (settings.Download)
1452 {
1453 attributes.Add("download", "true");
1454 }
1455 if (settings.Rel != LinkRelType.None)
1456 {
1457 attributes.Add("rel", Enum.GetName(typeof(LinkRelType), settings.Rel).ToLower());
1458 }
1459
1460 <a class="@string.Join(" ", classList) dw-mod" @ComponentMethods.AddAttributes(attributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)>Render(settings.Icon);</a>
1461 }
1462 }
1463 }
1464
1465 @using System.Reflection
1466 @using Dynamicweb.Rapido.Blocks.Components
1467 @using Dynamicweb.Rapido.Blocks.Components.General
1468 @using Dynamicweb.Rapido.Blocks
1469
1470 @* Component *@
1471
1472 @functions{
1473 void RenderRating(Rating settings)
1474 {
1475 if (settings.Score > 0)
1476 {
1477 int rating = settings.Score;
1478 string iconType = "fa-star";
1479
1480 switch (settings.Type.ToString()) {
1481 case "Stars":
1482 iconType = "fa-star";
1483 break;
1484 case "Hearts":
1485 iconType = "fa-heart";
1486 break;
1487 case "Lemons":
1488 iconType = "fa-lemon";
1489 break;
1490 case "Bombs":
1491 iconType = "fa-bomb";
1492 break;
1493 }
1494
1495 <div class="u-ta-right">
1496 @for (int i = 0; i < settings.OutOf; i++)
1497 {
1498 <i class="@(rating > i ? "fas" : "far") @iconType"></i>
1499 }
1500 </div>
1501 }
1502 }
1503 }
1504 @using System.Reflection
1505 @using Dynamicweb.Rapido.Blocks.Components.General
1506 @using Dynamicweb.Rapido.Blocks.Components
1507
1508
1509 @* Component *@
1510
1511 @functions{
1512 void RenderNavigation(Navigation settings) {
1513 RenderNavigation(new
1514 {
1515 id = settings.Id,
1516 cssclass = settings.CssClass,
1517 startLevel = settings.StartLevel,
1518 endlevel = settings.EndLevel,
1519 expandmode = settings.Expandmode,
1520 sitemapmode = settings.SitemapMode,
1521 template = settings.Template
1522 });
1523 }
1524 }
1525
1526 @using Dynamicweb.Rapido.Blocks.Components.General
1527 @using Dynamicweb.Rapido.Blocks.Components
1528
1529 @* Component *@
1530
1531 @functions {
1532 void RenderLeftNavigation(LeftNavigation settings) {
1533 settings.Id = String.IsNullOrEmpty(settings.Id) ? "breadcrumb" : settings.Id;
1534 settings.Template = String.IsNullOrEmpty(settings.Template) ? "Breadcrumb.xslt" : settings.Template;
1535 settings.StartLevel = settings.StartLevel == 0 ? 1 : settings.StartLevel;
1536 settings.EndLevel = settings.EndLevel == 10 ? 1 : settings.EndLevel;
1537 settings.Expandmode = String.IsNullOrEmpty(settings.Expandmode) ? "all" : settings.Expandmode;
1538
1539 <div class="grid__cell">
1540 RenderNavigation(settings);
1541 </div>
1542 }
1543 }
1544
1545 @using System.Reflection
1546 @using Dynamicweb.Rapido.Blocks.Components.General
1547 @using Dynamicweb.Core
1548
1549 @* Component *@
1550
1551 @functions {
1552 void RenderHeading(Heading settings)
1553 {
1554 if (settings != null && !string.IsNullOrEmpty(settings.Title))
1555 {
1556 string color = settings.Color != null ? "style=\"color: " + settings.Color + "\"" : "";
1557 string tagName = settings.Level != 0 ? "h" + settings.Level.ToString() : "div";
1558
1559 @("<" + tagName + " class=\"" + settings.CssClass + " dw-mod\" " + color + ">")
1560 if (!string.IsNullOrEmpty(settings.Link))
1561 {
1562 RenderLink(new Link { Href = settings.Link, Icon = settings.Icon, Title = settings.Title, ButtonLayout = ButtonLayout.None });
1563 }
1564 else
1565 {
1566 if (settings.Icon == null)
1567 {
1568 settings.Icon = new Icon();
1569 }
1570 settings.Icon.Label = settings.Title;
1571 RenderIcon(settings.Icon);
1572 }
1573 @("</" + tagName + ">");
1574 }
1575 }
1576 }
1577
1578 @using Dynamicweb.Rapido.Blocks.Components
1579 @using Dynamicweb.Rapido.Blocks.Components.General
1580 @using Dynamicweb.Rapido.Blocks
1581 @using Dynamicweb.Frontend
1582
1583 @* Component *@
1584
1585 @functions {
1586 void RenderImage(Image settings)
1587 {
1588 if (settings.FilterPrimary != ImageFilter.None || settings.FilterSecondary != ImageFilter.None)
1589 {
1590 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
1591 if (!string.IsNullOrEmpty(settings.FilterColor)) { optionalAttributes.Add("style", "background-color: " + settings.FilterColor); }
1592
1593 if (settings.Caption != null)
1594 {
1595 @:<div>
1596 }
1597
1598 var primaryFilterClass = settings.FilterPrimary.ToString().ToLower();
1599 var secondaryFilterClass = settings.FilterSecondary.ToString().ToLower();
1600
1601 <div class="image-filter image-filter--@primaryFilterClass u-position-relative dw-mod" @ComponentMethods.AddAttributes(optionalAttributes)>
1602 <div class="image-filter image-filter--@secondaryFilterClass dw-mod">
1603 @if (settings.Link != null)
1604 {
1605 <a href="@settings.Link">
1606 RenderTheImage(settings);
1607 </a>
1608 }
1609 else
1610 {
1611 RenderTheImage(settings);
1612 }
1613 </div>
1614 </div>
1615
1616 if (settings.Caption != null)
1617 {
1618 <span class="image-caption dw-mod">@settings.Caption</span>
1619 @:</div>
1620 }
1621 }
1622 else
1623 {
1624 if (settings.Caption != null)
1625 {
1626 @:<div>
1627 }
1628 if (!string.IsNullOrEmpty(settings.Link))
1629 {
1630 <a href="@settings.Link">
1631 RenderTheImage(settings);
1632 </a>
1633 }
1634 else
1635 {
1636 RenderTheImage(settings);
1637 }
1638
1639 if (settings.Caption != null)
1640 {
1641 <span class="image-caption dw-mod">@settings.Caption</span>
1642 @:</div>
1643 }
1644 }
1645 }
1646
1647 void RenderTheImage(Image settings)
1648 {
1649 if (settings != null)
1650 {
1651 string alternativeImage = !string.IsNullOrEmpty(PageView.Current().AreaSettings.GetString("AlternativeImage")) ? PageView.Current().AreaSettings.GetFile("AlternativeImage")?.PathUrlEncoded : "/Images/missing_image.jpg";
1652 string placeholderImage = "/Files/Images/placeholder.gif";
1653 string imageEngine = "/Admin/Public/GetImage.ashx?";
1654
1655 string imageStyle = "";
1656
1657 switch (settings.Style)
1658 {
1659 case ImageStyle.Ball:
1660 imageStyle = "grid__cell-img--ball";
1661 break;
1662
1663 case ImageStyle.Triangle:
1664 imageStyle = "grid__cell-img--triangle";
1665 break;
1666 }
1667
1668 if (settings.Style == ImageStyle.Ball || settings.Style == ImageStyle.Circle || settings.Style == ImageStyle.Triangle)
1669 {
1670 settings.ImageDefault.Crop = settings.ImageDefault.Crop == 5 ? settings.ImageDefault.Crop = 0 : settings.ImageDefault.Crop;
1671
1672 if (settings.ImageDefault != null)
1673 {
1674 settings.ImageDefault.Height = settings.ImageDefault.Width;
1675 }
1676 if (settings.ImageMedium != null)
1677 {
1678 settings.ImageMedium.Height = settings.ImageMedium.Width;
1679 }
1680 if (settings.ImageSmall != null)
1681 {
1682 settings.ImageSmall.Height = settings.ImageSmall.Width;
1683 }
1684 }
1685
1686 string defaultImage = imageEngine;
1687 string imageSmall = "";
1688 string imageMedium = "";
1689
1690 if (settings.DisableImageEngine)
1691 {
1692 defaultImage = settings.Path;
1693 }
1694 else
1695 {
1696 if (settings.ImageDefault != null)
1697 {
1698 defaultImage += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageDefault);
1699
1700 if (settings.Path.GetType() != typeof(string))
1701 {
1702 defaultImage += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
1703 defaultImage += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
1704 }
1705 else
1706 {
1707 defaultImage += settings.Path != null ? "Image=" + settings.Path : "";
1708 }
1709
1710 defaultImage += "&AlternativeImage=" + alternativeImage;
1711 }
1712
1713 if (settings.ImageSmall != null)
1714 {
1715 imageSmall = "data-src-small=\"" + imageEngine;
1716 imageSmall += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageSmall);
1717
1718 if (settings.Path.GetType() != typeof(string))
1719 {
1720 imageSmall += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
1721 imageSmall += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
1722 }
1723 else
1724 {
1725 imageSmall += settings.Path != null ? "Image=" + settings.Path : "";
1726 }
1727
1728 imageSmall += "&alternativeImage=" + alternativeImage;
1729
1730 imageSmall += "\"";
1731 }
1732
1733 if (settings.ImageMedium != null)
1734 {
1735 imageMedium = "data-src-medium=\"" + imageEngine;
1736 imageMedium += Dynamicweb.Rapido.Services.Images.GetImagePathFromSettings(settings.ImageMedium);
1737
1738 if (settings.Path.GetType() != typeof(string))
1739 {
1740 imageMedium += settings.Path != null ? "Image=" + settings.Path.PathUrlEncoded : "";
1741 imageMedium += settings.Path != null ? "&" + settings.Path.GetFocalPointParameters() : "";
1742 }
1743 else
1744 {
1745 imageMedium += settings.Path != null ? "Image=" + settings.Path : "";
1746 }
1747
1748 imageMedium += "&alternativeImage=" + alternativeImage;
1749
1750 imageMedium += "\"";
1751 }
1752 }
1753
1754 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
1755 if (!string.IsNullOrEmpty(settings.OnClick)) { optionalAttributes.Add("onclick", settings.OnClick); }
1756 if (!string.IsNullOrEmpty(settings.Title))
1757 {
1758 optionalAttributes.Add("alt", settings.Title);
1759 optionalAttributes.Add("title", settings.Title);
1760 }
1761
1762 if (settings.DisableLazyLoad)
1763 {
1764 <img id="@settings.Id" class="@imageStyle @settings.CssClass dw-mod" src="@defaultImage" @ComponentMethods.AddAttributes(optionalAttributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes) />
1765 }
1766 else
1767 {
1768
1769 <img id="@settings.Id" class="@imageStyle @settings.CssClass dw-mod" loading="lazy" src="@defaultImage" @ComponentMethods.AddAttributes(optionalAttributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes) />
1770 }
1771 }
1772 }
1773 }
1774 @using System.Reflection
1775 @using Dynamicweb.Rapido.Blocks.Components.General
1776 @using Dynamicweb.Rapido.Blocks.Components
1777
1778 @* Component *@
1779
1780 @functions {
1781 void RenderHiddenField(HiddenField settings) {
1782 var attributes = new Dictionary<string, string>();
1783 attributes.Add("type", "hidden");
1784 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
1785 if (settings.Value != null) { attributes.Add("value", settings.Value); }
1786 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
1787
1788 <input @ComponentMethods.AddAttributes(attributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)/>
1789 }
1790 }
1791
1792 @using System.Reflection
1793 @using Dynamicweb.Rapido.Blocks.Components.General
1794 @using Dynamicweb.Rapido.Blocks.Components
1795
1796 @* Component *@
1797
1798 @functions {
1799 void RenderRadioButtonField(RadioButtonField settings)
1800 {
1801 var attributes = new Dictionary<string, string>();
1802 if (!string.IsNullOrEmpty(settings.Label) && string.IsNullOrEmpty(settings.Id))
1803 {
1804 settings.Id = Guid.NewGuid().ToString("N");
1805 }
1806
1807 /*base settings*/
1808 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
1809 if (!string.IsNullOrEmpty(settings.OnClick)) { attributes.Add("onclick", settings.OnClick); }
1810 if (!string.IsNullOrEmpty(settings.OnChange)) { attributes.Add("onchange", settings.OnChange); }
1811 if (settings.Disabled) { attributes.Add("disabled", "true"); }
1812 if (settings.Required) { attributes.Add("required", "true"); }
1813 if (!string.IsNullOrEmpty(settings.Name)) { attributes.Add("name", settings.Name); }
1814 /*end*/
1815
1816 attributes.Add("type", "radio");
1817 if (settings.Checked) { attributes.Add("checked", "true"); }
1818 settings.CssClass = "form__control " + settings.CssClass;
1819 if (settings.Value != null) { attributes.Add("value", settings.Value); }
1820
1821 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.Last().Value);
1822
1823 <div class="form__field-group @settings.WrapperCssClass dw-mod">
1824 <input @ComponentMethods.AddAttributes(resultAttributes) class="@settings.CssClass dw-mod" />
1825 @if (!string.IsNullOrEmpty(settings.Label))
1826 {
1827 <label for="@settings.Id" class="dw-mod">@settings.Label</label>
1828 }
1829 @if (!string.IsNullOrEmpty(settings.HelpText))
1830 {
1831 <small class="form__help-text">@settings.HelpText</small>
1832 }
1833 Render(new NotificationMessage { Message = settings.ErrorMessage });
1834 </div>
1835 }
1836 }
1837 @using System.Reflection
1838 @using Dynamicweb.Rapido.Blocks.Components.General
1839 @using Dynamicweb.Rapido.Blocks.Components
1840
1841 @* Component *@
1842
1843 @functions{
1844 void RenderRadioButtonListField(RadioButtonListField settings)
1845 {
1846 if (settings.Required && !String.IsNullOrEmpty(settings.Label)) { settings.Label += " <span class=\"required dw-mod\">*</span>"; }
1847
1848 <div class="form__field-group @settings.WrapperCssClass u-margin-bottom dw-mod" @ComponentMethods.AddAttributes(settings.ExtraAttributes)>
1849 @if (!string.IsNullOrEmpty(settings.Label))
1850 {
1851 <label>@settings.Label</label>
1852 }
1853 @if (!string.IsNullOrEmpty(settings.HelpText))
1854 {
1855 <small class="form__help-text">@settings.HelpText</small>
1856 }
1857
1858 @foreach (var item in settings.Options)
1859 {
1860 if (settings.Required)
1861 {
1862 item.Required = true;
1863 }
1864 if (settings.Disabled)
1865 {
1866 item.Disabled = true;
1867 }
1868 if (!string.IsNullOrEmpty(settings.Name))
1869 {
1870 item.Name = settings.Name;
1871 }
1872 if (settings.Value != null && settings.Value == item.Value)
1873 {
1874 item.Checked = true;
1875 }
1876 if (!string.IsNullOrEmpty(settings.OnClick))
1877 {
1878 item.OnClick += settings.OnClick;
1879 }
1880 if (!string.IsNullOrEmpty(settings.OnChange))
1881 {
1882 item.OnChange += settings.OnChange;
1883 }
1884 if (!string.IsNullOrEmpty(settings.CssClass))
1885 {
1886 item.CssClass += settings.CssClass;
1887 }
1888 Render(item);
1889 }
1890
1891 Render(new NotificationMessage { Message = settings.ErrorMessage });
1892 </div>
1893 }
1894 }
1895 @using Dynamicweb.Rapido.Blocks.Components.General
1896 @using Dynamicweb.Rapido.Blocks.Components
1897
1898 @* Component *@
1899
1900 @functions {
1901 void RenderForm(Form settings) {
1902 if (settings != null)
1903 {
1904 Dictionary<string, string> optionalAttributes = new Dictionary<string, string>();
1905 if (!string.IsNullOrEmpty(settings.Action)) { optionalAttributes.Add("action", settings.Action); };
1906 if (!string.IsNullOrEmpty(settings.Name)) { optionalAttributes.Add("name", settings.Name); };
1907 if (!string.IsNullOrEmpty(settings.OnSubmit)) { optionalAttributes.Add("onsubmit", settings.OnSubmit); };
1908 var enctypes = new Dictionary<string, string>
1909 {
1910 { "multipart", "multipart/form-data" },
1911 { "text", "text/plain" },
1912 { "application", "application/x-www-form-urlencoded" }
1913 };
1914 if (settings.Enctype != FormEnctype.none) { optionalAttributes.Add("enctype", enctypes[Enum.GetName(typeof(FormEnctype), settings.Enctype).ToLower()]); };
1915 optionalAttributes.Add("method", settings.Method.ToString());
1916
1917 if (!string.IsNullOrEmpty(settings.FormStartMarkup))
1918 {
1919 @settings.FormStartMarkup
1920 }
1921 else
1922 {
1923 @:<form class="@settings.CssClass u-no-margin dw-mod" @ComponentMethods.AddAttributes(optionalAttributes) @ComponentMethods.AddAttributes(settings.ExtraAttributes)>
1924 }
1925
1926 foreach (var field in settings.GetFields())
1927 {
1928 Render(field);
1929 }
1930
1931 @:</form>
1932 }
1933 }
1934 }
1935
1936 @using System.Reflection
1937 @using Dynamicweb.Rapido.Blocks.Components.General
1938 @using Dynamicweb.Rapido.Blocks.Components
1939
1940 @* Component *@
1941
1942 @functions {
1943 void RenderText(Text settings)
1944 {
1945 @settings.Content
1946 }
1947 }
1948
1949 @using System.Reflection
1950 @using Dynamicweb.Rapido.Blocks.Components.General
1951 @using Dynamicweb.Rapido.Blocks.Components
1952
1953
1954 @* Component *@
1955
1956 @functions {
1957 void RenderContentModule(ContentModule settings) {
1958 if (!string.IsNullOrEmpty(settings.Content))
1959 {
1960 @settings.Content
1961 }
1962 }
1963 }
1964
1965 @using System.Reflection
1966 @using Dynamicweb.Rapido.Blocks.Components.General
1967 @using Dynamicweb.Rapido.Blocks.Components
1968
1969
1970 @* Component *@
1971
1972 @functions {
1973 void RenderModal(Modal settings) {
1974 if (settings != null)
1975 {
1976 string modalId = !string.IsNullOrEmpty(settings.Id) ? settings.Id : Guid.NewGuid().ToString("N");
1977
1978 string onchange = !string.IsNullOrEmpty(settings.OnClose) ? "onchange=\"if(!this.checked){" + settings.OnClose + "}\"" : "";
1979
1980 <input type="checkbox" id="@(modalId)ModalTrigger" class="modal-trigger" @onchange />
1981
1982 <div class="modal-container">
1983 @if (!settings.DisableDarkOverlay)
1984 {
1985 <label for="@(modalId)ModalTrigger" id="@(modalId)ModalOverlay" class="modal-overlay"></label>
1986 }
1987 <div class="modal modal--@settings.Width.ToString().ToLower() modal-height--@settings.Height.ToString().ToLower()" id="@(modalId)Modal">
1988 @if (settings.Heading != null)
1989 {
1990 if (!string.IsNullOrEmpty(settings.Heading.Title))
1991 {
1992 <div class="modal__header">
1993 RenderHeading(settings.Heading);
1994 </div>
1995 }
1996 }
1997 <div class="modal__body @(settings.Width.ToString().ToLower() == "full" ? "modal__body--full" : "")">
1998 @if (!string.IsNullOrEmpty(settings.BodyText))
1999 {
2000 @settings.BodyText
2001 }
2002 @if (settings.BodyTemplate != null)
2003 {
2004 @settings.BodyTemplate
2005 }
2006 @{
2007 var actions = settings.GetActions();
2008 }
2009 </div>
2010 @if (actions.Length > 0)
2011 {
2012 <div class="modal__footer">
2013 @foreach (var action in actions)
2014 {
2015 if (Dynamicweb.Frontend.PageView.Current().Device.ToString() != "Mobile") {
2016 action.CssClass += " u-no-margin";
2017 } else {
2018 action.CssClass += " u-full-width u-margin-bottom";
2019 }
2020
2021 Render(action);
2022 }
2023 </div>
2024 }
2025 <label class="modal__close-btn" for="@(modalId)ModalTrigger"></label>
2026 </div>
2027 </div>
2028 }
2029 }
2030 }
2031 @using Dynamicweb.Rapido.Blocks.Components.General
2032
2033 @* Component *@
2034
2035 @functions {
2036 void RenderMediaListItem(MediaListItem settings)
2037 {
2038 <div class="media-list-item @settings.CssClass dw-mod" @(!string.IsNullOrEmpty(settings.Id) ? "id=\"" + settings.Id + "\"" : "")>
2039 @if (!string.IsNullOrEmpty(settings.Label))
2040 {
2041 if (!string.IsNullOrEmpty(settings.Link))
2042 {
2043 Render(new Link
2044 {
2045 Href = settings.Link,
2046 CssClass = "media-list-item__sticker dw-mod",
2047 ButtonLayout = ButtonLayout.None,
2048 Title = settings.Label,
2049 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
2050 });
2051 }
2052 else if (!string.IsNullOrEmpty(settings.OnClick))
2053 {
2054 <span class="media-list-item__sticker dw-mod" onclick="@(settings.OnClick)">
2055 <span class="u-uppercase">@settings.Label</span>
2056 </span>
2057 }
2058 else
2059 {
2060 <span class="media-list-item__sticker media-list-item__sticker--no-link dw-mod">
2061 <span class="u-uppercase">@settings.Label</span>
2062 </span>
2063 }
2064 }
2065 <div class="media-list-item__wrap">
2066 <div class="media-list-item__info dw-mod">
2067 <div class="media-list-item__header dw-mod">
2068 @if (!string.IsNullOrEmpty(settings.Title))
2069 {
2070 if (!string.IsNullOrEmpty(settings.Link))
2071 {
2072 Render(new Link
2073 {
2074 Href = settings.Link,
2075 CssClass = "media-list-item__name dw-mod",
2076 ButtonLayout = ButtonLayout.None,
2077 Title = settings.Title,
2078 OnClick = !string.IsNullOrEmpty(settings.OnClick) ? settings.OnClick : ""
2079 });
2080 }
2081 else if (!string.IsNullOrEmpty(settings.OnClick))
2082 {
2083 <span class="media-list-item__name dw-mod" onclick="@(settings.OnClick)">@settings.Title</span>
2084 }
2085 else
2086 {
2087 <span class="media-list-item__name media-list-item__name--no-link dw-mod">@settings.Title</span>
2088 }
2089 }
2090
2091 @if (!string.IsNullOrEmpty(settings.Status))
2092 {
2093 <div class="media-list-item__state dw-mod">@settings.Status</div>
2094 }
2095 </div>
2096 @{
2097 settings.InfoTable.CssClass += " media-list-item__parameters-table";
2098 }
2099
2100 Render(settings.InfoTable);
2101 </div>
2102 <div class="media-list-item__actions dw-mod">
2103 <div class="media-list-item__actions-list dw-mod">
2104 @{
2105 var actions = settings.GetActions();
2106
2107 foreach (ButtonBase action in actions)
2108 {
2109 action.ButtonLayout = ButtonLayout.None;
2110 action.CssClass += " media-list-item__action link";
2111
2112 Render(action);
2113 }
2114 }
2115 </div>
2116
2117 @if (settings.SelectButton != null && !string.IsNullOrEmpty(settings.SelectButton.Title))
2118 {
2119 settings.SelectButton.CssClass += " u-no-margin";
2120
2121 <div class="media-list-item__action-button">
2122 Render(settings.SelectButton);
2123 </div>
2124 }
2125 </div>
2126 </div>
2127 </div>
2128 }
2129 }
2130
2131
2132 @using Dynamicweb.Rapido.Blocks.Components.General
2133 @using Dynamicweb.Rapido.Blocks.Components
2134
2135 @functions {
2136 void RenderTable(Table settings)
2137 {
2138 Dictionary<string, string> attributes = new Dictionary<string, string>();
2139 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
2140
2141 var enumToClasses = new Dictionary<TableDesign, string>
2142 {
2143 { TableDesign.Clean, "table--clean" },
2144 { TableDesign.Bordered, "table--bordered" },
2145 { TableDesign.Striped, "table--striped" },
2146 { TableDesign.Hover, "table--hover" },
2147 { TableDesign.Compact, "table--compact" },
2148 { TableDesign.Condensed, "table--condensed" },
2149 { TableDesign.NoTopBorder, "table--no-top-border" }
2150 };
2151 string tableDesignClass = "";
2152 if (settings.Design != TableDesign.None)
2153 {
2154 tableDesignClass = enumToClasses[settings.Design];
2155 }
2156
2157 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableDesign.None) { attributes.Add("class", "table " + tableDesignClass + " " + settings.CssClass + " dw-mod"); }
2158
2159 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
2160
2161 <table @ComponentMethods.AddAttributes(resultAttributes)>
2162 @if (settings.Header != null)
2163 {
2164 <thead>
2165 Render(settings.Header);
2166 </thead>
2167 }
2168 <tbody>
2169 @foreach (var row in settings.Rows)
2170 {
2171 Render(row);
2172 }
2173 </tbody>
2174 @if (settings.Footer != null)
2175 {
2176 <tfoot>
2177 Render(settings.Footer);
2178 </tfoot>
2179 }
2180 </table>
2181 }
2182 }
2183 @using Dynamicweb.Rapido.Blocks.Components.General
2184 @using Dynamicweb.Rapido.Blocks.Components
2185
2186 @functions {
2187 void RenderTableRow(TableRow settings)
2188 {
2189 Dictionary<string, string> attributes = new Dictionary<string, string>();
2190 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
2191
2192 var enumToClasses = new Dictionary<TableRowDesign, string>
2193 {
2194 { TableRowDesign.NoBorder, "table__row--no-border" },
2195 { TableRowDesign.Border, "table__row--border" },
2196 { TableRowDesign.TopBorder, "table__row--top-line" },
2197 { TableRowDesign.BottomBorder, "table__row--bottom-line" },
2198 { TableRowDesign.Solid, "table__row--solid" }
2199 };
2200
2201 string tableRowDesignClass = "";
2202 if (settings.Design != TableRowDesign.None)
2203 {
2204 tableRowDesignClass = enumToClasses[settings.Design];
2205 }
2206
2207 if (!string.IsNullOrEmpty(settings.CssClass) || settings.Design != TableRowDesign.None) { attributes.Add("class", "table__row " + tableRowDesignClass + " " + settings.CssClass + " dw-mod"); }
2208
2209 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
2210
2211 <tr @ComponentMethods.AddAttributes(resultAttributes)>
2212 @foreach (var cell in settings.Cells)
2213 {
2214 if (settings.IsHeaderRow)
2215 {
2216 cell.IsHeader = true;
2217 }
2218 Render(cell);
2219 }
2220 </tr>
2221 }
2222 }
2223 @using Dynamicweb.Rapido.Blocks.Components.General
2224 @using Dynamicweb.Rapido.Blocks.Components
2225 @using Dynamicweb.Core
2226
2227 @functions {
2228 void RenderTableCell(TableCell settings)
2229 {
2230 Dictionary<string, string> attributes = new Dictionary<string, string>();
2231 if (!string.IsNullOrEmpty(settings.Id)) { attributes.Add("id", settings.Id); }
2232 if (settings.Colspan != 0) { attributes.Add("colspan", Converter.ToString(settings.Colspan)); }
2233 if (settings.Rowspan != 0) { attributes.Add("rowspan", Converter.ToString(settings.Rowspan)); }
2234 if (!string.IsNullOrEmpty(settings.CssClass)) { attributes.Add("class", settings.CssClass + " dw-mod"); }
2235
2236 var resultAttributes = attributes.Concat(settings.ExtraAttributes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value);
2237
2238 string tagName = settings.IsHeader ? "th" : "td";
2239
2240 @("<" + tagName + " " + ComponentMethods.AddAttributes(resultAttributes) + ">")
2241 @settings.Content
2242 @("</" + tagName + ">");
2243 }
2244 }
2245 @* <h1>ArticleComponents.cshtml</h1> *@
2246
2247 @{
2248 Context.Current.Response.AddHeader("access-control-allow-origin", "*");
2249
2250 string bodyClass = "";
2251 string template = "real";
2252 string TemplateUrl = "/Files/Templates/Designs/rm/";
2253 string MetaTitle = Model.Title;
2254 string MetaDescription = Model.Description;
2255 string MetaKeywords = Model.Keywords;
2256 string searchClass = "";
2257
2258 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css"));
2259 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}";
2260
2261 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg";
2262
2263 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2");
2264
2265 // Indstillinger
2266 var settings_Frontpage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : "";
2267 var settings_Boligside = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : "";
2268 var settings_Maeglersogning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : "";
2269 var settings_MinSide = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : "";
2270 var settings_Sibling_Site = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : "";
2271 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : "";
2272 var settings_Product_Group = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : "";
2273 var settings_Boligagent = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : "";
2274 var settings_Persondatapolitik = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : "";
2275
2276 // API
2277 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : "";
2278 var settings_BoligListFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : "";
2279 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : "";
2280 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : "";
2281 var settings_BoligCountFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : "";
2282 var settings_BoligMapFeed = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : "";
2283 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"];
2284
2285 // Forside
2286 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : "";
2287 var settings_FrontpageVideo = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : "";
2288 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : "";
2289
2290 // Tracking
2291 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : "";
2292 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"])))
2293 {
2294 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]);
2295 }
2296 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : "";
2297 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : "";
2298 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : "";
2299 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]);
2300 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]);
2301 var settings_Google_Optimize_Id = Converter.ToString(SettingsItem["Google_Optimize_Id"]);
2302
2303 // Indstillinger for brugerfunktioner
2304 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : "";
2305 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : "";
2306 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : "";
2307 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : "";
2308
2309 int createUserParagraphId = 0;
2310 int loginParagraphId = 0;
2311 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId);
2312 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId);
2313
2314 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv.
2315 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv)
2316 int searchPageId = GetPageSettingsPageId("Boligside");
2317 if (searchPageId == 0)
2318 {
2319 searchPageId = GetWebsiteSettingsPageId("Boligside");
2320 }
2321
2322 int boligsideId = GetPageSettingsPageId("Boligside");
2323 if (boligsideId == 0)
2324 {
2325 boligsideId = GetWebsiteSettingsPageId("Boligside");
2326 }
2327
2328 string productGroupFilter = String.Empty;
2329 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null)
2330 {
2331 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString();
2332 }
2333
2334 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"]))
2335 {
2336 searchClass = "is-frontpage";
2337 }
2338
2339 bool isErhverv = false;
2340 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null)
2341 {
2342 var s = Pageview.Page.PropertyItem["Erhverv"].ToString();
2343 Boolean.TryParse(s, out isErhverv);
2344 }
2345
2346 bool isBrokerPage = false;
2347 if (!string.IsNullOrEmpty(Model.Area.Item.GetString("M_glerGruppeId")))
2348 {
2349 isBrokerPage = true;
2350 bodyClass = ""; // Get rid of transparent header on brokerPage
2351 }
2352
2353 string callTrackingId = Model.Item.GetString("CallTrackingId");
2354
2355 RealEstate.User.Model.BrokerEmployee MyBroker = null;
2356 try
2357 {
2358 var MyB = new RealEstate.User.MyBroker();
2359 MyBroker = MyB.GetMyBroker();
2360 }
2361 catch
2362 {
2363 // Ignore
2364 }
2365
2366 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : "");
2367 string querySearchNameAttr = "search";
2368
2369 // Overwrite search with zipcodeinterval if set
2370 if (Context.Current.Request.QueryString["zipcodeinterval"] != null)
2371 {
2372 querySearch = Context.Current.Request.QueryString["zipcodeinterval"];
2373 querySearchNameAttr = "zipcodeinterval";
2374 }
2375
2376 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : "");
2377 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : "");
2378
2379 Dynamicweb.Security.UserManagement.User user = null;
2380 int userID = 0;
2381 string userName = "";
2382 string userEmail = "";
2383 string userPhone = "";
2384 string userZip = "";
2385 string userAddress = "";
2386
2387 if (Dynamicweb.Security.UserManagement.UserContext.Current.IsLoggedOn)
2388 {
2389 user = Dynamicweb.Security.UserManagement.UserContext.Current.User;
2390 userName = user.Name;
2391 userEmail = user.Email;
2392 userPhone = user.Phone;
2393 userZip = user.Zip;
2394 userAddress = user.Address;
2395 userID = user.ID;
2396 }
2397
2398 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode");
2399 string forgotPwTemplate = "";
2400 string forgotPwSender = "";
2401 string markerColor = "";
2402 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png";
2403
2404 // Important - e-mail templates for forgotPw must be placed in "UserManagement/Login" folder
2405 forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml";
2406 forgotPwSender = "noreply@mailreal.dk";
2407 markerColor = "#213960";
2408
2409 var butikId = string.Empty;
2410 string bEmail = string.Empty;
2411 if (MyBroker != null && MyBroker.Broker != null)
2412 {
2413 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
2414 bEmail = MyBroker.Broker.Item().GetString("Email");
2415 }
2416
2417 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment"));
2418
2419 var termsMail = "info@realmaeglerne.dk";
2420 }
2421
2422 <!DOCTYPE html>
2423 <html>
2424 <head>
2425 <meta charset="utf-8">
2426 <title>@MetaTitle</title>
2427 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
2428 <meta name="description" content="@MetaDescription">
2429 <meta name="keywords" content="@MetaKeywords">
2430 <meta name="format-detection" content="telephone=no">
2431 <meta http-equiv="Expires" content="60">
2432 <meta name="robots" content="@(Pageview.Area.Noindex ? "noindex" : "index"),@(Pageview.Area.Nofollow ? "nofollow" : "follow")">
2433
2434 @*RICH SNIPPETS*@
2435
2436 @RenderSnippet("OpenGraphTags")
2437 @if (!string.IsNullOrEmpty(settings_Google_Optimize_Id))
2438 {
2439 <!-- Google optimize script-->
2440 <script src="https://www.googleoptimize.com/optimize.js?id=@settings_Google_Optimize_Id"></script>
2441 }
2442 <!-- TrustBox script -->
2443 <script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script>
2444 <!-- End TrustBox script -->
2445
2446 <script type="application/ld+json">
2447 {
2448 "context": "https://schema.org/",
2449 "@@type": "WebSite",
2450 "name": "RealMæglerne",
2451 "url": "https://www.realmaeglerne.dk/",
2452 "potentialAction": {
2453 "type": "SearchAction",
2454 "target": "https://www.realmaeglerne.dk/find-maegler?q={search_term_string}",
2455 "query-input": "required name=search_term_string"
2456 }
2457 }
2458 </script>
2459
2460 <script type="application/ld+json">
2461 {
2462 "context": "https://schema.org",
2463 "@@type": "Corporation",
2464 "name": "RealMæglerne",
2465 "alternateName": "R&B Mægler A/S",
2466 "url": "https://www.realmaeglerne.dk",
2467 "logo": "https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png",
2468 "contactPoint": {
2469 "type": "ContactPoint",
2470 "telephone": "+4570237153",
2471 "contactType": "sales",
2472 "areaServed": "DK",
2473 "availableLanguage": "Danish"
2474 },
2475 "sameAs": [
2476 "https://www.facebook.com/realmaeglerne/",
2477 "https://www.linkedin.com/company/realmæglerne/",
2478 "https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g",
2479 "https://www.realmaeglerne.dk/"
2480 ]
2481 }
2482 </script>
2483 @RenderSnippet("StructuredData")
2484 @*RICH SNIPPETS END*@
2485
2486 @*FONT AWESOME*@
2487 @{
2488 <link rel="stylesheet" href="@(TemplateUrl)assets/fontawesome/css/all.css" async />
2489 <link rel="stylesheet" href="@mainCSS" async />
2490
2491 if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
2492 {
2493 var cssErhvervFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/erhverv.min.css"));
2494 string erhvervCSS = TemplateUrl + $"assets/dist/css/erhverv.min.css?{cssErhvervFileInfo.LastWriteTime.Ticks}";
2495 <link rel="stylesheet" href="@erhvervCSS" async>
2496 }
2497 }
2498
2499
2500 <link rel="icon" type="image/ico" href="@(TemplateUrl)assets/images/favicons/favicon-real.ico?v=1">
2501 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-16x16.png" sizes="16x16">
2502 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-32x32.png" sizes="32x32">
2503 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-96x96.png" sizes="96x96">
2504 <meta name="google-site-verification" content="hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg" />
2505
2506 @if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString()))
2507 {
2508 <script>
2509 window.dataLayer = window.dataLayer || []; // must be placed above GTM script
2510 </script>
2511 <!-- Google Tag Manager -->
2512 <script>
2513 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
2514 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
2515 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
2516 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
2517 })(window,document,'script','dataLayer','@settings_Google_Tag_Manager_ID');</script>
2518 <!-- End Google Tag Manager -->
2519 }
2520
2521 @if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId))
2522 {
2523 <script type="text/javascript" src="https://call.call-tracking.dk/getJavascript?custid=@callTrackingId"></script>
2524 }
2525
2526 @if (!String.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString()))
2527 {
2528 <!-- Begin Leadhub Pixel Code -->
2529 <script>
2530 (function(w,d,x,n,u,t,f,s,o){
2531 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){
2532 (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)
2533 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '@settings_Leadhub_Pixel_ID');
2534 lhi('pageview');
2535 </script>
2536 <!-- End Leadhub Pixel Code -->
2537 }
2538
2539 <script>
2540 // Global namespace used for fetching API feeds from DW
2541 var RMAPI = (RMAPI) ? RMAPI : {};
2542 var ApiPreFix = "/Default.aspx?ID=";
2543 RMAPI.BoligCountFeed = ApiPreFix + "@settings_BoligCountFeed";
2544 RMAPI.BoligListFeed = ApiPreFix + "@settings_BoligListFeed" + "&refpageid=@Pageview.Page.ID";
2545 RMAPI.BoligListFeedErhverv = "@settings_BoligListFeedErhverv";
2546 RMAPI.BoligListFeedMaegler = ApiPreFix + "@settings_BoligListFeedMaegler" + "&refpageid=@Pageview.Page.ID";
2547 RMAPI.BoligSearchFeed = ApiPreFix + "@settings_BoligSearchFeed";
2548 RMAPI.BoligMapFeed = ApiPreFix + "@settings_BoligMapFeed";
2549 RMAPI.Boligagent = "@settings_Boligagent";
2550 RMAPI.IsErhverv = @isErhverv.ToString().ToLower();
2551 RMAPI.ProductGroupFilter = "@productGroupFilter";
2552 RMAPI.ButikId = "@butikId";
2553 RMAPI.Boligvisning = false;
2554 RMAPI.RefPageId = "@Pageview.Page.ID";
2555 RMAPI.Template = "@template";
2556 RMAPI.SliderSettings = @JsonConvert.SerializeObject(Settings.Site);
2557 RMAPI.AdvisorSearchFeed = "@settings_AdvisorSearchFeed";
2558 RMAPI.LoadingIcon = "@loadingIcon";
2559 RMAPI.MarkerColor = "@markerColor";
2560 RMAPI.mapMarkerUrl = "@mapMarkerUrl";
2561 RMAPI.settings_ForgotPwPage = "@settings_ForgotPwPage";
2562 </script>
2563
2564 @if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString()))
2565 {
2566 <!-- Facebook Pixel Code -->
2567 <script>
2568 !function (f, b, e, v, n, t, s) {
2569 if (f.fbq) return; n = f.fbq = function () {
2570 n.callMethod ?
2571 n.callMethod.apply(n, arguments) : n.queue.push(arguments)
2572 };
2573 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';
2574 n.queue = []; t = b.createElement(e); t.async = !0;
2575 t.src = v; s = b.getElementsByTagName(e)[0];
2576 s.parentNode.insertBefore(t, s)
2577 }(window, document, 'script',
2578 'https://connect.facebook.net/en_US/fbevents.js');
2579 fbq('init', '@settings_Facebook_App_ID');
2580 fbq('track', 'PageView');
2581 </script>
2582 <noscript>
2583 <img height="1" width="1" src="https://www.facebook.com/tr?id=@settings_Facebook_App_ID&ev=PageView&noscript=1" />
2584 </noscript>
2585 <!-- End Facebook Pixel Code -->
2586 }
2587
2588 <script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=5d68cfaf5fea9f001288d9ac&product=inline-share-buttons' async='async'></script>
2589
2590 </head>
2591
2592 <body class="@template@bodyClass" data-spforgotpwtemplate="@forgotPwTemplate" data-spforgotpwsender="@forgotPwSender" data-spforgotpwsubject="@forgotPwSubject" data-spsalesassesmentid="@salesAssessmentPageId">
2593 @{
2594 string logoUrl = TemplateUrl + (!Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg");
2595 }
2596
2597 @if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) && GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
2598 {
2599 <div class="top-search">
2600 <div class="header logo">
2601 <div class="logo">
2602 <a href="/erhverv">
2603 <img src="@logoUrl" alt="RealMæglerne" />
2604 </a>
2605 </div>
2606 </div>
2607 <div class="top-form mx-auto">
2608 <form id="main-search-top" class="js-top-search" action="/Default.aspx" method="GET">
2609 @{
2610
2611 var settings_BoligListErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : "";
2612 }
2613 <input type="hidden" name="ID" value='@settings_BoligListErhverv' id="searchPageId-top" disabled="disabled" />
2614
2615 @if (Context.Current.Request["type"] == "egetforbrug")
2616 {
2617 <input name="type" type="hidden" value="egetforbrug" />
2618 <input name="investeringsejendom" type="hidden" value="0" />
2619 }
2620 <div class="row form-wrapper no-gutters">
2621 <div class="col-xs-12 col-md-4 col-lg-5 col-searchbar">
2622 <div class="searchbar float-label-container text-left">
2623 <label class="float-label">@Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer")</label>
2624 <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)" />
2625 </div>
2626 </div>
2627 <div class="col-xs-12 col-md-5">
2628 <div class="row no-gutters">
2629 <div class="col-xs-12 col-md-6 input-col">
2630 <div class="dropdown w-overlay float-label-container">
2631 <label class="float-label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">@Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype")</label>
2632 <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>
2633 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
2634 <ul class="bolig-dropdown list-unstyled">
2635 @{
2636 RenderBoligTypeErhverv();
2637 }
2638 </ul>
2639 <span class="border-fat"></span>
2640 <div class="d-none d-md-block">
2641 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
2642 </div>
2643 <div class="d-flex row d-md-none">
2644 <div class="col-6">
2645 <button class="btn btn-danger js-remove-filter">@Translate("Smartpage:Search.Annuller", "Annuller")</button>
2646 </div>
2647 <div class="col-6">
2648 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
2649 </div>
2650 </div>
2651 </div>
2652
2653 </div>
2654 </div>
2655 <div class="col-xs-12 col-md-6 input-col">
2656 <div class="btn-dropdown p-3 border-top-bottom-right">
2657 <ul class="two-column list-unstyled">
2658 <li>
2659 <label class="checkbox-container">
2660 @Translate("Smartpage:Search.Erhverv.Leje", "Leje")
2661 <input type="checkbox" name="propertytype" value="leje" class="js-input-check" />
2662 <span class="checkmark"></span>
2663 </label>
2664 </li>
2665 <li>
2666 <label class="checkbox-container">
2667 @Translate("Smartpage:Search.Erhverv.Køb", "Køb")
2668 <input type="checkbox" name="propertytype" value="kob" class="js-input-check" />
2669 <span class="checkmark"></span>
2670 </label>
2671 </li>
2672 </ul>
2673 </div>
2674
2675 </div>
2676 </div>
2677 </div>
2678 <div class="col-xs-12 col-md-3 col-lg-2 d-none d-md-block">
2679 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
2680 </div>
2681 </div>
2682 </form>
2683 </div>
2684 </div>
2685 }
2686
2687 @if (Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]))
2688 {
2689 <div class="header shortcuts">
2690 <div class="header-shortcuts float-right">
2691 @if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID)
2692 {
2693 <a href='' class="search-menu d-none d-xl-flex align-items-center float-left border-right js-mainsearch topsearch @searchClass">
2694 <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>
2695 </a>
2696 }
2697 <div class="menu-slide d-flex align-items-center">
2698 <b></b>
2699 <span class="menu-text hidden d-md-block">Menu</span>
2700 </div>
2701 </div>
2702
2703
2704 </div>
2705 }
2706 else
2707 {
2708 int mainSiteAreaId = Custom.Navigation.Config.GetMainSiteAreaId();
2709
2710 var myAccountPage = Dynamicweb.Content.Services.Pages.GetPageByNavigationTag(mainSiteAreaId, "MyAccount");
2711
2712 <div class="header__container container">
2713 <div class="header__logo">
2714 <a href="/" title="">
2715 <img src="@(logoUrl)" alt="" />
2716 </a>
2717 </div>
2718 <div class="header__title">
2719 <span>@Translate("Custom:Header.Title", "Realmæglerne")</span>
2720 </div>
2721 @if (myAccountPage is object)
2722 {
2723 <div class="header__navigation d-none d-md-flex">
2724 <div class="header__navigation">
2725 <div class="header__Link">
2726 <ul>
2727 <li class="d-flex align-items-center">
2728 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
2729 <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" />
2730 </svg>
2731 <a class="ml-2" href="/Default.aspx?ID=@myAccountPage.ID" target="_blank">@Translate("Mit RealMæglerne")</a>
2732 </li>
2733 </ul>
2734 </div>
2735 </div>
2736 </div>
2737
2738 }
2739 <div class="header__search flex-column flex-md-row js-mainsearch">
2740 @Translate("Søg bolig")
2741 </div>
2742 <div class="header__navigation">
2743 <div class="header__navigation-icon menu-slide">
2744 <div class="d-none d-md-block">
2745 @Translate("Menu")
2746 </div>
2747 </div>
2748 </div>
2749 </div>
2750 }
2751
2752 <div class="search-modal">
2753
2754 @if (Converter.ToString(Pageview.Area.Item["Type"]) == "real")
2755 {
2756 <div class="main-search-form">
2757 <i class="fal fa-times float-right fa-2x js-close-search close-search"></i>
2758 <div class="row mb-3 align-items-center">
2759 <div class="col-xs-12 col-md-3 border-right">
2760 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
2761 </div>
2762 <div class="col-xs-12 col-md-9 home-count d-none d-md-block">
2763 <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>
2764
2765 </div>
2766 </div>
2767
2768 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET">
2769 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" />
2770 <div class="row form-wrapper no-gutters">
2771
2772 <div class="col-xs-12 col-md-5 col-searchbar">
2773 <div class="searchbar">
2774 <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)" />
2775 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" />
2776 <input type="hidden" id="zipcodeto" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" />
2777 </div>
2778 </div>
2779 <div class="col-xs-12 col-md-5">
2780 <div class="row no-gutters">
2781 <div class="col-xs-12 col-md-6 input-col">
2782 <div class="dropdown">
2783 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2784 @Translate("Smartpage:Search.Boligtype", "Boligtype")
2785 </button>
2786 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
2787 <ul class="bolig-dropdown list-unstyled">
2788 @{
2789 RenderBoligtypeCheckboxesDropdown();
2790 }
2791 </ul>
2792 <span class="border-fat"></span>
2793 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
2794 </div>
2795
2796 </div>
2797
2798 </div>
2799 <div class="col-xs-12 col-md-6 input-col">
2800 <div class="dropdown">
2801 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2802 @Translate("Smartpage:Search.Pris", "Pris")
2803 </button>
2804 <div class="dropdown-menu box-shadow dropdown-price js-dropdown-price" aria-labelledby="Pris">
2805 <input name="pricemin" type="text" class="form-control mb-10 js-auto-thousand js-pricemin-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemin"]) ? Context.Current.Request.QueryString["pricemin"] : "")' />
2806 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
2807 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
2808 @for (var i = 0; i <= 10000000; i += 100000)
2809 {
2810 if (i == 10000000)
2811 {
2812 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
2813 }
2814 else
2815 {
2816 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
2817 }
2818 }
2819 </select>
2820
2821 <input type="text" name="pricemax" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemax"]) ? Context.Current.Request.QueryString["pricemax"] : "")' />
2822 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
2823 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
2824 @for (var i = 0; i <= 10000000; i += 100000)
2825 {
2826 if (i == 10000000)
2827 {
2828 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
2829 }
2830 else
2831 {
2832 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
2833 }
2834 }
2835 </select>
2836 </div>
2837 </div>
2838 </div>
2839 </div>
2840 </div>
2841 <div class="col-xs-12 col-md-2 d-none d-md-block">
2842 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
2843 </div>
2844 </div>
2845
2846 <div class="row moresearch-btn no-gutters">
2847 <div class="col-sm-12">
2848 <div class="row align-items-center no-gutters">
2849 <div class="col-12 col-md-4">
2850 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch">
2851 <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>
2852 </button>
2853 </div>
2854 <div class="col-6 col-md-2 mb-xs-4">
2855 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
2856 </div>
2857 </div>
2858
2859 <div class="collapse" id="moreSearch-master">
2860
2861 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
2862 <div class="row align-items-end mb-30">
2863 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
2864 <div class="filter-container row">
2865 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
2866 <div class="col-6 pr-sm-0 pr-2">
2867 <input type="text" name="boligarealmin" id="boligarealmin" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmin"]) ? Context.Current.Request.QueryString["boligarealmin"] : "")' />
2868 <select class="form-control js-boligarealmin-frontpage-select js-count">
2869 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
2870 @for (var i = 0; i <= 300; i += 10)
2871 {
2872 if (i == 300)
2873 {
2874 <option>@i+</option>
2875 }
2876 else
2877 {
2878 <option>@i</option>
2879 }
2880 }
2881 </select>
2882
2883 </div>
2884 <div class="col-6 pl-sm-0 pl-2">
2885 <input type="text" name="boligarealmax" id="boligarealmax" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmax"]) ? Context.Current.Request.QueryString["boligarealmax"] : "")' />
2886 <select class="form-control js-boligarealmax-frontpage-select js-count">
2887 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
2888 @for (var i = 0; i <= 300; i += 10)
2889 {
2890 if (i == 300)
2891 {
2892 <option>@i+</option>
2893 }
2894 else
2895 {
2896 <option>@i</option>
2897 }
2898 }
2899 </select>
2900
2901 </div>
2902 </div>
2903 </div>
2904 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
2905 <div class="filter-container row">
2906 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
2907 <div class="col-6 pr-sm-0 pr-2">
2908 <input type="text" name="grundarealmin" id="grundarealmin" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmin"]) ? Context.Current.Request.QueryString["grundarealmin"] : "")' />
2909 <select class="form-control js-grundarealmin-frontpage-select js-count">
2910 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
2911 @for (var i = 0; i <= 10000; i += 100)
2912 {
2913 if (i == 10000)
2914 {
2915 <option>@i+</option>
2916 }
2917 else
2918 {
2919 <option>@i</option>
2920 }
2921 }
2922 </select>
2923 </div>
2924 <div class="col-6 pl-sm-0 pl-2">
2925 <input type="text" name="grundarealmax" id="grundarealmax" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmax"]) ? Context.Current.Request.QueryString["grundarealmax"] : "")' />
2926 <select class="form-control js-grundarealmax-frontpage-select js-count">
2927 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
2928 @for (var i = 0; i <= 10000; i += 100)
2929 {
2930 if (i == 10000)
2931 {
2932 <option>@i+</option>
2933 }
2934 else
2935 {
2936 <option>@i</option>
2937 }
2938 }
2939 </select>
2940 </div>
2941 </div>
2942 </div>
2943 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
2944 <div class="filter-container row">
2945 <label class="d-block col-12">Antal rum</label>
2946 <div class="col-6 pr-sm-0 pr-2">
2947 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count">
2948 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
2949 @{
2950 RenderSelectValue("1", "1", "roomsmin");
2951 RenderSelectValue("2", "2", "roomsmin");
2952 RenderSelectValue("3", "3", "roomsmin");
2953 RenderSelectValue("4", "4", "roomsmin");
2954 RenderSelectValue("5+", "5", "roomsmin");
2955 }
2956 </select>
2957 </div>
2958 <div class="col-6 pl-sm-0 pl-2">
2959 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count">
2960 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
2961 @{
2962 RenderSelectValue("1", "1", "roomsmax");
2963 RenderSelectValue("2", "2", "roomsmax");
2964 RenderSelectValue("3", "3", "roomsmax");
2965 RenderSelectValue("4", "4", "roomsmax");
2966 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax");
2967 }
2968 </select>
2969 </div>
2970 </div>
2971 </div>
2972 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
2973 <div class="row">
2974 <div class="col-12 pr-2">
2975 <div class="filter-container">
2976 <label class="d-block">Energimærke</label>
2977 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count">
2978 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
2979 <option value="01">G</option>
2980 <option value="02">F</option>
2981 <option value="03">E</option>
2982 <option value="04">D</option>
2983 <option value="05">C</option>
2984 <option value="06">B</option>
2985 <option value="07">A</option>
2986 <option value="08">A2010</option>
2987 <option value="09">A2015</option>
2988 <option value="10">A2020+</option>
2989 </select>
2990 </div>
2991 </div>
2992 </div>
2993 </div>
2994 <div class="col-12 col-sm-6 col-lg-3 mt-3">
2995 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
2996 <div class="filter-container row">
2997 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
2998 <div class="col-6 pr-sm-0 pr-2">
2999 <input type="text" name="subsidymin" id="subsidymin" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymin"]) ? Context.Current.Request.QueryString["subsidymin"] : "")' />
3000 <select class="form-control js-subsidymin-frontpage-select js-count">
3001 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
3002 @for (var i = 0; i <= 25000; i += 1250)
3003 {
3004 if (i == 25000)
3005 {
3006 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3007 }
3008 else
3009 {
3010 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3011 }
3012 }
3013 </select>
3014 </div>
3015 <div class="col-6 pl-sm-0 pl-2">
3016 <input type="text" name="subsidymax" id="subsidymax" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymax"]) ? Context.Current.Request.QueryString["subsidymax"] : "")' />
3017 <select class="form-control js-subsidymax-frontpage-select js-count">
3018 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
3019 @for (var i = 0; i <= 25000; i += 1250)
3020 {
3021 if (i == 25000)
3022 {
3023 <option value="@Converter.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
3024 }
3025 else
3026 {
3027 <option value="@Converter.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
3028 }
3029 }
3030 </select>
3031 </div>
3032 </div>
3033 </div>
3034 <div class="col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0">
3035 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
3036 </div>
3037 </div>
3038 </div>
3039 </div>
3040 </div>
3041 <div class="row d-block d-md-none form-wrapper no-gutters">
3042 <div class="col-xs-12 col-md-2">
3043 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
3044 </div>
3045 </div>
3046
3047
3048 </form>
3049 </div>
3050 }
3051 else
3052 {
3053 <div class="main-search-form center">
3054 <i class="fal fa-times float-right fa-2x js-close-search"></i>
3055 <div class="row mb-3 align-items-center">
3056 <div class="col-xs-12 col-md-5 border-right">
3057 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
3058 </div>
3059 <div class="col-xs-12 col-md-7 home-count d-none d-md-block">
3060 <span class="search-count" id="searchCounterMain">0</span> <span>@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")</span>
3061 </div>
3062 </div>
3063
3064 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET">
3065 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" />
3066 <div class="row form-wrapper no-gutters">
3067
3068 <div class="col-12 mb-10">
3069 <div class="searchbar">
3070 <input type="text" name="@querySearchNameAttr" id="searchfield" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value='@querySearch' />
3071 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value='@queryZipCodeFrom' />
3072 <input type="hidden" id="zipcodeto" name="zipcodeto" value='@queryZipCodeTo' />
3073 </div>
3074 </div>
3075 <div class="col-xs-12 col-md-8">
3076 <div class="row no-gutters">
3077 <div class="col-xs-12 col-md-6 input-col">
3078 <div class="dropdown">
3079 <button class="btn btn-dropdown dropdown-toggle reverse js-count" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
3080 @Translate("Smartpage:Search.Boligtype", "Boligtype")
3081 </button>
3082 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
3083 <ul class="bolig-dropdown list-unstyled">
3084 @{
3085 RenderBoligtypeCheckboxesDropdown();
3086 }
3087 </ul>
3088 <span class="border-fat"></span>
3089 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
3090 </div>
3091
3092 </div>
3093
3094 </div>
3095 <div class="col-xs-12 col-md-6 input-col">
3096 <div class="dropdown">
3097 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
3098 @Translate("Smartpage:Search.Pris", "Pris")
3099 </button>
3100 <div class="dropdown-menu box-shadow dropdown-price" aria-labelledby="Pris">
3101 <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")' />
3102 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
3103 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
3104 @for (var i = 0; i <= 10000000; i += 100000)
3105 {
3106 if (i == 10000000)
3107 {
3108 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Converter.ToInt32(i).ToString("N0")+</option>
3109 }
3110 else
3111 {
3112 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Converter.ToInt32(i).ToString("N0")</option>
3113 }
3114 }
3115 </select>
3116
3117 <input type="text" name="pricemax" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")' />
3118 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
3119 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
3120 @for (var i = 0; i <= 10000000; i += 100000)
3121 {
3122 if (i == 10000000)
3123 {
3124 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")+'>@Converter.ToInt32(i).ToString("N0")+</option>
3125 }
3126 else
3127 {
3128 <option value="@i" data-value='@Converter.ToInt32(i).ToString("N0")'>@Converter.ToInt32(i).ToString("N0")</option>
3129 }
3130 }
3131 </select>
3132 </div>
3133 </div>
3134 </div>
3135 </div>
3136 </div>
3137 <div class="col-xs-12 col-md-4 d-none d-md-block">
3138 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
3139 </div>
3140 </div>
3141
3142 <div class="row moresearch-btn no-gutters">
3143 <div class="col-sm-12">
3144 <div class="row align-items-center no-gutters">
3145 <div class="col-12 col-md-5">
3146 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch-master">
3147 <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>
3148 </button>
3149 </div>
3150 <div class="col-6 col-md-3 mb-xs-4">
3151 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
3152 </div>
3153 <div class="col-6 col-md-4 mb-xs-4">
3154 <div class="parent-purchases">
3155 <label class="checkbox-container white">
3156 @Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet")
3157 <input type="checkbox" name="foraeldrekoebegnet" value="true" class="js-input-check">
3158 <span class="checkmark grey"></span>
3159 </label>
3160 </div>
3161 </div>
3162 </div>
3163
3164 <div class="collapse" id="moreSearch-master">
3165
3166 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
3167 <div class="row align-items-end mb-30">
3168 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
3169 <div class="filter-container row">
3170 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
3171 <div class="col-6 pr-sm-0 pr-2">
3172 <input type="text" name="boligarealmin" id="boligarealmin" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' />
3173 <select class="form-control js-boligarealmin-frontpage-select js-count">
3174 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
3175 @for (var i = 0; i <= 300; i += 10)
3176 {
3177 if (i == 300)
3178 {
3179 <option>@i+</option>
3180 }
3181 else
3182 {
3183 <option>@i</option>
3184 }
3185 }
3186 </select>
3187 </div>
3188 <div class="col-6 pl-sm-0 pl-2">
3189 <input type="text" name="boligarealmax" id="boligarealmax" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' />
3190 <select class="form-control js-boligarealmax-frontpage-select js-count">
3191 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
3192 @for (var i = 0; i <= 300; i += 10)
3193 {
3194 if (i == 300)
3195 {
3196 <option>@i+</option>
3197 }
3198 else
3199 {
3200 <option>@i</option>
3201 }
3202 }
3203 </select>
3204 </div>
3205 </div>
3206 </div>
3207 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
3208 <div class="filter-container row">
3209 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
3210 <div class="col-6 pr-sm-0 pr-2">
3211 <input type="text" name="grundarealmin" id="grundarealmin" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' />
3212 <select class="form-control js-grundarealmin-frontpage-select js-count">
3213 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
3214 @for (var i = 0; i <= 10000; i += 100)
3215 {
3216 if (i == 10000)
3217 {
3218 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3219 }
3220 else
3221 {
3222 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3223 }
3224 }
3225 </select>
3226 </div>
3227 <div class="col-6 pl-sm-0 pl-2">
3228 <input type="text" name="grundarealmax" id="grundarealmax" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' />
3229 <select class="form-control js-grundarealmax-frontpage-select">
3230 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
3231 @for (var i = 0; i <= 10000; i += 100)
3232 {
3233 if (i == 10000)
3234 {
3235 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3236 }
3237 else
3238 {
3239 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3240 }
3241 }
3242 </select>
3243 </div>
3244 </div>
3245 </div>
3246 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
3247 <div class="filter-container row">
3248 <label class="d-block col-12">Antal rum</label>
3249
3250 <div class="col-6 pr-sm-0 pr-2">
3251 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count">
3252 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
3253 <option value="1">1</option>
3254 <option value="2">2</option>
3255 <option value="3">3</option>
3256 <option value="4">4</option>
3257 <option value="5">5+</option>
3258 </select>
3259 </div>
3260 <div class="col-6 pl-sm-0 pl-2">
3261 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count">
3262 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
3263 <option value="1">1</option>
3264 <option value="2">2</option>
3265 <option value="3">3</option>
3266 <option value="4">4</option>
3267 <option value="5">5+</option>
3268 </select>
3269 </div>
3270 </div>
3271 </div>
3272 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
3273 <div class="row">
3274 <div class="col-12 pr-2">
3275 <div class="filter-container">
3276 <label class="d-block">Energimærke</label>
3277 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count">
3278 <option disabled selected="selected">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
3279 <option value="01">G</option>
3280 <option value="02">F</option>
3281 <option value="03">E</option>
3282 <option value="04">D</option>
3283 <option value="05">C</option>
3284 <option value="06">B</option>
3285 <option value="07">A</option>
3286 <option value="08">A2010</option>
3287 <option value="09">A2015</option>
3288 <option value="10">A2020+</option>
3289 </select>
3290 </div>
3291 </div>
3292 </div>
3293 </div>
3294 <div class="col-12 col-sm-6 col-lg-6 mt-3">
3295 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
3296 <div class="filter-container row">
3297 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
3298 <div class="col-6 pr-sm-0 pr-2">
3299 <input type="text" name="subsidymin" id="subsidymin" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Min", "Min")' />
3300 <select class="form-control js-subsidymin-frontpage-select js-count">
3301 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
3302 @for (var i = 0; i <= 25000; i += 1250)
3303 {
3304 if (i == 25000)
3305 {
3306 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3307 }
3308 else
3309 {
3310 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3311 }
3312 }
3313 </select>
3314 </div>
3315 <div class="col-6 pl-sm-0 pl-2">
3316 <input type="text" name="subsidymax" id="subsidymax" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Max", "Max")' />
3317 <select class="form-control js-subsidymax-frontpage-select js-count">
3318 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
3319 @for (var i = 0; i <= 25000; i += 1250)
3320 {
3321 if (i == 25000)
3322 {
3323 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")+</option>
3324 }
3325 else
3326 {
3327 <option value="@Converter.ToInt32(i)">@Converter.ToInt32(i).ToString("N0")</option>
3328 }
3329 }
3330 </select>
3331 </div>
3332 </div>
3333 </div>
3334 <div class="col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0">
3335 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
3336 </div>
3337 </div>
3338 </div>
3339 </div>
3340 </div>
3341 <div class="row d-block d-md-none form-wrapper no-gutters">
3342 <div class="col-xs-12 col-md-2">
3343 <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>
3344 </div>
3345 </div>
3346
3347
3348 </form>
3349 </div>
3350 }
3351 </div>
3352
3353 @{
3354 RenderSlideMenu(false, Convert.ToString(settings_Maeglersogning));
3355 }
3356
3357 @if (isBrokerPage)
3358 {
3359 <section class="maegler-navbar">
3360 @RenderNavigation(new
3361 {
3362 id = "navbar-main",
3363 cssclass = "dwnavigation",
3364 template = "ul_li.xslt",
3365 StartLevel = 1,
3366 EndLevel = 1
3367 })
3368 </section>
3369 }
3370
3371 <div class="visual-editor">
3372 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
3373
3374
3375 @using Dynamicweb.Extensibility
3376 @using Dynamicweb.Core
3377 @using Dynamicweb.Rapido.Blocks.Components
3378 @using Dynamicweb.Rapido.Blocks.Components.Articles
3379 @using Dynamicweb.Rapido.Blocks.Components.General
3380 @using Dynamicweb.Rapido.Blocks
3381 @using Dynamicweb.Content.Items
3382
3383 @functions {
3384 BlocksPage articlePage = BlocksPage.GetBlockPage("DynamicArticle");
3385
3386 public string GetParentSettingsItem(string systemName)
3387 {
3388 string item = null;
3389
3390 Dynamicweb.Content.Page current = Dynamicweb.Services.Pages.GetPage(Model.ID);
3391 while (current != null && current.Parent != current)
3392 {
3393 var temp = current.Item != null ? current.Item[systemName] : "";
3394
3395 if (temp != null)
3396 {
3397 item = temp.ToString();
3398
3399 if (!String.IsNullOrEmpty(item) && !String.Equals("default", item, StringComparison.OrdinalIgnoreCase))
3400 {
3401 break;
3402 }
3403 }
3404
3405 current = current.Parent;
3406 }
3407
3408 return item;
3409 }
3410
3411 public string GetArticleCategory(int pageId)
3412 {
3413 string categoryName = null;
3414
3415 //Secure that the article is not in the root folder = Actual has a category
3416 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null)
3417 {
3418 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null)
3419 {
3420 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType))
3421 {
3422 categoryName = Dynamicweb.Services.Pages.GetPage(pageId).Parent.GetDisplayName();
3423 }
3424 }
3425 }
3426
3427 return categoryName;
3428 }
3429
3430 public string GetArticleCategoryColor(int pageId)
3431 {
3432 string categoryColor = "";
3433
3434 //Secure that the article is not in the root folder = Actual has a category
3435 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent != null)
3436 {
3437 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent != null)
3438 {
3439 if (!String.IsNullOrEmpty(Dynamicweb.Services.Pages.GetPage(pageId).Parent.Parent.ItemType))
3440 {
3441 if (Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"] != null)
3442 {
3443 var service = new ColorSwatchService();
3444 categoryColor = Dynamicweb.Services.Pages.GetPage(pageId).Parent.Item["CategoryColor"].ToString();
3445
3446 if (!categoryColor.Contains("#"))
3447 {
3448 categoryColor = service.GetHexColor(Converter.ToInt32(Model.Area.ID), categoryColor);
3449 }
3450 }
3451 }
3452 }
3453 }
3454
3455 return categoryColor;
3456 }
3457 }
3458
3459 @{
3460 string listPageId = Converter.ToString(GetPageIdByNavigationTag("DynamicListFeed"));
3461 string parentPageId = Dynamicweb.Services.Pages.GetPage(Model.ID).Parent.ID.ToString();
3462 string topLayout = Model.Item.GetList("TopLayout") != null ? Model.Item.GetList("TopLayout").SelectedValue : "default";
3463 topLayout = topLayout == "default" && GetParentSettingsItem("ArticleTopLayout") != null ? GetParentSettingsItem("ArticleTopLayout").ToString().ToLower() : topLayout;
3464 string textLayout = Model.Item.GetList("TextLayout") != null ? Model.Item.GetList("TextLayout").SelectedValue : "default";
3465 textLayout = textLayout == "default" && GetParentSettingsItem("ArticleTextLayout") != null ? GetParentSettingsItem("ArticleTextLayout").ToString().ToLower() : textLayout;
3466 string imageLayout = Model.Item.GetList("ImageLayout") != null ? Model.Item.GetList("ImageLayout").SelectedValue : "default";
3467 imageLayout = imageLayout == "default" && GetParentSettingsItem("ArticleImageLayout") != null ? GetParentSettingsItem("ArticleImageLayout").ToString().ToLower() : imageLayout;
3468
3469 //string imageColumns = imageLayout == "straight" && textLayout != "full" ? "8" : "12";
3470 //string contentColumns = textLayout != "full" ? "8" : "12";
3471 string imageColumns = "12";
3472 string contentColumns = "12";
3473
3474 int externalParagraphId = Model.Item.GetItem("CTAParagraphLink") != null ? Model.Item.GetItem("CTAParagraphLink").ParagraphID : 0;
3475
3476 ArticleHeaderLayout headerLayout;
3477
3478 switch (topLayout)
3479 {
3480 case "default":
3481 headerLayout = ArticleHeaderLayout.Clean;
3482 break;
3483 case "split":
3484 headerLayout = ArticleHeaderLayout.Split;
3485 break;
3486 case "banner":
3487 headerLayout = ArticleHeaderLayout.Banner;
3488 break;
3489 case "overlay":
3490 headerLayout = ArticleHeaderLayout.Overlay;
3491 break;
3492 default:
3493 headerLayout = ArticleHeaderLayout.Clean;
3494 break;
3495 }
3496
3497
3498 Block articleContainer = new Block
3499 {
3500 Id = "ArticleContainer",
3501 SortId = 10,
3502 Design = new Design
3503 {
3504 RenderType = RenderType.Row
3505 },
3506 BlocksList = new List<Block> {
3507 new Block {
3508 Id = "ArticleBody",
3509 SortId = 30,
3510 Design = new Design {
3511 RenderType = RenderType.Column,
3512 Size = "12",
3513 HidePadding = true,
3514 CssClass = "margin-top-large"
3515 }
3516 }
3517 }
3518 };
3519 articlePage.Add(articleContainer);
3520
3521 ButtonLayout topBannerButtonLayout = ButtonLayout.Primary;
3522
3523 switch (Model.Item.GetString("ButtonDesign"))
3524 {
3525 case "primary":
3526 topBannerButtonLayout = ButtonLayout.Primary;
3527 break;
3528 case "secondary":
3529 topBannerButtonLayout = ButtonLayout.Secondary;
3530 break;
3531 case "teritary":
3532 topBannerButtonLayout = ButtonLayout.Tertiary;
3533 break;
3534 case "link":
3535 topBannerButtonLayout = ButtonLayout.Link;
3536 break;
3537 }
3538
3539 ArticleHeader topBanner = new ArticleHeader
3540 {
3541 Layout = headerLayout,
3542 Image = new Image { Path = Model.Item.GetFile("Image"), ImageDefault = new ImageSettings { Width = 1920, Height = 640 } },
3543 Heading = Model.Item.GetString("Title"),
3544 Subheading = Model.Item.GetString("Summary"),
3545 TextColor = "#fff",
3546 Author = Model.Item.GetString("Author"),
3547 Date = Model.Item.GetString("Date"),
3548 Category = GetArticleCategory(Model.ID),
3549 CategoryColor = GetArticleCategoryColor(Model.ID),
3550 Link = Model.Item.GetString("Link"),
3551 LinkText = Model.Item.GetString("LinkText"),
3552 ButtonLayout = topBannerButtonLayout,
3553 RatingScore = Model.Item.GetString("Rating") != null ? Converter.ToInt32(Model.Item.GetList("Rating").SelectedValue) : 0,
3554 RatingOutOf = Model.Item.GetString("Rating") != null ? Model.Item.GetList("Rating").Options.Count : 0,
3555 ExternalParagraphId = externalParagraphId
3556 };
3557
3558 Block articleTop = new Block
3559 {
3560 Id = "ArticleHead",
3561 SortId = 20,
3562 Component = topBanner,
3563 Design = new Design
3564 {
3565 RenderType = RenderType.Column,
3566 Size = "12",
3567 HidePadding = true,
3568 CssClass = "article-head"
3569 }
3570 };
3571 //articlePage.Add("ArticleContainer", articleTop);
3572
3573
3574 Block articleBodyRow = new Block
3575 {
3576 Id = "ArticleBodyRow",
3577 SortId = 10,
3578 SkipRenderBlocksList = true
3579 };
3580 articlePage.Add("ArticleBody", articleBodyRow);
3581
3582
3583 if (Model.Item.GetString("Paragraphs") != null)
3584 {
3585 int count = 0;
3586 foreach (var paragraph in Model.Item.GetItems("Paragraphs"))
3587 {
3588 if (!paragraph.GetBoolean("RenderAsQuote"))
3589 {
3590 string enableDropCap = Model.Item.GetString("EnableDropCap") != null ? Model.Item.GetList("EnableDropCap").SelectedValue.ToLower() : "default";
3591 enableDropCap = enableDropCap == "default" && GetParentSettingsItem("EnableDropCap") != null ? GetParentSettingsItem("EnableDropCap").ToString().ToLower() : enableDropCap;
3592 string text = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : "";
3593
3594 if (!String.IsNullOrEmpty(text) && enableDropCap == "true" && count == 0 && paragraph.GetString("Text").Substring(0, 3) == "<p>")
3595 {
3596 string firstLetter = paragraph.GetString("Text").Substring(3, 1);
3597 text = paragraph.GetString("Text").Remove(3, 1);
3598 text = text.Insert(3, "<span class=\"article__drop-cap\">" + firstLetter + "</span>");
3599 }
3600
3601 if (!String.IsNullOrEmpty(paragraph.GetString("Heading")))
3602 {
3603 Block articleParagraphHeader = new Block
3604 {
3605 Id = "ArticleParagraph" + count + "Heading",
3606 SortId = (count * 10) ,
3607 Component = new ArticleSubHeader { Title = paragraph.GetString("Heading") },
3608 Design = new Design
3609 {
3610 RenderType = RenderType.Column,
3611 Size = contentColumns,
3612 CssClass = "u-color-light--bg u-padding--lg"
3613 }
3614 };
3615 articlePage.Add("ArticleBodyRow", articleParagraphHeader);
3616 }
3617
3618 if (paragraph.GetFile("Image") != null)
3619 {
3620 string imageTitle = !string.IsNullOrEmpty(paragraph.GetString("Heading")) ? paragraph.GetString("Heading") : "";
3621
3622 Block articleParagraphImage = new Block
3623 {
3624 Id = "ArticleParagraph" + count + "Image",
3625 SortId = (count * 10) + 2,
3626 Design = new Design
3627 {
3628 RenderType = RenderType.Column,
3629 Size = imageColumns,
3630 CssClass = "u-color-light--bg u-padding--lg"
3631 }
3632 };
3633
3634 if (imageLayout == "banner")
3635 {
3636 ArticleBanner banner = new ArticleBanner
3637 {
3638 Image = new Image { Path = paragraph.GetFile("Image"), ImageDefault = new ImageSettings { Height = 650, Width = 1300 }, Caption = paragraph.GetString("ImageCaption") },
3639 Heading = imageTitle,
3640 UseFilters = false
3641 };
3642 articleParagraphImage.Component = banner;
3643 }
3644 else
3645 {
3646 ArticleImage image = new ArticleImage
3647 {
3648 Image = new Image
3649 {
3650 Path = paragraph.GetFile("Image"),
3651 Title = imageTitle,
3652 ImageDefault = new ImageSettings { Height = 650, Width = 1300 },
3653 Caption = paragraph.GetString("ImageCaption"),
3654 CssClass = "u-full-width"
3655 }
3656 };
3657 articleParagraphImage.Component = image;
3658 }
3659
3660 articlePage.Add("ArticleBodyRow", articleParagraphImage);
3661 }
3662
3663 if (!String.IsNullOrEmpty(paragraph.GetString("VideoURL")))
3664 {
3665 Block articleParagraphVideo = new Block
3666 {
3667 Id = "ArticleParagraph" + count + "Video",
3668 SortId = (count * 10) + 3,
3669 Component = new ArticleVideo { Url = paragraph.GetString("VideoURL"), AutoPlay = "false" },
3670 Design = new Design
3671 {
3672 RenderType = RenderType.Column,
3673 Size = imageColumns,
3674 CssClass = "u-color-light--bg u-padding--lg"
3675 }
3676 };
3677 articlePage.Add("ArticleBodyRow", articleParagraphVideo);
3678 }
3679
3680 if (!String.IsNullOrEmpty(text))
3681 {
3682 Block articleParagraphText = new Block
3683 {
3684 Id = "ArticleParagraph" + count + "Text",
3685 SortId = (count * 10) + 3,
3686 Component = new ArticleText { Text = text },
3687 Design = new Design
3688 {
3689 RenderType = RenderType.Column,
3690 Size = contentColumns,
3691 CssClass = "u-color-light--bg u-padding--lg"
3692 }
3693 };
3694
3695 articlePage.Add("ArticleBodyRow", articleParagraphText);
3696 }
3697 }
3698 else
3699 {
3700 if (!String.IsNullOrEmpty(paragraph.GetString("Text")))
3701 {
3702 string quoteText = paragraph.GetString("Text") != null ? paragraph.GetString("Text") : "";
3703 string quoteAuthor = paragraph.GetString("Heading") != null ? paragraph.GetString("Heading") : "";
3704
3705 Block articleParagraphQuote = new Block
3706 {
3707 Id = "ArticleParagraph" + count + "Quote",
3708 SortId = (count * 10) + 3,
3709 Component = new ArticleQuote { Image = new Image { Path = paragraph.GetFile("Image") }, Text = quoteText, Author = quoteAuthor },
3710 Design = new Design
3711 {
3712 RenderType = RenderType.Column,
3713 Size = contentColumns,
3714 CssClass = "u-color-light--bg u-padding--lg"
3715 }
3716 };
3717 articlePage.Add("ArticleBodyRow", articleParagraphQuote);
3718 }
3719 }
3720
3721 count++;
3722 }
3723 }
3724
3725 articleBodyRow.Component = new ArticleBodyRow { SubBlocks = articleBodyRow.BlocksList, TopLayout = topLayout, TextLayout = textLayout };
3726
3727
3728 //Related
3729 string showRelatedArtices = Model.Item.GetString("ShowRelatedArticles") != null ? Model.Item.GetList("ShowRelatedArticles").SelectedValue.ToLower() : "default";
3730 showRelatedArtices = showRelatedArtices == "default" && GetParentSettingsItem("ShowRelatedArticles") != null ? GetParentSettingsItem("ShowRelatedArticles").ToString().ToLower() : showRelatedArtices;
3731
3732 if (showRelatedArtices == "true")
3733 {
3734 Block articleRelated = new Block
3735 {
3736 Id = "ArticleRelated",
3737 SortId = 30,
3738 Component = new ArticleRelated { Title = Translate("Related articles"), FeedPageId = listPageId, Query = "sourceType=Page&sourcePage=" + parentPageId, PageSize = 4, CurrentPageId = Model.ID.ToString() },
3739 Design = new Design
3740 {
3741 RenderType = RenderType.Column,
3742 Size = "12"
3743 }
3744 };
3745 articlePage.Add("ArticleContainer", articleRelated);
3746 }
3747 }
3748
3749
3750 @* The @RenderBlockList base helper is included in Components/GridBuilder.cshtml *@
3751 <section class="center-container content-container dw-mod">
3752 @RenderBlockList(articlePage.BlocksRoot.BlocksList)
3753 </section>
3754 </div>
3755
3756 @if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && Model.Item.GetBoolean("HideMyBroker") != true)
3757 {
3758 string bName = MyBroker.Broker.Name;
3759 string bClass = "na";
3760 string bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png";
3761
3762 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName))
3763 {
3764 bName = MyBroker.Broker.CompanyName;
3765 }
3766 try
3767 {
3768 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl");
3769 if (!string.IsNullOrEmpty(imgUrl))
3770 {
3771 bImage = imgUrl;
3772 bClass = "";
3773 }
3774 }
3775 catch
3776 {
3777 // Ignore
3778 }
3779
3780 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId");
3781 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer");
3782
3783 <section class="din-maegler">
3784 <div class="img-wrapper @bClass" style="background-image:url('@bImage')"></div>
3785 <div class="container">
3786 <div class="col-12 col-sm-12 col-md-6 offset-md-6">
3787 <h2>Din personlige mægler</h2>
3788 <div class="row">
3789 <div class="col-12 col-sm-6">
3790 <p>
3791 <b class="my-broker-name">@MyBroker.Employee.Name</b><br>
3792 @if (!string.IsNullOrEmpty(MyBroker.Employee.Email))
3793 {
3794 <text>Mail: <a href="mailto:@(ExtractMaskedEmail(MyBroker.Employee.Email))" class="my-broker-email">@ExtractMaskedEmail(MyBroker.Employee.Email)</a><br></text>
3795 }
3796 @if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile))
3797 {
3798 <text>Tlf.: <a href="tel:@(MyBroker.Employee.PhoneMobile)" class="my-broker-phone">@FormatPhoneNumber(MyBroker.Employee.PhoneMobile)</a></text>
3799 }
3800 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
3801 {
3802 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-phone">@FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text>
3803 }
3804 </p>
3805 </div>
3806 <div class="col-12 col-sm-6">
3807 <p>
3808 <b class="my-broker-company-name">@bName</b><br>
3809 <span class="my-broker-company-address">@MyBroker.Broker.Address</span><br>
3810 <span class="my-broker-company-zip">@MyBroker.Broker.ZipCode</span> <span class="my-broker-company-city">@MyBroker.Broker.City</span><br>
3811 @if (!string.IsNullOrEmpty(bEmail))
3812 {
3813 <text>Mail: <a href="mailto:@(bEmail)" class="my-broker-broker-email">@bEmail</a><br></text>
3814 }
3815 @if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
3816 {
3817 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-broker-phone">@FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text>
3818 }
3819 </p>
3820 </div>
3821 </div>
3822 <div class="row">
3823 <br />
3824 <div class="col-12 col-sm-6">
3825 <a href="/@medlemsnummer.Substring(1)" class="btn btn-primary btn-block my-broker-company-url">Til mæglerens side</a>
3826 </div>
3827
3828 </div>
3829 </div>
3830 </div>
3831 </section>
3832 }
3833 <footer>
3834 <div class="container">
3835 <div class="row">
3836 @{
3837 var navigationSettings = new NavigationSettings();
3838 navigationSettings.StartLevel = 1;
3839 navigationSettings.StopLevel = 3;
3840 navigationSettings.ExpandMode = ExpandMode.All;
3841 navigationSettings.RootAreaId = 1;
3842 navigationSettings.RootNavigationTag = "footer-nav";
3843
3844 }
3845 @Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings)
3846 </div>
3847 </div>
3848 </footer>
3849
3850 @if (Model.CurrentUser?.ID <= 0)
3851 {
3852 <div id="panel-login" class="panel panel-form">
3853 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3854 <b></b>
3855 </button>
3856 <div class="loginform login">
3857 @if (loginParagraphId > 0)
3858 {
3859 <text>
3860 @RenderParagraphContent(loginParagraphId)
3861 </text>
3862 }
3863 </div>
3864 <div class="loginform register js-register-form-wrapper" style="display: none;">
3865 @if (createUserParagraphId > 0)
3866 {
3867 <text>
3868 @RenderParagraphContent(createUserParagraphId)
3869 </text>
3870 }
3871 </div>
3872 <div class="loginform forgotpw" style="display: none;">
3873 <h2 class="forgotpw-reg">@Translate("forgot-pw-reg-title", "Glemt adgangskode")</h2>
3874 <h2 class="forgotpw-broker">@Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")</h2>
3875 <form id="forgotPwForm" class="form-body" method="post" action="">
3876 <input type="hidden" id="AccessUserShopID" name="AccessUserShopID" value="SHOP6" />
3877 <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>
3878 <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>
3879 <div class="form-group">
3880 <input id="AccessUserEmail" name="AccessUserEmail" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" placeholder="E-mail" class="form-control" required />
3881 </div>
3882 <button class="btn btn-primary btn-block" type="submit">@Translate("forgot-pw-cta", "Nulstil adgangskode")</button>
3883 <br />
3884 <div id="submitMessage"></div>
3885 </form>
3886 </div>
3887 </div>
3888 }
3889
3890 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel>
3891 @using Dynamicweb.Security.UserManagement
3892
3893 @{
3894 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");
3895 }
3896
3897 <div id="panel-kontakt-koeberraadgivning" class="panel panel-form">
3898 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3899 <b></b>
3900 </button>
3901 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2>
3902 <form id="form-koeberraadgivning" method="POST" action="/InboxHandler">
3903 <div class="form-group">
3904 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
3905 <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 />
3906 </div>
3907 <div class="form-group">
3908 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
3909 <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 />
3910 </div>
3911 <div class="form-group row mb-4">
3912 <div class="col-6">
3913 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
3914 <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 />
3915 </div>
3916 <div class="col-6">
3917 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
3918 <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' />
3919 </div>
3920 </div>
3921 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
3922 <div class="form-group row">
3923 <div class="col-4">
3924 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
3925 <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 />
3926 <input type="hidden" class="js-postnummer-validation" />
3927 </div>
3928 <div class="col-8">
3929 <label><strong>@Translate("form-city", "By")*</strong></label>
3930 <input class="form-control js-city" type="text" readonly />
3931 </div>
3932 </div>
3933 <div class="form-group overflow-unset">
3934 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
3935 <input class="form-control js-validate-address" type="text" name="adresse" tabindex="6" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' required />
3936
3937 <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>
3938 </div>
3939 <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">
3940 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
3941 </button>
3942 <div class="collapse" id="kontaktkoeberrradgiver-collapse">
3943 <div class="form-group">
3944 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
3945 </div>
3946 </div>
3947
3948 <div class="form-group">
3949 <div class="row">
3950 <div class="col-12">
3951 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button>
3952 </div>
3953 </div>
3954 </div>
3955 <div class="form-group mt-3">
3956 <div class="checkbox">
3957 <label>
3958 <input type="checkbox" name="kontaktmigok" required />
3959
3960 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
3961
3962 </label>
3963 </div>
3964 </div>
3965 <div class="form-group form-group-terms">
3966 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
3967 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
3968 </div>
3969
3970 <input type="hidden" name="fn" value="krk" />
3971 <input type="hidden" name="origin" value="" />
3972 <input type="hidden" name="brugerId" value="" />
3973 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
3974 <input type="hidden" name="butikId" value="@butikId" />
3975 <input type="hidden" name="ejendomstype" value="" />
3976 <input type="hidden" name="salgspris" value="" />
3977 <input type="hidden" name="modtager" value="" />
3978 </form>
3979 <div id="tak-kontakt-advisor" style="display:none;">
3980 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
3981 <div class="row">
3982 <div class="col-6">
3983 <img src="" class="img-fluid js-maegler-img" />
3984 </div>
3985 <div class="col-6">
3986 <p class="js-maegler-name"></p>
3987 <p class="js-maegler-address"></p>
3988 <p class="js-maegler-phone"></p>
3989 <p class="js-maegler-mail"></p>
3990 </div>
3991 </div>
3992 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
3993 </div>
3994 </div>
3995
3996 <!--ÅBENT HUS-->
3997 <div id="panel-aabenthus" class="panel panel-form">
3998 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3999 <b></b>
4000 </button>
4001
4002
4003 <form id="form-aabenthus" method="POST" action="/InboxHandler">
4004 <h2>@Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")</h2>
4005 <div class="d-block">
4006 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label>
4007 </div>
4008 <div class="d-block">
4009 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label>
4010 </div>
4011 <div class="d-block mb-4">
4012 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label>
4013 </div>
4014 <h3>@Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")</h3>
4015 <div class="form-group">
4016 <label for="aabenthus-name"><strong>@Translate("form-navn", "Navn")*</strong></label>
4017 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current?.User?.Name' required />
4018 </div>
4019 <div class="form-group">
4020 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4021 <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 />
4022 </div>
4023 <div class="form-group row">
4024 <div class="col-6">
4025 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4026 <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 />
4027 </div>
4028 <div class="col-6">
4029 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4030 <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' />
4031 </div>
4032 </div>
4033 <div class="form-group">
4034 <div class="row">
4035 <div class="col-12">
4036 <button type="submit" class="btn btn-block btn-green">@Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")</button>
4037 </div>
4038 </div>
4039 </div>
4040 <div class="form-group">
4041 <div class="checkbox">
4042 <label>
4043 <input type="checkbox" name="kontaktmigok" required />
4044
4045 <span class="base-color">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4046
4047 </label>
4048 </div>
4049 </div>
4050 <div class="form-group">
4051 @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>")
4052
4053 </div>
4054 <input type="hidden" name="fn" value="ah" />
4055 <input type="hidden" name="origin" value="" />
4056 <input type="hidden" name="brugerId" value="@userID" />
4057 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4058 <input type="hidden" name="butikId" value="@butikId" />
4059 <input type="hidden" name="sagsaddresse" value="" class="js-aabenthus-address-input" />
4060 <input type="hidden" name="ejendomstype" value="" />
4061 <input type="hidden" name="salgspris" value="" />
4062 <input type="hidden" name="modtager" value="" />
4063 <input type="hidden" name="employee" value="" />
4064 <input type="hidden" name="sagsnr" value="" class="js-sagsnr" />
4065 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
4066 <input type="hidden" name="aftaleid" value="" class="js-aftaleid" />
4067
4068 <input type="hidden" name="dateMail" class="js-aabenthus-date-input" />
4069 <input type="hidden" name="timeMail" class="js-aabenthus-time-input" />
4070 <input type="hidden" name="brokerImageMail" class="property-broker-image-input" />
4071 <input type="hidden" name="employeeNameMail" class="js-maegler-employee-name-input" />
4072 <input type="hidden" name="employeeTitleMail" class="js-maegler-employee-title-input" />
4073 <input type="hidden" name="employeeMailMail" class="js-maegler-mail-input" />
4074 <input type="hidden" name="employeeMobileMail" class="js-maegler-mobile-input" />
4075 <input type="hidden" name="employeePhoneMail" class="js-maegler-phone-input" />
4076
4077 <input type="hidden" name="brokerNameMail" class="js-broker-name-input" />
4078 <input type="hidden" name="brokerAddressMail" class="js-broker-address-input" />
4079 <input type="hidden" name="brokerPhoneMail" class="js-broker-phone-input" />
4080 </form>
4081 <div id="tak-aabenthus" style="display:none;">
4082 <h2>@Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")</h2>
4083 <div class="d-block">
4084 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label>
4085 </div>
4086 <div class="d-block">
4087 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label>
4088
4089 </div>
4090 <div class="d-block mb-4">
4091 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label>
4092
4093 </div>
4094
4095 <div class="js-employee">
4096 <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>
4097 </div>
4098 <div class="js-not-employee">
4099 <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>
4100 </div>
4101
4102 <div class="row">
4103 <div class="js-employee">
4104 <div class="col-12 js-maegler-img aabenthus-image">
4105 <div class="property-broker-image" style=""></div>
4106
4107 </div>
4108 </div>
4109 <div class="col-12">
4110 <div class="bg-base">
4111
4112 <div class="js-employee">
4113 <h4 class="js-maegler-employee-name"></h4>
4114 <div class="icon-container">
4115 <i class="fas fa-envelope"></i> <span class="js-maegler-mail"></span>
4116 </div>
4117 <div class="icon-container">
4118 <i class="fas fa-phone"></i> <span class="js-maegler-mobile"></span>
4119 </div>
4120 </div>
4121
4122
4123 <h4 class="js-maegler-name"></h4>
4124 <div class="icon-container">
4125 <i class="fas fa-map-marker-alt"></i> <span class="js-maegler-address"></span>
4126 </div>
4127 <div class="icon-container">
4128 <i class="fas fa-phone"></i> <span class="js-maegler-phone"></span>
4129
4130 </div>
4131 <a class="btn btn-border" onclick="panelKontaktmaeglerGuldkoeber()">KONTAKT MÆGLER</a>
4132 </div>
4133 </div>
4134 </div>
4135 </div>
4136 </div>
4137
4138 <!-- KONTAKT GULDKØBER -->
4139 <div id="panel-kontakt-guldkoeber" class="panel panel-form">
4140 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4141 <b></b>
4142 </button>
4143 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2>
4144 <form id="form-kontaktmaegler" method="POST" action="/InboxHandler">
4145 <div class="form-group">
4146 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
4147 <input class="form-control" type="text" name="navn" placeholder='@Translate("form-navn", "Navn")' value='@UserContext.Current.User?.Name' required />
4148 </div>
4149 <div class="form-group">
4150 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4151 <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 />
4152 </div>
4153 <div class="form-group row mb-4">
4154 <div class="col-6">
4155 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4156 <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 />
4157 </div>
4158 <div class="col-6">
4159 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4160 <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' />
4161 </div>
4162 </div>
4163 <div class="form-group row">
4164 <div class="col-4">
4165 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
4166 <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 />
4167 <input type="hidden" class="js-postnummer-validation" />
4168 </div>
4169 <div class="col-8">
4170 <label><strong>@Translate("form-city", "By")*</strong></label>
4171 <input class="form-control js-city" type="text" readonly />
4172 </div>
4173 </div>
4174
4175 <div class="form-group overflow-unset">
4176 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
4177 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
4178 <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>
4179 </div>
4180 <div class="form-group">
4181 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4182 </div>
4183 <div class="form-group">
4184 <div class="checkbox">
4185 <label>
4186 <input type="checkbox" name="kontaktmigok" required />
4187
4188 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4189
4190 </label>
4191 </div>
4192 </div>
4193 <div class="form-group">
4194 <div class="row">
4195 <div class="col-12">
4196 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button>
4197 </div>
4198 </div>
4199 </div>
4200 <div class="form-group form-group-terms">
4201 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4202 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4203 </div>
4204 <input type="hidden" name="fn" value="gk" />
4205 <input type="hidden" name="origin" value="" />
4206 <input type="hidden" name="brugerId" value="@userID" />
4207 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4208 <input type="hidden" name="butikId" value="@butikId" />
4209 <input type="hidden" name="ejendomstype" value="" />
4210 <input type="hidden" name="salgspris" value="" />
4211 <input type="hidden" name="modtager" value="" />
4212 <input type="hidden" name="employee" value="" />
4213 </form>
4214 <div id="tak-kontakt-maegler-guldkoeber" style="display:none;">
4215 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4216 <p>@Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")</p>
4217 <div class="row">
4218 <div class="col-6">
4219 <img src="" class="img-fluid js-maegler-img" />
4220 </div>
4221 <div class="col-6">
4222 <p class="js-maegler-name"></p>
4223 <p class="js-maegler-address"></p>
4224 <p class="js-maegler-phone"></p>
4225 <p class="js-maegler-mail"></p>
4226 </div>
4227 </div>
4228 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4229 </div>
4230 </div>
4231
4232 <!-- BESTIL SALGSVURDERING -->
4233 <div id="panel-salgsvurdering" class="panel panel-form">
4234 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4235 <b></b>
4236 </button>
4237
4238 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler">
4239 <h2 class="js-buyer-advisor-header">@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2>
4240 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
4241 <div class="form-group">
4242 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
4243 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required />
4244 </div>
4245 <div class="form-group">
4246 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4247 <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 />
4248 </div>
4249 <div class="form-group row mb-4">
4250 <div class="col-6">
4251 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4252 <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 />
4253 </div>
4254 <div class="col-6">
4255 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4256 <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' />
4257 </div>
4258
4259 </div>
4260
4261 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
4262 <div class="form-group row">
4263 <div class="col-4">
4264 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
4265 <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 />
4266 <input type="hidden" class="js-postnummer-validation" />
4267 </div>
4268 <div class="col-8">
4269 <label><strong>@Translate("form-city", "By")*</strong></label>
4270 <input class="form-control js-city" type="text" readonly />
4271 </div>
4272 </div>
4273 <div class="form-group overflow-unset">
4274 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
4275 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
4276 <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>
4277 </div>
4278
4279 <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">
4280 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
4281 </button>
4282 <div class="collapse" id="salgsvurdering-collapse">
4283 <div class="form-group">
4284 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4285 </div>
4286 </div>
4287
4288
4289 <div class="salgsvurdering-precheck">
4290 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3>
4291 <div class="col-12">
4292 <div class="choose-broker row align-items-center active">
4293 <div class="col-2">
4294 <input class="js-broker-radio" type="radio" id="" name="choose-broker" value="" checked>
4295 <label class="js-broker-label" for=""></label><div class="check">
4296 <div class="inside">
4297 </div>
4298 </div>
4299 </div>
4300 <div class="col-4">
4301 <img src="" class="img-fluid js-broker-image">
4302 </div>
4303 <div class="col-6">
4304 <span class="d-block">
4305 <strong class="js-choose-broker-name"></strong>
4306 </span>
4307 <span class="js-choose-broker-address"></span>
4308 <input type="hidden" class="js-choose-broker-phone" value="" />
4309 <input type="hidden" class="js-choose-broker-email" value="" />
4310 </div>
4311 </div>
4312 </div>
4313 </div>
4314 <div class="salgsvurdering-broker">
4315 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3>
4316 <div class="js-choose-broker col-12">
4317 </div>
4318
4319 </div>
4320
4321 <div class="form-group mt-4">
4322 <div class="checkbox">
4323 <label>
4324 <input type="checkbox" name="kontaktmigok" required />
4325
4326 <span class="consent-checkbox">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4327
4328 </label>
4329 </div>
4330 </div>
4331 <div class="form-group">
4332 <div class="row">
4333 <div class="col-12">
4334 <button type="submit" class="btn btn-green btn-block js-buyer-advisor-button">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button>
4335 </div>
4336 </div>
4337 </div>
4338 <div class="form-group form-group-terms">
4339 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4340 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4341 </div>
4342 <input type="hidden" name="fn" value="bsv" />
4343 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" />
4344 <input type="hidden" name="brugerId" value="@userID" />
4345 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4346 <input type="hidden" id="boligvisning" name="boligvisning" value="" />
4347 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="" />
4348 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" />
4349 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
4350 <input type="hidden" name="ejendomstype" value="" />
4351 <input type="hidden" name="salgspris" value="" />
4352 <input type="hidden" name="employee" value="" />
4353 <input type="hidden" name="modtager" value="" />
4354 <input class="js-value-check" type="hidden" name="valueCheck" value="" />
4355 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" />
4356 </form>
4357 <div id="tak-salgsvurdering" style="display:none;">
4358 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4359 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p>
4360 <div class="row">
4361 <div class="col-6">
4362 <img src="" class="img-fluid js-maegler-img" />
4363 </div>
4364 <div class="col-6">
4365 <p class="js-maegler-name"></p>
4366 <p class="js-maegler-address"></p>
4367 <p class="js-maegler-phone"></p>
4368 <p class="js-maegler-mail"></p>
4369 </div>
4370 </div>
4371 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4372 </div>
4373 </div>
4374
4375 <!-- BESTIL SALGSVURDERING GULDKØBER -->
4376 <div id="panel-salgsvurdering-guldkoeber" class="panel panel-form">
4377 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
4378 <b></b>
4379 </button>
4380
4381 <form id="bestil-salgsvurdering-guldkoeber" method="POST" action="/InboxHandler">
4382 <h2>@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2>
4383 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
4384 <div class="form-group">
4385 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
4386 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@UserContext.Current.User?.Name' required />
4387 </div>
4388 <div class="form-group">
4389 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
4390 <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 />
4391 </div>
4392 <div class="form-group row mb-4">
4393 <div class="col-6">
4394 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
4395 <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' />
4396 </div>
4397 <div class="col-6">
4398 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
4399 <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 />
4400 </div>
4401 </div>
4402
4403 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
4404
4405 <div class="form-group row">
4406 <div class="col-4">
4407 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
4408 <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 />
4409 <input type="hidden" class="js-postnummer-validation" />
4410 </div>
4411 <div class="col-8">
4412 <label><strong>@Translate("form-city", "By")*</strong></label>
4413 <input class="form-control js-city" type="text" readonly />
4414 </div>
4415 </div>
4416 <div class="form-group overflow-unset">
4417 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
4418 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
4419 <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>
4420 </div>
4421
4422 <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">
4423 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
4424 </button>
4425 <div class="collapse" id="salgsvurdering-collapse">
4426 <div class="form-group">
4427 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
4428 </div>
4429 </div>
4430
4431 <div class="salgsvurdering-precheck">
4432 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3>
4433 <div class="col-12">
4434 <div class="choose-broker row align-items-center active">
4435 <div class="col-2">
4436 <input class="js-broker-radio" type="radio" id="" name="choose-broker-gk" value="" checked>
4437 <label class="js-broker-label" for=""></label><div class="check">
4438 <div class="inside">
4439 </div>
4440 </div>
4441 </div>
4442 <div class="col-4">
4443 <img src="" class="img-fluid js-broker-image">
4444 </div>
4445 <div class="col-6">
4446 <span class="d-block">
4447 <strong class="js-choose-broker-name"></strong>
4448 </span>
4449 <span class="js-choose-broker-address"></span>
4450 <input type="hidden" class="js-choose-broker-phone" value="" />
4451 <input type="hidden" class="js-choose-broker-email" value="" />
4452 </div>
4453 </div>
4454 </div>
4455 </div>
4456 <div class="salgsvurdering-broker">
4457 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3>
4458 <div class="js-choose-broker col-12">
4459 </div>
4460
4461 </div>
4462
4463
4464 <div class="form-group">
4465 <div class="row">
4466 <div class="col-12">
4467 <button type="submit" class="btn btn-green btn-block">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button>
4468 </div>
4469 </div>
4470 </div>
4471 <div class="form-group">
4472 <div class="checkbox">
4473 <label>
4474 <input type="checkbox" name="kontaktmigok" required />
4475
4476 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
4477
4478 </label>
4479 </div>
4480 </div>
4481 <div class="form-group form-group-terms">
4482 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
4483 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
4484 </div>
4485 <input type="hidden" name="fn" value="bsg" />
4486 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" />
4487 <input type="hidden" name="brugerId" value="@userID" />
4488 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
4489 <input type="hidden" id="boligvisning-gk" name="boligvisning" value="" />
4490 <input type="hidden" id="panel-salgsvurdering-gk-butikid" name="butikId" value="" />
4491 <input type="hidden" id="panel-salgsvurdering-gk-sagsnr" name="sagsnr" value="" />
4492 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
4493 <input type="hidden" name="ejendomstype" value="" />
4494 <input type="hidden" name="salgspris" value="" />
4495 <input type="hidden" name="employee" value="" />
4496 <input type="hidden" name="modtager" value="" />
4497 </form>
4498 <div id="tak-salgsvurdering" style="display:none;">
4499 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
4500 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p>
4501 <div class="row">
4502 <div class="col-6">
4503 <img src="" class="img-fluid js-maegler-img" />
4504 </div>
4505 <div class="col-6">
4506 <p class="js-maegler-name"></p>
4507 <p class="js-maegler-address"></p>
4508 <p class="js-maegler-phone"></p>
4509 <p class="js-maegler-mail"></p>
4510 </div>
4511 </div>
4512 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
4513 </div>
4514 </div>
4515
4516
4517 <div class="overlay-wrapper"></div>
4518 <div class="dropdown-overlay"></div>
4519 <div class="loader-inner ball-pulse"></div>
4520
4521 @{
4522 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js"));
4523 <script type="text/javascript" src='@(TemplateUrl)assets/webpack/js/3rdparty/viamapstrap.js?@(viamapstrapFileInfo.LastWriteTime.Ticks)' async></script>
4524
4525 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js"));
4526 <script type="text/javascript" src='@(TemplateUrl)assets/dist/bundle.app.min.js?@(bundleFileInfo.LastWriteTime.Ticks)' async></script>
4527 }
4528
4529 @RenderSnippet("JavaScriptBottom")
4530
4531 @if (Context.Current.Request.QueryString["ShowLogin"] == "true")
4532 {
4533 <input class="js-showLogin" value="true" />
4534 }
4535
4536 @if (!string.IsNullOrEmpty(settings_ConduzeId))
4537 {
4538 <script type="text/javascript" id="conduze-sdk" src="https://cdn.conduze.com/@settings_ConduzeId/tracking.js" async></script>
4539 }
4540
4541 @if (!string.IsNullOrEmpty(settings_Weply))
4542 {
4543 <script src="https://app.weply.chat/widget/@settings_Weply" async></script>
4544 }
4545
4546 </body>
4547 </html>
4548
4549