Error executing template "/Designs/Kwpn/Paragraph/HorseDatabase.cshtml"
System.IO.IOException: The process cannot access the file 'D:\inetpub\wwwroot\www.kwpn.nl\Files\Templates\Designs\Kwpn\Translations.xml' because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at Dynamicweb.Rendering.Translation.Source.WriteDocument(XmlDocument document)
at Dynamicweb.Rendering.Translation.Source.Save()
at Dynamicweb.Rendering.Translation.Source.UpdateTranslationSource(Source source, IEnumerable`1 newKeys, String designName, IEnumerable`1 cultures)
at Dynamicweb.Rendering.Template.TranslateText(String text, String defaultValue, String cultureName)
at Dynamicweb.Rendering.TemplateBase`1.Translate(String text, String defaultValue)
at CompiledRazorTemplates.Dynamic.RazorEngine_ff6c21607c604038a792b8ba9171ded3.Execute() in D:\inetpub\wwwroot\www.kwpn.nl\Files\Templates\Designs\Kwpn\Paragraph\HorseDatabase.cshtml:line 3360
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @using System
2 @using System.Linq
3 @using System.Text
4 @using Kwpn.Models.Constants
5 @using Kwpn.Repository.Helpers
6 @using Kwpn.Models.ApiModels @*Kwpn.Models.ApiModels is referenced because it is used in included pages - do not remove*@
7 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
8 @functions {
9 string CreateHorseInfoTableRow(string label, string value, bool? capitalizeValue = false)
10 {
11 var capitalize = false;
12 if (capitalizeValue.HasValue && capitalizeValue.Value)
13 {
14 capitalize = true;
15 value = value.ToLower();
16 }
17 var result = new StringBuilder();
18 result.AppendLine("<div class=\"row\">");
19 result.AppendFormat("<div class=\"col-xs-5 col-md-4\"><span class=\"label\">{0}</span></div>", label);
20 result.AppendFormat("<div class=\"col-xs-7 col-md-8\"><span class=\"value{0}\">{1}</span></div>", capitalize ? " capitalize" : "", string.IsNullOrWhiteSpace(value) ? "-" : value);
21 result.AppendLine("</div>");
22 return result.ToString();
23 }
24
25 string CreateInfoTableRow(
26 int sortNr,
27 string leftColumnValue,
28 string rightColumnValue,
29 bool? isHeader = false,
30 bool? capitalizeLeftColumn = false,
31 bool? capitilizeRightColumn = false,
32 bool boldLeftColumn = false,
33 bool colspanOnRightEmpty = false)
34 {
35 var capitalizeLeft = false;
36 var capitalizeRight = false;
37
38 var mod = "0";
39 if (sortNr % 2 == 0) { mod = "1"; }
40
41 if (isHeader.HasValue && isHeader.Value)
42 {
43 leftColumnValue = string.Format("<b>{0}</b>", leftColumnValue.ToUpper());
44 rightColumnValue = string.Format("<b>{0}</b>", rightColumnValue.ToUpper());
45 capitalizeLeft = false;
46 capitalizeRight = false;
47 }
48 else
49 {
50 if (capitalizeLeftColumn.HasValue && capitalizeLeftColumn.Value)
51 {
52 capitalizeLeft = true;
53 leftColumnValue = leftColumnValue.ToLower();
54 }
55 else
56 {
57 capitalizeLeft = false;
58 }
59 if (capitilizeRightColumn.HasValue && capitilizeRightColumn.Value)
60 {
61 capitalizeRight = true;
62 rightColumnValue = rightColumnValue.ToLower();
63 }
64 else
65 {
66 capitalizeRight = false;
67 }
68 }
69 if (boldLeftColumn)
70 {
71 leftColumnValue = string.Format("<b>{0}</b>", leftColumnValue);
72 }
73 var result = new StringBuilder();
74 result.AppendFormat("<div class=\"row mod-{0}\">", mod);
75 if (string.IsNullOrWhiteSpace(rightColumnValue) && colspanOnRightEmpty)
76 {
77 result.AppendFormat("<div class=\"col-xs-12\"><span class=\"leftValue{0}\">{1}</span></div>", capitalizeLeft ? " capitalize" : "", string.IsNullOrWhiteSpace(leftColumnValue) ? "-" : leftColumnValue);
78 }
79 else
80 {
81 result.AppendFormat("<div class=\"col-xs-5 col-md-4\"><span class=\"leftValue{0}\">{1}</span></div>", capitalizeLeft ? " capitalize" : "", string.IsNullOrWhiteSpace(leftColumnValue) ? "-" : leftColumnValue);
82 result.AppendFormat("<div class=\"col-xs-7 col-md-8\"><span class=\"rightValue{0}\">{1}</span></div>", capitalizeRight ? " capitalize" : "", string.IsNullOrWhiteSpace(rightColumnValue) ? "-" : rightColumnValue);
83 }
84
85 result.AppendLine("</div>");
86 return result.ToString();
87 }
88
89 }
90 @{
91 var culture = GetGlobalValue("Global:Area.LongLang");
92 var language = GetGlobalValue("Global:Area.Lang");
93
94 var currentDatabaseUser = Kwpn.Repository.Repositories.KwpnUsers.CurrentUser();
95
96 var pageService = new Dynamicweb.Content.PageService();
97 var showGeneral = true;
98
99 // SEO: seoPage is used as base url for virtual pageviews
100 var seoPage = GetGlobalValue("Global:Pageview.Url");
101 if (seoPage.Contains("?"))
102 {
103 seoPage = seoPage.Split('?')[0];
104 }
105
106 // get animal code from querystring or form post, sample value: p-000306
107 var animalCode = System.Web.HttpContext.Current.Request.QueryString.Get(Translate("Horse", "Horse"));
108 if (string.IsNullOrWhiteSpace(animalCode)) { animalCode = System.Web.HttpContext.Current.Request.Form.Get(Translate("Horse", "Horse")); }
109
110 // get action from querystring or form post, sample value: evenementaanmelding
111 var actionParameter = "action";
112 if (culture.Equals("nl-nl", StringComparison.InvariantCultureIgnoreCase)) { actionParameter = "actie"; }
113 var action = System.Web.HttpContext.Current.Request.QueryString.Get(actionParameter);
114 if (string.IsNullOrWhiteSpace(action)) { action = System.Web.HttpContext.Current.Request.Form.Get(actionParameter); }
115
116 // get action item id from querystring or form post:
117 var actionIdParameter = "actionid";
118 if (culture.Equals("nl-nl", StringComparison.InvariantCultureIgnoreCase)) { actionIdParameter = "actieid"; }
119 var actionId = System.Web.HttpContext.Current.Request.QueryString.Get(actionIdParameter);
120 if (string.IsNullOrWhiteSpace(actionId)) { actionId = System.Web.HttpContext.Current.Request.Form.Get(actionIdParameter); }
121
122 // check redirect (for some features the user must be logged in)
123 LoginHelper.AuthorizeForDatabasePageContent(culture, action, actionId, animalCode);
124
125 var memberhipPageId = AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.BecomeMemberPageId);
126
127
128 var isCupEvent = action != null && action.Equals(Translate("ActionLink_SignUp_CupEvent"), StringComparison.OrdinalIgnoreCase); // cup events can have registrations for non kwpn horses
129 var noHorseNeeded = isCupEvent;
130
131 // actions (these values determine if an action is shown)
132 var horseHasMemberContentOverride = HorseHelper.HorseHasMemberContentOverride(animalCode);
133 var actionShow = false;
134 var actionRequestBreedingAdvice = false;
135 var actionSignUpInspectionEvent = false;
136 var actionSignUpCupEvent = isCupEvent;
137 var actionReportDeceasedHorse = false;
138 var actionRequestContinuedPassport = false;
139 var actionRequestDuplicate = false;
140 var actionRegisterHorseToName = false;
141 var actionRegisterEmbryo = false;
142 var actionRegisterFoal = false;
143 var actionReportHorseSold = false;
144 var actionVeterinarianRequestResearch = false;
145 var actionRequestGenomicBreedingValueTest = false;
146 var actionSellViaMarketplace = false;
147 var actionInbreedingCalculation = false;
148 var actionRequestPredicates = false;
149 var actionGetStallionAdvice = false;
150 var actionDnaPage = false;
151 var isMyHorse = false;
152 var isMyHorseAndConfirmed = false;
153 var isMare = false;
154 var isAlive = false;
155 var isApprovedStud = false;
156 var isBredByMe = false;
157 var isAvailableForResearch = false;
158 var showGeneticProfileBasedOnRegister = false;
159 var showGeneticProfileBasedOnOwnerSettings = true;
160 var hasBreeders = false;
161 var horseName = "";
162 List<Kwpn.Models.ApiModels.PersonModel> breeders = null;
163
164 if (LoginHelper.MyKwpnIsOffline())
165 {
166 <div class="break-grid content-container">
167 <div class="break-grid-background">
168 <div class="in-grid">
169 <div class="row">
170 <div class="col-xs-12 col-md-7">
171 @Translate("MyKwpnIsOffline", "The back office is offline.")
172 </div>
173 </div>
174 </div>
175 </div>
176 </div>
177 }
178 else if (string.IsNullOrWhiteSpace(animalCode) && !noHorseNeeded)
179 {
180 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
181 <div class="break-grid content-container page-content-aside horse-search">
182 @{
183 var searchMyHorsesOnly = false; // this value is set by Kwpn.Repository.Helpers.SearchIntroHelper.GetSearchIntro
184 var searchTitle = Translate("SearchDatabaseFor", "Search database for");
185
186 // get search form intro based on action
187 var formTitle = "";
188 var formIntro = "";
189 if (!string.IsNullOrWhiteSpace(action))
190 {
191 formIntro = Kwpn.Repository.Helpers.SearchIntroHelper.GetSearchIntro(
192 action,
193 actionId,
194 GetGlobalValue("Global:Area.LongLang"),
195 out formTitle,
196 out searchMyHorsesOnly);
197
198 if (searchMyHorsesOnly)
199 {
200 searchTitle = Translate("SearchMyHorsesFor", "Search my horses for");
201 }
202
203 }
204
205 var horsePageUrl = GetGlobalValue("Global:Pageview.Url.Raw");
206 if (horsePageUrl.Contains("?"))
207 {
208 horsePageUrl = string.Format("{0}&{1}=", horsePageUrl, Translate("Horse", "Horse"));
209 }
210 else
211 {
212 horsePageUrl = string.Format("{0}?{1}=", horsePageUrl, Translate("Horse", "Horse"));
213 }
214
215 // if action is only for alive horses, then set hideShowDeceasedOption to false
216 var hideShowDeceasedOption = !string.IsNullOrWhiteSpace(action) && (bool)action.Equals(Translate("ActionLink_Request_Duplicate", "Duplicate"), StringComparison.InvariantCultureIgnoreCase);
217
218 bool isResearchAdd = !string.IsNullOrWhiteSpace(action) && (bool)action.Equals(Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"), StringComparison.InvariantCultureIgnoreCase);
219
220 bool userisveterinarian = Kwpn.Repository.Helpers.UserHelper.CheckIfVeterinarian();
221
222 bool isRegisterHorse = !string.IsNullOrWhiteSpace(action) && (bool)action.Equals(Translate("ActionLink_Register_HorseToName", "RegisterHorse"), StringComparison.InvariantCultureIgnoreCase);
223
224 if (searchMyHorsesOnly)
225 {
226 <div class="break-grid content-container hidden" id="refreshcontainer">
227 <div class="break-grid-background">
228 <div class="in-grid">
229 <div class="row">
230 <div class="col-xs-12 col-md-7">
231 <i class='fa fa-refresh fa-spin fa-3x fa-fw'></i><span class="reloading-text">@Translate("HorseListReloading", "One moment please. We are fetching your horses from our back-end system.")</span>
232 </div>
233 </div>
234 </div>
235 </div>
236 </div>
237 }
238 }
239
240 @*SEARCH*@
241 <div class="break-grid-background" id="horse-search-search">
242 <div class="in-grid">
243 <div class="row">
244 <div class="background-head-aside-xs">
245
246 <div class="background-head-xs">
247 <div class="page-header">
248 <div class="col-xs-12">
249 <div class="row">
250 <div class="col-xs-12">
251 <h1>@searchTitle:</h1>
252 @if (!string.IsNullOrWhiteSpace(formIntro))
253 {
254 <p>@formIntro</p>
255 }
256 </div>
257 </div>
258 </div>
259 </div>
260 </div>
261
262 <div class="background-aside-xs">
263 <aside class="col-xs-12 col-md-4 col-md-push-8">
264
265 @*MEMBERSHIP CALL TO ACTION*@
266 @*<div class="page-aside">
267 @if (!Kwpn.Repository.Helpers.LoginHelper.CurrentUserIsLoggedIn())
268 {
269 var becomeMemberPageId = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.BecomeMemberPageId);
270 if (!string.IsNullOrWhiteSpace(becomeMemberPageId))
271 {
272 var becomeMemberPageUrl = string.Format("/Default.aspx?ID={0}", becomeMemberPageId);
273 <h2 id="become-member-list-header" data-childId="become-member-list" class="notactive"><span>@Translate("NoAccount?", "No KWPN Account?")</span></h2>
274 <ul id="become-member-list" class="aside-content notactive">
275 <li><a href='@becomeMemberPageUrl'>@Translate("BecomeMemberNow", "Become a member now")</a></li>
276 </ul>
277 }
278 }
279 </div>*@
280
281 <!-- /204473129/DatabaseZoekfunctie/Banner1 -->
282 <div id='div-gpt-ad-banner1-1' class="google-container google-container--size--b google-container--center google-container--margin-top">
283 <script>
284 googletag.cmd.push(function () { googletag.display('div-gpt-ad-banner1-1'); });
285 </script>
286 </div>
287
288 </aside>
289 </div>
290
291 </div>
292
293 <article class="col-xs-12 col-md-7 col-md-pull-4 page-content">
294 @if (!searchMyHorsesOnly)
295 {
296 <div class="w-section inverse">
297 <div class="w-box sign-in-wr bg-5">
298 <div class="form-body">
299 <div class="row">
300 <div class="col-xs-12" id="DatabaseSearchForm">
301
302 <div class="form-inline">
303
304 <input type="radio" name="SearchTypeSelector" id="SearchTypeSelector_LifeNumber" value="LifeNumber" @((userisveterinarian || isRegisterHorse) ? "checked=\"checked\"" : "") />
305 <label for="SearchTypeSelector_LifeNumber" class="radio-label">@Translate("DatabaseSearchForm_ChipLifeNumber", "Chip- or Life number")</label>
306
307 <br />
308
309 <input type="radio" name="SearchTypeSelector" id="SearchTypeSelector_Pedigree" value="Pedigree" />
310 <label for="SearchTypeSelector_Pedigree" class="radio-label">@Translate("DatabaseSearchForm_Pedigree", "Pedigree")</label>
311
312 <br />
313
314 <input type="radio" name="SearchTypeSelector" id="SearchTypeSelector_FreeSearch" value="FreeSearch" @(!(userisveterinarian || isRegisterHorse) ? "checked=\"checked\"" : "") />
315 <label for="SearchTypeSelector_FreeSearch" class="radio-label">@Translate("DatabaseSearchForm_FreeSearch", "Free search / studs")</label>
316
317 <br />
318
319 <input type="radio" name="SearchTypeSelector" id="SearchTypeSelector_Database" value="Database" />
320 <label for="SearchTypeSelector_Database" class="radio-label">@Translate("DatabaseSearchForm_Database", "Stud database")</label>
321
322 <br />
323
324 <input type="radio" name="SearchTypeSelector" id="SearchTypeSelector_BreedingValues" value="BreedingValues" />
325 <label for="SearchTypeSelector_BreedingValues" class="radio-label">@Translate("DatabaseSearchForm_BreedingValues", "Breeding values")</label>
326
327 </div>
328
329
330 </div>
331 </div>
332 </div>
333
334 @*CHIP/LIFENUMBER SEARCH*@
335 <div id="DatabaseSearchForm_LifeNumber" class="form-body horse-search-form hidden">
336 <form name="DatabaseSearchForm_LifeNumberForm" id="DatabaseSearchForm_LifeNumberForm">
337 <div class="row">
338 <div class="col-xs-12">
339
340 @*CHIP/LIFENUMBER*@
341 <div class="form-inline">
342 <label class="control-label col-xs-12 col-md-4"
343 for="DatabaseSearchForm_LifeNumber_LifeNumber">@Translate("DatabaseSearchForm_ChipLifeNumber", "Chip- or Life number")</label>
344 <input type="text"
345 class="form-control hide-hints"
346 id="DatabaseSearchForm_LifeNumber_LifeNumber"
347 name="DatabaseSearchForm_LifeNumber_LifeNumber"
348 value=""
349 required />
350 </div>
351
352 @*SUBMIT*@
353 <button type="submit"
354 class="btn btn-search-submit"
355 id="DatabaseSearchForm_LifeNumber_Submit">
356 @Translate("Search", "Search")
357 </button>
358
359 </div>
360 </div>
361 </form>
362 </div>
363
364 @*PEDIGREE SEARCH*@
365 <div id="DatabaseSearchForm_Pedigree" class="form-body horse-search-form hidden">
366 <form name="DatabaseSearchForm_PedigreeForm" id="DatabaseSearchForm_PedigreeForm">
367 <div class="row">
368 <div class="col-xs-12">
369
370 @*FATHER*@
371 <div class="form-inline">
372 <label class="control-label col-xs-12 col-md-4"
373 for="DatabaseSearchForm_PedigreeForm_Father">@Translate("FathersName", "Father")</label>
374 <input type="text"
375 class="form-control hide-hints"
376 id="DatabaseSearchForm_PedigreeForm_Father"
377 name="DatabaseSearchForm_PedigreeForm_Father"
378 value=""
379 required />
380 </div>
381
382 @*MOTHERSFATHER*@
383 <div class="form-inline">
384 <label class="control-label col-xs-12 col-md-4"
385 for="DatabaseSearchForm_PedigreeForm_MothersFather">@Translate("MothersFathersName", "Mothers father")</label>
386 <input type="text"
387 class="form-control hide-hints"
388 id="DatabaseSearchForm_PedigreeForm_MothersFather"
389 name="DatabaseSearchForm_PedigreeForm_MothersFather"
390 value=""
391 required />
392 </div>
393
394 @*YEAROFBIRTH*@
395 <div class="form-inline">
396 <label class="control-label col-xs-12 col-md-4"
397 for="DatabaseSearchForm_PedigreeForm_YearOfBirth">@Translate("YearOfBirth", "Year of birth")</label>
398 <input type="text"
399 class="form-control"
400 id="DatabaseSearchForm_PedigreeForm_YearOfBirth"
401 name="DatabaseSearchForm_PedigreeForm_YearOfBirth"
402 value=""
403 pattern="^\d{4}$" />
404 </div>
405
406 @*DECEASED HORSES*@
407 @if (!hideShowDeceasedOption)
408 {
409 <div class="form-inline">
410 <label class="control-label col-xs-12 col-md-4">@Translate("ShowDeceasedHorses", "Show deceased horses")</label>
411 <input type="checkbox"
412 id="DatabaseSearchForm_PedigreeForm_ShowDeceasedHorses"
413 name="DatabaseSearchForm_PedigreeForm_ShowDeceasedHorses"
414 value="true" />
415 <label for="DatabaseSearchForm_PedigreeForm_ShowDeceasedHorses" class="normal">@Translate("ShowDeceasedHorses_YesNo", "yes/no")</label>
416 </div>
417 }
418
419 @*SUBMIT*@
420 <button type="submit" class="btn btn-search-submit" id="DatabaseSearchForm_Pedigree_Submit">@Translate("Search", "Search")</button>
421 </div>
422 </div>
423 </form>
424 </div>
425
426 @*FREE SEARCH*@
427 <div id="DatabaseSearchForm_FreeSearch" class="form-body horse-search-form hidden">
428 <form name="DatabaseSearchForm_FreeSearchForm" id="DatabaseSearchForm_FreeSearchForm">
429 <div class="row">
430 <div class="col-xs-12">
431
432 @*SEARCH FOR*@
433 <div class="form-inline">
434 <label class="control-label col-xs-12 col-md-4"
435 for="DatabaseSearchForm_FreeSearchForm_Key">@Translate("SearchFor", "Search for")</label>
436 <input type="text"
437 class="form-control hide-hints"
438 id="DatabaseSearchForm_FreeSearchForm_Key"
439 name="DatabaseSearchForm_FreeSearchForm_Key"
440 value=""
441 placeholder="@Translate("SearchForPlaceholder", "(sports) name, father, mother, mothers father")"
442 required />
443 </div>
444
445 @*BREEDING DIRECTION*@
446 <div class="form-inline">
447 <label class="control-label col-xs-12 col-md-4">@Translate("BreedingDirection", "Breeding direction")</label>
448
449 <div class="input-group">
450
451 <input type="checkbox"
452 name="DatabaseSearchForm_FreeSearchForm_BreedingDirection"
453 id="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Dressuur"
454 value="@Kwpn.Models.Enumerations.BreedingDirection.Dressuur" />
455 <label for="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Dressuur" class="normal">@Translate("Dressage", "Dressage")</label>
456
457 <br />
458
459 <input type="checkbox"
460 name="DatabaseSearchForm_FreeSearchForm_BreedingDirection"
461 id="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard"
462 value="@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard" />
463 <label for="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard" class="normal">@Translate("Geldinghorse", "Geldinghorse")</label>
464
465 <br />
466
467 <input type="checkbox"
468 name="DatabaseSearchForm_FreeSearchForm_BreedingDirection"
469 id="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Springen"
470 value="@Kwpn.Models.Enumerations.BreedingDirection.Springen" />
471 <label for="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Springen" class="normal">@Translate("Jumping", "Jumping")</label>
472
473 <br />
474
475 <input type="checkbox"
476 name="DatabaseSearchForm_FreeSearchForm_BreedingDirection"
477 id="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard"
478 value="@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard" />
479 <label for="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard" class="normal">@Translate("HarnessHorse", "Harness horse")</label>
480 <br />
481 <input type="checkbox"
482 name="DatabaseSearchForm_FreeSearchForm_BreedingDirection"
483 id="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard"
484 value="@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard" />
485 <label for="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard" class="normal">@Translate("RidingHorse", "Riding horse")</label>
486
487 </div>
488
489 </div>
490
491 @*YEAROFBIRTH*@
492 <div class="form-inline">
493 <label class="control-label col-xs-12 col-md-4"
494 for="DatabaseSearchForm_FreeSearchForm_YearOfBirth">@Translate("YearOfBirth", "Year of birth")</label>
495 <input type="text"
496 class="form-control"
497 id="DatabaseSearchForm_FreeSearchForm_YearOfBirth"
498 name="DatabaseSearchForm_FreeSearchForm_YearOfBirth"
499 value=""
500 pattern="^\d{4}$" />
501 </div>
502
503
504 @*DECEASED HORSES*@
505 @if (!hideShowDeceasedOption)
506 {
507 <div class="form-inline">
508 <label class="control-label col-xs-12 col-md-4">@Translate("ShowDeceasedHorses", "Show deceased horses")</label>
509 <input type="checkbox"
510 id="DatabaseSearchForm_FreeSearchForm_ShowDeceasedHorses"
511 name="DatabaseSearchForm_FreeSearchForm_ShowDeceasedHorses"
512 value="true" />
513 <label for="DatabaseSearchForm_FreeSearchForm_ShowDeceasedHorses" class="normal">@Translate("ShowDeceasedHorses_YesNo", "yes/no")</label>
514 </div>
515 }
516
517
518 @*SUBMIT*@
519 <button type="submit" class="btn btn-search-submit" id="DatabaseSearchForm_FreeSearch_Submit">@Translate("FreeSearch", "Search in all our horses")</button>
520 </div>
521 </div>
522 </form>
523
524 <div class="row">
525 <div class="col-xs-12">
526 <div class="google-container google-container--size--a google-container--center google-container--margin-top">
527 <!--onderstaande afbeelding moet worden verwijderd en vervangen worden door google admanager data-->
528 </div>
529 </div>
530 </div>
531 </div>
532
533 @*DATABASE SEARCH*@
534 <div id="DatabaseSearchForm_Database" class="form-body horse-search-form hidden">
535 <form name="DatabaseSearchForm_DatabaseForm" id="DatabaseSearchForm_DatabaseForm">
536 <div class="row">
537 <div class="col-xs-12">
538
539 @*SEARCH FOR*@
540 <div class="form-inline">
541 <label class="control-label col-xs-12 col-md-4"
542 for="DatabaseSearchForm_DatabaseForm_Key">@Translate("SearchFor", "Search for")<i class="fa fa-asterisk fixed" aria-hidden="true"></i></label>
543 <input type="text"
544 class="form-control hide-hints"
545 id="DatabaseSearchForm_DatabaseForm_Key"
546 name="DatabaseSearchForm_DatabaseForm_Key"
547 value=""
548 placeholder="@Translate("SearchForPlaceholder", "(sports) name, father, mother, mothers father")"
549 required />
550 </div>
551
552 @*BREEDING DIRECTION*@
553 <div class="form-inline">
554 <label class="control-label col-xs-12 col-md-4">@Translate("BreedingDirection", "Breeding direction")<i class="fa fa-asterisk fixed" aria-hidden="true"></i></label>
555
556 <div class="input-group">
557 <fieldset data-checkbox-list="DatabaseSearchForm_DatabaseForm_BreedingDirection"
558 data-checkbox-list-dependencies="DatabaseSearchForm_DatabaseForm_Key">
559
560 <input type="checkbox"
561 name="DatabaseSearchForm_DatabaseForm_BreedingDirection"
562 id="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Dressuur"
563 value="@Kwpn.Models.Enumerations.BreedingDirection.Dressuur"
564 required />
565 <label for="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Dressuur" class="normal">@Translate("Dressage", "Dressage")</label>
566
567 <br />
568
569 <input type="checkbox"
570 name="DatabaseSearchForm_DatabaseForm_BreedingDirection"
571 id="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard"
572 value="@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard"
573 required />
574 <label for="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard" class="normal">@Translate("Geldinghorse", "Geldinghorse")</label>
575
576 <br />
577
578 <input type="checkbox"
579 name="DatabaseSearchForm_DatabaseForm_BreedingDirection"
580 id="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Springen"
581 value="@Kwpn.Models.Enumerations.BreedingDirection.Springen"
582 required />
583 <label for="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Springen" class="normal">@Translate("Jumping", "Jumping")</label>
584
585 <br />
586
587 <input type="checkbox"
588 name="DatabaseSearchForm_DatabaseForm_BreedingDirection"
589 id="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard"
590 value="@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard"
591 required />
592 <label for="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard" class="normal">@Translate("HarnessHorse", "Harness horse")</label>
593 <br />
594 <input type="checkbox"
595 name="DatabaseSearchForm_DatabaseForm_BreedingDirection"
596 id="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard"
597 value="@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard"
598 required />
599 <label for="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard" class="normal">@Translate("RidingHorse", "Riding horse")</label>
600 </fieldset>
601 </div>
602
603 </div>
604
605 @*YEAROFBIRTH*@
606 <div class="form-inline">
607 <label class="control-label col-xs-12 col-md-4"
608 for="DatabaseSearchForm_DatabaseForm_YearOfBirth">@Translate("YearOfBirth", "Year of birth")</label>
609 <input type="text"
610 class="form-control"
611 id="DatabaseSearchForm_DatabaseForm_YearOfBirth"
612 name="DatabaseSearchForm_DatabaseForm_YearOfBirth"
613 value=""
614 pattern="^\d{4}$" />
615 </div>
616
617 @*DECEASED HORSES*@
618 @if (!hideShowDeceasedOption)
619 {
620 <div class="form-inline">
621 <label class="control-label col-xs-12 col-md-4">@Translate("ShowDeceasedHorses", "Show deceased horses")</label>
622 <input type="checkbox"
623 id="DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses"
624 name="DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses"
625 value="true" />
626 <label for="DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses" class="normal">@Translate("ShowDeceasedHorses_YesNo", "yes/no")</label>
627 </div>
628 }
629
630 @*APPROVED STUDS*@
631 <input type="hidden" id="DatabaseSearchForm_DatabaseForm_ApprovedStuds" name="DatabaseSearchForm_DatabaseForm_ApprovedStuds" value="true" />
632
633 @*SUBMIT*@
634 <button type="submit" class="btn btn-search-submit" id="DatabaseSearchForm_Database_Submit">@Translate("StudSearch", "Stud search")</button>
635
636 <div class="form-inline">
637 <br /><small><i class="fa fa-asterisk fixed" aria-hidden="true"></i><i class="fa fa-asterisk fixed" aria-hidden="true"></i> @Translate("RequiredFieldOfTwoHorseSearch", "At least one is required")</small>
638 </div>
639
640 @*ALL STUDS*@
641 <small>@Translate("ShowAllStudsIntro", "Get all approved stallions by using the link below:")</small>
642 <br />
643 <a href="javascript:void(0);" id="btn-all-studs" class="orange_arrow_link">@Translate("ShowAllStuds", "Show all studs")</a>
644 </div>
645 </div>
646 </form>
647 </div>
648
649
650
651 @*BREEDING VALUES SEARCH*@
652 <div id="DatabaseSearchForm_BreedingValues" class="form-body horse-search-form hidden">
653
654 <p id="breedingValuesAdditionalText" class="hidden">
655 @Translate("DatabaseSearchForm_BreedingValuesAdditionalText", "")
656 </p>
657
658 <form name="DatabaseSearchForm_BreedingValuesForm" id="DatabaseSearchForm_BreedingValuesForm">
659
660 <div class="row hidden" id="DatabaseSearchForm_BreedingValuesForm_ReSearch">
661 <div class="col-xs-12">
662 <label class="control-label col-sm-4"> </label>
663 <div class="breedingValueResearchButtonContainer">
664 <button>@Translate("BreedingValuesReUse", "Re-use previous breeding value settings")</button>
665 <br />
666 <br />
667 <span>@Translate("BreedingValuesReUseOr", "Or")</span>
668 <br />
669 <br />
670 </div>
671
672 </div>
673 </div>
674
675 <div class="row">
676 <div class="col-xs-12">
677
678 <div class="form-group">
679 <div class="form-inline not-in-form">
680 <label class="control-label col-sm-4" for="DatabaseSearchForm_BreedingValues_BreedingDirection">@Translate("BreedingDirection", "Breeding direction")</label>
681 <select class="form-control hide-hints" id="DatabaseSearchForm_BreedingValues_BreedingDirection" name="DatabaseSearchForm_BreedingValues_BreedingDirection" required>
682 <option value="" selected>@Translate("Select")</option>
683 <option value="FOKR-000005">@Translate("Fokrichting_RPGP", "Riding horse / Gelderlander")</option>
684 <option value="FOKR-000007">@Translate("Fokrichting_TP", "Harness horse")</option>
685 </select>
686 </div>
687 </div>
688
689 <div class="form-group" id="list-breeding-values"></div>
690
691
692 @*SUBMIT*@
693 <button type="submit"
694 class="btn btn-search-submit"
695 id="DatabaseSearchForm_BreedingValues_Submit">
696 @Translate("Search", "Search")
697 </button>
698
699 </div>
700 </div>
701 </form>
702 </div>
703
704 </div>
705 </div>
706
707 }
708 </article>
709
710 </div>
711 </div>
712 </div>
713
714 @*RESULTS*@
715 <div class="break-grid-background hidden" id="horse-search-results">
716 <div class="in-grid">
717 <div class="row">
718 <div class="background-head-aside-xs">
719 <div class="background-head-xs">
720 <div class="page-header">
721 <div class="col-xs-12">
722
723 @if (searchMyHorsesOnly)
724 {
725 // show form intro based on action
726 <div class="row">
727 <div class="col-xs-12">
728 <span id="searched-for"></span>
729 <div id="search-result-count" data-default="@Translate("ZeroResults", "0 results")">@Translate("ZeroResults", "0 results")</div>
730 @{
731 // show search form intro
732 if (!string.IsNullOrWhiteSpace(formTitle))
733 {
734 <h1>@formTitle</h1>
735 if (!string.IsNullOrWhiteSpace(formTitle))
736 {
737 <p>@formIntro</p>
738 }
739 }
740 else
741 {
742 <h1>@searchTitle:</h1>
743 }
744 }
745 </div>
746 </div>
747 }
748 else
749 {
750 // show search result header
751 <div class="row">
752 <div class="col-xs-12 col-md-8">
753 <div id="search-result-count" data-default="@Translate("ZeroResults", "0 results")">@Translate("ZeroResults", "0 results")</div>
754 <h1>@Translate("SearchResultsFor", "Search results for"): <span id="searched-for"></span></h1>
755 </div>
756 <div class="col-xs-12 col-md-4">
757 <a href="javascript:void(0);" id="search-again" class="orange_arrow_link pull-right">@Translate("SearchAgain", "Search again")</a>
758 </div>
759 </div>
760 }
761 </div>
762 </div>
763 </div>
764 </div>
765
766 <article class="col-xs-12 page-content">
767 <div class="row hidden" id="horseSearchResults">
768
769 <div id="tooManyResults" class="col-xs-12 col-md-7 hidden">
770 <p>@Translate("TooManySearchResults2", "Your search gave <span id='horseListCounter2'></span> results, of which we show the first 100.")</p>
771 </div>
772
773 <div id="noResults" class="col-xs-12 col-md-7 hidden">@Translate("ZeroResultsText", "Your search gave no results")</div>
774
775 <div id="refine" class="col-xs-12 col-md-7 hidden">@Translate("RefineSearch", "To many results found, please refine your search.")</div>
776
777 <div class="col-xs-12 form-body" id="result-filter">
778
779 <div class="row resultStyling">
780
781 @if (searchMyHorsesOnly)
782 {
783 // show filter for attributes, just like the "my horses" page
784 <div class="col-xs-12 col-md-6">
785 <div class="form-inline">
786 <label class="control-label">@Translate("Attributes", "Attributes")</label><br />
787 <input type="text" class="form-control" id="horsesFilter" placeholder='@Translate("FilterByAttributes", "Filter by attributes")' />
788 </div>
789 </div>
790 <div class="col-xs-12 col-md-6">
791 <a href="#" id="refresh-list-link"><i class="fa fa-refresh"></i> <abbr title="@Translate("Action_RefreshMyHorsesDataAbbr", "When refreshing the horse list we will fetch your horses from our back-end system. This may take a while.")">@Translate("Action_RefreshMyHorsesData", "Refresh my horses list")</abbr></a>
792 </div>
793 }
794 else
795 {
796 // show extended search options
797 <div class="col-xs-12 col-md-4">
798
799 <div class="form-inline">
800 <label class="control-label">@Translate("Attributes", "Attributes")</label><br />
801 <input type="text" class="form-control" id="horsesFilter" placeholder='@Translate("FilterByAttributes", "Filter by attributes")' />
802 </div>
803
804 <div class="form-inline selectdiv" id="yearOfApproval">
805 <label class="control-label" for="horseFilterByYearOfApproval">@Translate("YearOfApproval", "Year of approval")</label>
806 <select class="form-control" name="horseFilterByYearOfApproval" id="horseFilterByYearOfApproval">
807 <option value="">@Translate("Select", "Select")</option>
808 @for (int i = DateTime.Today.Year - 25; i <= DateTime.Today.Year; i++)
809 {
810 <option value="@i">@i</option>
811 }
812 </select>
813 </div>
814
815 <div class="form-inline" id="approvedStud">
816 <label class="control-label">@Translate("AcknowledgedStud", "Acknowledged stud")</label><br />
817 <input type="checkbox" name="horseFilterByAcknowledged" id="horseFilterByAcknowledged" />
818 <label for="horseFilterByAcknowledged" class="normal">@Translate("Apply", "Apply")</label>
819 </div>
820
821 </div>
822
823 <div class="col-xs-12 col-md-4">
824 <div class="form-inline hidden" id="color-filter">
825 <label class="control-label">@Translate("Color", "Color")</label><br />
826 <div id="color-filter-items"></div>
827 </div>
828 </div>
829
830 <div class="col-xs-12 col-md-4">
831
832 <div class="form-inline" id="gender-filter">
833 <label class="control-label h2">@Translate("Gender", "Gender")</label><br />
834 <div id="gender-filter-items"></div>
835 </div>
836
837 <div class="form-inline selectdiv" id="startingletter-filter">
838 <label class="control-label h2">@Translate("StartingLetter", "Starting letter")</label><br />
839 <select class="form-control" name="horseFilterByStartingLetter" id="horseFilterByStartingLetter">
840 <option value="none" selected="selected">@Translate("Select", "Select")</option>
841 @for (char c = 'A'; c <= 'Z'; c++)
842 {
843 <option value="@c">@c</option>
844 }
845 </select>
846 </div>
847
848 </div>
849
850 }
851
852 </div>
853
854 </div>
855
856 <div class="col-xs-12" id="result-filter-reset">
857 <a href="javascript:void(0);" id="resetFilterButton" class="orange_arrow_link pull-right">@Translate("ResetFilter", "Reset filter")</a>
858 <br />
859 <br />
860 </div>
861
862 <div class="col-xs-12">
863 <div class="table-responsive">
864 <table id="horsesTable">
865 <caption>@Translate("SearchResultIntro", "Click on the name of the horse to continue:")</caption>
866 <thead>
867 <tr>
868 <th data-sortOn="Gender" data-sortBy="Asc"><span class="hidden-xs hidden-sm">@Translate("Gender", "Gender")<i class="fa"></i></span></th>
869 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th>
870 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th>
871 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th>
872 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th>
873 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th>
874 </tr>
875 </thead>
876 </table>
877 </div>
878 </div>
879 </div>
880 </article>
881 </div>
882 </div>
883 </div>
884 </div>
885
886 @SnippetStart("JavascriptsBottom")
887 <script>
888 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode()).ToLower()");
889 </script>
890 <script id="listHorseTemplate" type="text/html">
891 <tr class="${ClassName} clickable" onclick="document.location.href = '@horsePageUrl${HorseCode}';">
892 <td class="nowrap">
893 <i class="fa ${GenderClass}"></i><span class="hidden-xs hidden-sm"> ${GenderAbbr}</span>
894 {{if !IsAlive}}
895 <div class="fa-death" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"></div>
896 {{/if}}
897 {{if IsApprovedStud}}
898 <div class="fa-approved-stud" data-toggle="tooltip" title="@Translate("IsApprovedStud", "Is an approved stud").JsEncode().ToUpper()"></div>
899 {{/if}}
900 </td>
901 <td>${AnimalName}</td>
902 <td>${Lifenumber}{{if LifenumberComplete != Lifenumber}}<br /><span class='small'>${LifenumberComplete}</span>{{/if}}</td>
903 <td>${Register}</td>
904 <td>${Color}</td>
905 <td><span class="nowrap">${Father}</span> x <span class="nowrap">${MothersFather}</span></td>
906 </tr>
907 </script>
908 <script id="listSelectHorseTemplate" type="text/html">
909 <tr class="${ClassName} horseRow clickable" data-horseCode="${HorseCode}">
910 <td class="nowrap">
911 <i class="fa ${GenderClass}"></i><span class="hidden-xs hidden-sm"> ${GenderAbbr}</span>
912 {{if !IsAlive}}
913 <div class="fa-death" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"></div>
914 {{/if}}
915 {{if IsApprovedStud}}
916 <div class="fa-approved-stud" data-toggle="tooltip" title="@Translate("IsApprovedStud", "Is an approved stud").JsEncode().ToUpper()"></div>
917 {{/if}}
918 </td>
919 <td>${AnimalName}</td>
920 <td>${Lifenumber}{{if LifenumberComplete != Lifenumber}}<br /><span class='small'>${LifenumberComplete}</span>{{/if}}</td>
921 <td>${Register}</td>
922 <td>${Color}</td>
923 <td><span class="nowrap">${Father}</span> x <span class="nowrap">${MothersFather}</span></td>
924 </tr>
925 </script>
926 <script id="valuesTemplate" type="text/html">
927 <div class="form-group">
928 <h3>${Type} <span class="toggler" data-identifyer="${TypeId}" data-typeclass="breeding-values-content"><i class="fa fa-plus"></i></span></h3>
929 <div class="breeding-values-content" id="${TypeId}">
930 {{each(i,breedingValue) lstBreedingValues}}
931 <div class="form-inline ">
932 <label class="control-label col-sm-4" for="${breedingValue.BreedingValuecode}">
933 ${breedingValue.Description}{{if breedingValue.Minimum != null && breedingValue.Maximum != null}}<br /><span class="minmax">${breedingValue.Minimum} - ${breedingValue.Maximum}</span>{{/if}}
934 </label>
935 <div class="selectdiv">
936 <select class="form-control hide-hints input-sm" data-predicate="${breedingValue.BreedingValuecode}">
937 <option value="gt">></option>
938 <option value="lt"><</option>
939 <option value="et">=</option>
940 </select>
941 </div>
942 <input type="number" class="form-control hide-hints input-sm" min="0" id="${breedingValue.BreedingValuecode}" name="${breedingValue.BreedingValuecode}" value="" />
943 </div>
944 {{/each}}
945 </div>
946 <br />
947 </div>
948 </script>
949 <script>
950
951 var sortOn = "Weight";
952 var sortBy = "Asc";
953 var searchApi = "";
954 var filterYear = 0;
955 var filterAcknowledgedStud = false;
956 var filterColor = "none";
957 var filterGender = "none";
958 var filterStartingLetter = "none";
959 var clickedButtonId = "";
960 var clickedButtonResetValue = "";
961
962 $(function () {
963 var fieldsetSelector
964 $('fieldset[data-checkbox-list]')
965 .innovadisCheckboxList()
966 .on('changed', function (event, hasChecked) {
967 $('input[name=DatabaseSearchForm_DatabaseForm_Key]').prop('required', !hasChecked);
968 });
969 });
970
971 $(document).ready(function () {
972
973 @if (searchMyHorsesOnly) {
974 <text>
975 $("#refresh-list-link").off("click").on("click", function (e) {
976 e.preventDefault();
977 $("#horse-search-search").addClass("hidden");
978 $("#horse-search-results").addClass("hidden");
979 $("#refreshcontainer").removeClass("hidden");
980 var refreshHorse = "/kwpnwebapi/horses/refreshmyhorses/@culture";
981 $.ajax(refreshHorse).always(function () {
982 window.location.href = "@System.Web.HttpContext.Current.Request.RawUrl";
983 });
984 return false;
985 });
986 </text>
987 }
988
989 // show initial form
990 ShowHideForm();
991
992 // change form
993 $("input[name=SearchTypeSelector]").change(function () {
994 ShowHideForm();
995 });
996
997 $("#search-again").click(function () {
998 $(".horse-search-form").addClass("hidden"); // hide all form fields
999 $("#horse-search-search").removeClass("hidden"); // show form type options
1000 $("#horse-search-results").addClass("hidden"); // hide results
1001 $("input[name=SearchTypeSelector]").prop('checked', false);
1002 ResetSearchFields() // clear previous search values
1003 ResetFilters(); // reset filter + sort options to default
1004
1005 // pre-select free search option
1006 $("#SearchTypeSelector_FreeSearch").prop("checked", true);
1007 $("#DatabaseSearchForm_FreeSearch").removeClass("hidden");
1008
1009 return false;
1010 });
1011
1012 $("#resetFilterButton")
1013 .click(function () {
1014 ResetFilters();
1015 SearchHorses();
1016 });
1017
1018 // force orange borders
1019 $(".hide-hints").change(function () {
1020 $(this).removeClass("hide-hints");
1021 });
1022
1023 // form submits
1024 $("#DatabaseSearchForm_LifeNumber_Submit").click(function () {
1025
1026 $("#DatabaseSearchForm_LifeNumber .hide-hints").removeClass("hide-hints");
1027
1028 if ($("#DatabaseSearchForm_LifeNumberForm")[0].checkValidity()) {
1029
1030 var lifeNumber = $("#DatabaseSearchForm_LifeNumber_LifeNumber").val();
1031
1032 // show loading icon in buttom
1033 var lifeNumberSubmitButtonText = $("#DatabaseSearchForm_LifeNumber_Submit").html();
1034 $("#DatabaseSearchForm_LifeNumber_Submit").html(lifeNumberSubmitButtonText + " <i class='fa fa-spinner fa-spin'></i>");
1035 clickedButtonId = "DatabaseSearchForm_LifeNumber_Submit";
1036 clickedButtonResetValue = lifeNumberSubmitButtonText;
1037
1038 // disable button
1039 $("#DatabaseSearchForm_LifeNumber_Submit").prop('disabled', true);
1040
1041 //set 'searched for' value
1042 $("#searched-for").html(lifeNumber);
1043
1044 //kwpnwebapi/horses/search/{culture}/{chipOrLifeNumber}
1045 searchApi = "/kwpnwebapi/horses/search/@GetGlobalValue("Global:Area.LongLang")/" + lifeNumber;
1046
1047 SearchHorses();
1048
1049 // no filter
1050 $("#result-filter-reset").hide();
1051 $("#yearOfApproval").hide();
1052 $("#approvedStud").hide();
1053 $("#gender-filter").show();
1054 $("#startingletter-filter").hide();
1055
1056 //seo
1057 SEO.trackPageView("@string.Format("{0}/{1}/{2}/",
1058 seoPage,
1059 Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode().ToLower(),
1060 Translate("DatabaseSearchForm_ChipLifeNumber", "Chip- or Life number").Replace(" ", "-").UrlEncode().ToLower())" + lifeNumber.toLowerCase());
1061
1062 return false;
1063 }
1064 });
1065
1066 $("#DatabaseSearchForm_Pedigree_Submit").click(function () {
1067
1068 $("#DatabaseSearchForm_Pedigree .hide-hints").removeClass("hide-hints");
1069
1070 if ($("#DatabaseSearchForm_PedigreeForm")[0].checkValidity()) {
1071
1072 // show loading icon in buttom
1073 var pedigreeSubmitButtonText = $("#DatabaseSearchForm_Pedigree_Submit").html();
1074 $("#DatabaseSearchForm_Pedigree_Submit").html(pedigreeSubmitButtonText + " <i class='fa fa-spinner fa-spin'></i>");
1075 clickedButtonId = "DatabaseSearchForm_Pedigree_Submit";
1076 clickedButtonResetValue = pedigreeSubmitButtonText;
1077
1078 // disable button
1079 $("#DatabaseSearchForm_Pedigree_Submit").prop('disabled', true);
1080
1081 // get values
1082 var year = parseInt($("#DatabaseSearchForm_PedigreeForm_YearOfBirth").val());
1083 var father = $("#DatabaseSearchForm_PedigreeForm_Father").val();
1084 var mothersFather = $("#DatabaseSearchForm_PedigreeForm_MothersFather").val();
1085
1086 // set 'searched for' value
1087 var pedigree = father + " x " + mothersFather;
1088 $("#searched-for").html(pedigree);
1089
1090
1091 // set search api url
1092 searchApi = "/kwpnwebapi/horses/search/@GetGlobalValue("Global:Area.LongLang")/" + father + "/" + mothersFather + "/" + year + "/" + $("#DatabaseSearchForm_PedigreeForm_ShowDeceasedHorses").is(':checked');
1093
1094 // search
1095 SearchHorses();
1096
1097 $("#yearOfApproval").hide();
1098 $("#approvedStud").hide();
1099 $("#gender-filter").show();
1100 $("#startingletter-filter").hide();
1101
1102 //seo
1103 SEO.trackPageView("@string.Format("{0}/{1}/{2}/",
1104 seoPage,
1105 Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode().ToLower(),
1106 Translate("DatabaseSearchForm_Pedigree", "Pedigree").Replace(" ", "-").UrlEncode().ToLower())" + father.toLowerCase() + "/" + mothersFather.toLowerCase() + "/" + year.toString().toLowerCase() + "/" + $("#DatabaseSearchForm_PedigreeForm_ShowDeceasedHorses").is(':checked'));
1107
1108
1109 return false;
1110 }
1111 });
1112
1113 $("#DatabaseSearchForm_FreeSearch_Submit").click(function () {
1114
1115 $("#DatabaseSearchForm_FreeSearch .hide-hints").removeClass("hide-hints");
1116
1117 if ($("#DatabaseSearchForm_FreeSearchForm")[0].checkValidity()) {
1118
1119 // show loading icon in buttom
1120 var freeSearchSubmitButtonText = $("#DatabaseSearchForm_FreeSearch_Submit").html();
1121 $("#DatabaseSearchForm_FreeSearch_Submit").html(freeSearchSubmitButtonText + " <i class='fa fa-spinner fa-spin'></i>");
1122 clickedButtonId = "DatabaseSearchForm_FreeSearch_Submit";
1123 clickedButtonResetValue = freeSearchSubmitButtonText;
1124
1125 // disable button
1126 $("#DatabaseSearchForm_FreeSearch_Submit").prop('disabled', true);
1127
1128 // get values
1129 var breedingDirection = [];
1130 breedingDirection.push("Dummy"); //prevent empty string
1131 if ($("#DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Dressuur").is(':checked')) {
1132 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000001.ToString("G")");
1133 }
1134 if ($("#DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard").is(':checked')) {
1135 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000002.ToString("G")");
1136 }
1137 if ($("#DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Springen").is(':checked')) {
1138 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000006.ToString("G")");
1139 }
1140 if ($("#DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard").is(':checked')) {
1141 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000007.ToString("G")");
1142 }
1143 if ($("#DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard").is(':checked')) {
1144 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000005.ToString("G")");
1145 }
1146 var year = parseInt($("#DatabaseSearchForm_FreeSearchForm_YearOfBirth").val());
1147
1148
1149 $("#searched-for").html($("#DatabaseSearchForm_FreeSearchForm_Key").val());
1150
1151 // set search api url
1152 searchApi = "/kwpnwebapi/horses/searchtext/@GetGlobalValue("Global:Area.LongLang")/false/" + $("#DatabaseSearchForm_FreeSearchForm_Key").val() + "/" + breedingDirection + "/" + year + "/" + $("#DatabaseSearchForm_FreeSearchForm_ShowDeceasedHorses").is(':checked') + "/false";
1153
1154 // search
1155 SearchHorses();
1156 $("#yearOfApproval").hide();
1157 $("#approvedStud").hide();
1158 $("#gender-filter").show();
1159 $("#startingletter-filter").hide();
1160
1161 //seo
1162 SEO.trackPageView("@string.Format("{0}/{1}/{2}/",
1163 seoPage,
1164 Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode().ToLower(),
1165 Translate("DatabaseSearchForm_FreeSearch", "Free search / studs").Replace(" ", "-").UrlEncode().ToLower())" + $("#DatabaseSearchForm_FreeSearchForm_Key").val().toLowerCase() + "/" + breedingDirection + "/" + year.toString().toLowerCase() + "/" + $("#DatabaseSearchForm_FreeSearchForm_ShowDeceasedHorses").is(':checked'));
1166
1167 return false;
1168 }
1169 });
1170
1171 $("#DatabaseSearchForm_Database_Submit").click(function () {
1172
1173 $("#DatabaseSearchForm_Database .hide-hints").removeClass("hide-hints");
1174
1175 if ($("#DatabaseSearchForm_DatabaseForm")[0].checkValidity()) {
1176
1177 // show loading icon in buttom
1178 var databaseSubmitButtonText = $("#DatabaseSearchForm_Database_Submit").html();
1179 $("#DatabaseSearchForm_Database_Submit").html(databaseSubmitButtonText + " <i class='fa fa-spinner fa-spin'></i>");
1180 clickedButtonId = "DatabaseSearchForm_Database_Submit";
1181 clickedButtonResetValue = databaseSubmitButtonText;
1182
1183 // disable button
1184 $("#DatabaseSearchForm_Database_Submit").prop('disabled', true);
1185
1186 //get 'searched for' value
1187 var key = $("#DatabaseSearchForm_DatabaseForm_Key").val();
1188
1189 var searchedFor = key;
1190 if (key === "") {
1191 key = "Dummy"; //prevent empty string
1192 }
1193 var noKeyword = (searchedFor === "" || searchedFor.toLowerCase() === "dummy");
1194
1195 // get values
1196 var breedingDirection = [];
1197 if ($("#DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Dressuur").is(':checked')) {
1198 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000001.ToString("G")");
1199 if (noKeyword) {
1200 // no search term, show searched breeding direction as 'searched for'
1201 if (searchedFor !== "") { searchedFor += ", "; }
1202 searchedFor += "@Translate("Dressage", "Dressage")";
1203 }
1204 }
1205 if ($("#DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard").is(':checked')) {
1206 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000002.ToString("G")");
1207 if (noKeyword) {
1208 // no search term, show searched breeding direction as 'searched for'
1209 if (searchedFor !== "") { searchedFor += ", "; }
1210 searchedFor += "@Translate("Geldinghorse", "Geldinghorse")";
1211 }
1212 }
1213 if ($("#DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Springen").is(':checked')) {
1214 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000006.ToString("G")");
1215 if (noKeyword) {
1216 // no search term, show searched breeding direction as 'searched for'
1217 if (searchedFor !== "") { searchedFor += ", "; }
1218 searchedFor += "@Translate("Jumping", "Jumping")";
1219 }
1220 }
1221 if ($("#DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard").is(':checked')) {
1222 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000007.ToString("G")");
1223 if (noKeyword) {
1224 // no search term, show searched breeding direction as 'searched for'
1225 if (searchedFor !== "") { searchedFor += ", "; }
1226 searchedFor += "@Translate("HarnessHorse", "Harness horse")";
1227 }
1228 }
1229 if ($("#DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard").is(':checked')) {
1230 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000005.ToString("G")");
1231 if (noKeyword) {
1232 // no search term, show searched breeding direction as 'searched for'
1233 if (searchedFor !== "") {
1234 searchedFor += ", ";
1235 }
1236 searchedFor += "@Translate("RidingHorse", "Riding horse")";
1237 }
1238 }
1239 if (breedingDirection.length <= 0) {
1240 breedingDirection.push("Dummy"); //prevent empty string
1241 }
1242
1243 var year = parseInt($("#DatabaseSearchForm_DatabaseForm_YearOfBirth").val());
1244
1245 // set 'searched for' value
1246 $("#searched-for").html(searchedFor);
1247
1248 // set search api url
1249 searchApi = "/kwpnwebapi/horses/searchtext/@GetGlobalValue("Global:Area.LongLang")/true/" + key + "/" + breedingDirection + "/" + year + "/" + $("#DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses").is(':checked') + "/false";
1250
1251 // search
1252 SearchHorses();
1253 $("#yearOfApproval").show();
1254 $("#approvedStud").show();
1255 $("#gender-filter").hide();
1256 $("#startingletter-filter").show();
1257
1258 //seo
1259 SEO.trackPageView("@string.Format("{0}/{1}/{2}/",
1260 seoPage,
1261 Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode().ToLower(),
1262 Translate("DatabaseSearchForm_Database", "Stud database").Replace(" ", "-").UrlEncode().ToLower())" + key.toLowerCase() + "/" + breedingDirection + "/" + year.toString().toLowerCase() + "/" + $("#DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses").is(':checked'));
1263
1264 return false;
1265 }
1266 });
1267
1268 $("#btn-all-studs").click(function () {
1269
1270 // show loading icon in buttom
1271 var allStudsSubmitButtonText = $("#btn-all-studs").html();
1272 $("#btn-all-studs").html(allStudsSubmitButtonText + " <i class='fa fa-spinner fa-spin'></i>");
1273 clickedButtonId = "btn-all-studs";
1274 clickedButtonResetValue = allStudsSubmitButtonText;
1275
1276 // set 'searched for' value
1277 $("#searched-for").html('@Translate("AllApprovedStuds", "All approved studs")');
1278
1279 // set search api url
1280 searchApi = "/kwpnwebapi/horses/searchtext/@GetGlobalValue("Global:Area.LongLang")/true/Dummy/Dummy/0/" + $("#DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses").is(':checked') + "/true";
1281
1282 // search
1283 SearchHorses();
1284 $("#yearOfApproval").show();
1285 $("#approvedStud").show();
1286 $("#gender-filter").hide();
1287 $("#startingletter-filter").show();
1288
1289 //seo
1290 SEO.trackPageView("@string.Format("{0}/{1}/{2}/{3}",
1291 seoPage,
1292 Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode().ToLower(),
1293 Translate("DatabaseSearchForm_Database", "Stud database").Replace(" ", "-").UrlEncode().ToLower(),
1294 Translate("AllApprovedStuds", "All approved studs").Replace(" ", "-").UrlEncode().ToLower())");
1295
1296
1297 return false;
1298 });
1299
1300 $("#DatabaseSearchForm_BreedingValues_Submit").click(function () {
1301 $("#DatabaseSearchForm_BreedingValues .hide-hints").removeClass("hide-hints");
1302 if ($("#DatabaseSearchForm_BreedingValuesForm")[0].checkValidity()) {
1303
1304 // show loading icon in buttom
1305 var breedingValuesSubmitButtonText = $("#DatabaseSearchForm_BreedingValues_Submit").html();
1306 $("#DatabaseSearchForm_BreedingValues_Submit").html(breedingValuesSubmitButtonText + " <i class='fa fa-spinner fa-spin'></i>");
1307 clickedButtonId = "DatabaseSearchForm_BreedingValues_Submit";
1308 clickedButtonResetValue = breedingValuesSubmitButtonText;
1309
1310 // disable button
1311 $("#DatabaseSearchForm_BreedingValues_Submit").prop('disabled', true);
1312
1313 var selectedBreedingDirection = $("#DatabaseSearchForm_BreedingValues_BreedingDirection").val();
1314
1315 //set 'searched for' value
1316 $("#searched-for").html('@Translate("DatabaseSearchForm_BreedingValues", "Breeding values")');
1317
1318 // fill json object to store in local storage for re-search functionality
1319 var myBreedingValuesSearchObject = new Object();
1320 myBreedingValuesSearchObject.breedingDirection = selectedBreedingDirection;
1321 myBreedingValuesSearchObject.breedingValues = [];
1322
1323 // put user values into semi-colon seperated string
1324 var stringPramaterArray = [];
1325 $(".form-inline", "#list-breeding-values").each(function () {
1326 var inputField = $(this).find("input[type=number]");
1327 var code = inputField.attr("id");
1328 var value = inputField.val();
1329 var predicate = $(this).find("select").val();
1330 stringPramaterArray = AddToStringPramater(stringPramaterArray, code, value, predicate);
1331
1332 // fill json object to store in local storage for re-search functionality
1333 if (!isNaN(parseInt(value))) { myBreedingValuesSearchObject.breedingValues.push(code + "," + predicate + "," + value); }
1334 });
1335
1336 if (stringPramaterArray.length > 0) {
1337
1338 var stringParameter = stringPramaterArray.join(",");
1339
1340 //kwpnwebapi/horses/searchbreedingvalues/{culture}/{breedingDirection}/{params}
1341 searchApi = "/kwpnwebapi/horses/searchbreedingvalues/@GetGlobalValue("Global:Area.LongLang")/" + selectedBreedingDirection + "/" + stringParameter;
1342
1343 // fill local storage for refilling values on re-search
1344 var localStorageId = "lastSubmittedBreedingValues";
1345 localStorage.removeItem(localStorageId); // remove previous search
1346 localStorage.setItem(localStorageId, JSON.stringify(myBreedingValuesSearchObject)); // add current search
1347
1348 // search
1349 SearchHorses();
1350 }
1351
1352 // no filter
1353 $("#result-filter-reset").hide();
1354 $("#yearOfApproval").show();
1355 $("#approvedStud").show();
1356 $("#gender-filter").hide();
1357 $("#startingletter-filter").show();
1358
1359 //seo
1360 SEO.trackPageView("@string.Format("{0}/{1}/{2}/",
1361 seoPage,
1362 Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode().ToLower(),
1363 Translate("DatabaseSearchForm_BreedingValues", "Breeding values").Replace(" ", "-").UrlEncode().ToLower())" + selectedBreedingDirection + "/" + stringParameter.toLowerCase());
1364
1365 return false;
1366 }
1367 });
1368
1369 function AddToStringPramater(currentArray, code, value, predicate) {
1370 var result = currentArray;
1371 var val = parseInt(value);
1372
1373 if (!isNaN(val)) {
1374 var stringParameter = code;
1375 switch (predicate) {
1376 case "gt": stringParameter += ">"; break;
1377 case "lt": stringParameter += "<"; break;
1378 case "et": stringParameter += "="; break;
1379 }
1380 stringParameter += val;
1381 result.push(stringParameter);
1382 }
1383
1384 return result;
1385 }
1386
1387
1388 function SearchHorses() {
1389
1390 // horse action passed through
1391 var action = "@action";
1392 if (action === "") {
1393 action = "none";
1394 }
1395
1396 var apiUrl = searchApi + "/" + filterYear + "/" + filterAcknowledgedStud + "/" + filterColor + "/" + filterGender + "/" + filterStartingLetter + "/" + sortOn + "/" + sortBy + "/" + action + "/" + $("#horsesFilter").val();
1397
1398 $.getJSON(apiUrl).done(function (result, status, metaData) {
1399 HandleSearchResult(result);
1400 }).fail(function (jqxhr, textStatus, error) {
1401 var err = textStatus + ", " + error;
1402
1403 console.error("Request SearchHorses Failed: " + err);
1404 }).always(function () {
1405 if (clickedButtonId != "") {
1406 $("#" + clickedButtonId).html(clickedButtonResetValue); // remove loading icon from button
1407 $("#" + clickedButtonId).prop('disabled', false); // enable button
1408 }
1409 $("#horse-search-search").addClass("hidden"); // hide form
1410 $("#horse-search-results").removeClass("hidden"); // show results
1411 });
1412 }
1413
1414 function HandleSearchResult(result) {
1415 if (result.Count != 0 && result.Count != -1) {
1416 var resultCount = result.Count;
1417 if (resultCount < 0) {
1418 resultCount = -resultCount; // too many results, count is made negative, make positive for display
1419 $("#refine").removeClass("hidden"); // show refine your search text
1420 }
1421 else {
1422 $("#refine").addClass("hidden"); // hide refine your search text
1423 }
1424 var counterText = $("#search-result-count").attr("data-default").replace('0', resultCount);
1425 $("#noResults").addClass("hidden"); // hide no results text
1426 $("#search-result-count").html(counterText); // SET result count value
1427 if (result.Count > 100) {
1428 $("#tooManyResults").removeClass("hidden"); // SHOW too many results text
1429 $("#horseListCounter2").html(result.Count); // SET too many results text number values
1430 } else {
1431 $("#tooManyResults").addClass("hidden"); // hide too many results text
1432 }
1433 FillTable(result.Top100); // Fill horse output
1434 ShowFilter(result.Colors, result.Genders); // SHOW filter options
1435 ShowApprovedCheckBoxInFilter(result.Top100); // show/ hide approved filter option
1436
1437 $("#horsesTable").removeClass("hidden"); // SHOW horse output
1438 } else if (result.Count < 0) { // more than max returns a -1 value
1439 ShowRefineSearch();
1440 } else {
1441 $("#search-result-count").html($("#search-result-count").attr("data-default"));
1442 ShowNoData();
1443 }
1444 }
1445
1446 function ShowApprovedCheckBoxInFilter(values) {
1447 //var approvedStudFound = false;
1448 //for (i = 0; i < values.length; i++) {
1449 // if (values[i].IsApprovedStud === true) {
1450 // approvedStudFound = true;
1451 // }
1452 //}
1453 //if (approvedStudFound === false) {
1454 // $('#approvedStud').css('display', 'none');
1455 //}
1456 }
1457
1458 function ShowFilter(colorList, genderList) {
1459
1460 // add color filter
1461 var colorFilter = $("#color-filter");
1462 colorFilter.addClass("hidden");
1463 var colorFilterItems = $("#color-filter-items", colorFilter);
1464 colorFilterItems.empty(); // clear existing color filter values
1465 if (colorList.length > 0) {
1466 for (i = 0; i < colorList.length; i++) {
1467 if (colorList.length > 0 && i == 5) {
1468 // add collapse container for more than 5 color items
1469 var collapseContainer = "<a href=\"javascript:void(0);\" id=\"color-filter-items-more-link\">@Translate("More", "more")</a><div id=\"color-filter-items-more\" class=\"hidden\"></div>";
1470 colorFilterItems.append(collapseContainer);
1471 colorFilterItems = $("#color-filter-items-more", colorFilter);
1472 }
1473 var colorValue = colorList[i].Name;
1474 var colorId = colorValue.replace(/ /g, "-");
1475 var colorSelected = "";
1476 if (colorList[i].Selected) colorSelected = "checked";
1477 var colorSelector = "<input type=\"checkbox\" name=\"horseFilterByColor\" id=\"horseFilterByColor_" + colorId + "\" value=\"" + colorValue + "\" " + colorSelected + " /> <label for=\"horseFilterByColor_" + colorId + "\" class=\"normal capitalize\">" + colorValue.toUpperCase() + "</label><br/>";
1478 colorFilterItems.append(colorSelector);
1479 }
1480 colorFilter.removeClass("hidden");
1481 }
1482 $("#color-filter-items-more-link").click(function () {
1483 $("#color-filter-items-more").removeClass("hidden");
1484 $(this).remove();
1485 });
1486
1487 // add gender filter
1488 var genderFilter = $("#gender-filter");
1489 genderFilter.addClass("hidden");
1490 var genderFilterItems = $("#gender-filter-items", genderFilter);
1491 genderFilterItems.empty();
1492 if (genderList.length > 0) {
1493 for (i = 0; i < genderList.length; i++) {
1494 var genderValue = genderList[i].Name;
1495 var genderId = genderValue.replace(/ /g, "-");
1496 var genderSelected = "";
1497 if (genderList[i].Selected) genderSelected = "checked";
1498
1499 var genderLabel = genderValue;
1500 switch (genderLabel) {
1501 case "HENGST": genderLabel = '@Translate("HENGST").ToUpper()';
1502 break;
1503 case "RUIN": genderLabel = '@Translate("RUIN").ToUpper()';
1504 break;
1505 case "MERRIE": genderLabel = '@Translate("MERRIE").ToUpper()';
1506 break;
1507 default:
1508 break;
1509 }
1510
1511 var genderSelector = "<input type=\"checkbox\" name=\"genderFilterByGender\" id=\"genderFilterByGender_" + genderId + "\" value=\"" + genderValue + "\" " + genderSelected + " /> <label for=\"genderFilterByGender_" + genderId + "\" class=\"normal capitalize\">" + genderLabel + "</label><br/>";
1512 genderFilterItems.append(genderSelector);
1513 }
1514 genderFilter.removeClass("hidden");
1515 }
1516
1517 $("input[name=horseFilterByColor]").change(function () {
1518 var selectedColors = "";
1519 $.each($("input[name=horseFilterByColor]:checked"), function () {
1520 if (selectedColors !== "") selectedColors += ",";
1521 selectedColors += $(this).val();
1522 });
1523 if (selectedColors === "") selectedColors = "none";
1524 filterColor = selectedColors;
1525 SearchHorses();
1526 });
1527
1528
1529 $("input[name=genderFilterByGender]").change(function () {
1530 var selectedGenders = "";
1531 $.each($("input[name=genderFilterByGender]:checked"), function () {
1532 if (selectedGenders !== "") selectedGenders += ",";
1533 selectedGenders += $(this).val();
1534 });
1535 if (selectedGenders === "") selectedGenders = "none";
1536 filterGender = selectedGenders;
1537 SearchHorses();
1538 });
1539
1540 $("#result-filter").removeClass("hidden"); // SHOW filter options
1541
1542 // filter reset
1543 $("#result-filter-reset").show();
1544 }
1545
1546 function ShowNoData() {
1547 $("#tooManyResults").addClass("hidden"); // hide too many results text
1548 $("#result-filter").addClass("hidden"); // hide filter options
1549 $("#refine").addClass("hidden"); // hide refine your search text
1550 $("#horsesTable").addClass("hidden"); // hide horse output
1551 $("#noResults").removeClass("hidden"); // SHOW no results text
1552 $("#search-result-count").html($("#search-result-count").html()); // SET result count value
1553 $('#horsesTable tr:gt(0)').remove();
1554 $("input[name='SearchTypeSelector']").prop('checked', false); // reset search type radio
1555 $("#horseSearchResults").removeClass("hidden");
1556 }
1557
1558 function ShowRefineSearch() {
1559 $("#noResults").addClass("hidden"); // hide no results text
1560 $("#tooManyResults").addClass("hidden"); // hide too many results text
1561 $("#result-filter").addClass("hidden"); // hide filter options
1562 $("#horsesTable").addClass("hidden"); // hide horse output
1563 $("#refine").removeClass("hidden"); // SHOW refine your search text
1564 $("#search-result-count").html("---"); // SET result count value
1565 $("input[name='SearchTypeSelector']").prop('checked', false); // reset search type radio
1566 $("#horseSearchResults").removeClass("hidden");
1567 }
1568
1569 function FillTable(data) {
1570 $('#horsesTable th.sorted').removeClass("sorted").find('i').removeClass("fa-chevron-circle-down fa-chevron-circle-up");
1571 var directionClass = "fa-chevron-circle-down";
1572 if (sortBy === "Desc") {
1573 directionClass = "fa-chevron-circle-up";
1574 }
1575 $('#horsesTable th[data-sortOn="' + sortOn + '"]').addClass("sorted").find('i').addClass(directionClass);
1576 $('#horsesTable tr:gt(0)').remove();
1577 @if (searchMyHorsesOnly)
1578 {
1579 <text>
1580 $("#listSelectHorseTemplate").tmpl(data).appendTo("#horsesTable");
1581
1582 // add row click event
1583 $(".horseRow.clickable").click(function () {
1584 var horseCode = $(this).attr("data-horseCode");
1585 @if (isResearchAdd)
1586 {
1587 // add to list, then go to page
1588 <text>
1589 var addHorseUrl = "/kwpnwebapi/forms/research/upserthorse/" + horseCode;
1590 $.getJSON(addHorseUrl).fail(function (jqxhr, textStatus, error) {
1591 var err = textStatus + ", " + error;
1592 console.error("Request AddHorse Failed: " + err);
1593 }).always(function () {
1594 document.location.href = '@horsePageUrl' + horseCode;
1595 });
1596 </text>
1597 }
1598 else
1599 {
1600 // go to page
1601 <text>document.location.href = '@horsePageUrl' + horseCode;</text>
1602 }
1603 });
1604
1605 </text>
1606 }
1607 else
1608 {
1609 <text>
1610 $("#listHorseTemplate").tmpl(data).appendTo("#horsesTable");
1611 </text>
1612 }
1613 $(".horse-search-form").addClass("hidden");
1614 $("#horseSearchResults").removeClass("hidden");
1615 $("input[name='SearchTypeSelector']").prop('checked', false);
1616
1617 // tooltip initializer
1618 $("[data-toggle='tooltip']").tooltip();
1619
1620 }
1621
1622 function ResetFilters() {
1623 sortOn = "Weight";
1624 sortBy = "Asc";
1625 filterYear = 0;
1626 filterAcknowledgedStud = false;
1627 filterColor = "none";
1628 filterGender = "none";
1629 filterStartingLetter = "none";
1630 $("#horseFilterByYearOfApproval").val("");
1631 $("#horseFilterByAcknowledged").prop('checked', false);
1632 $("#horsesFilter").val("");
1633 $("#horseFilterByStartingLetter").val("none");
1634
1635 @if (action != null && action.Equals(Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"), StringComparison.InvariantCultureIgnoreCase)) {
1636 <text>
1637 filterGender = "@Kwpn.Models.Enumerations.Gender.MERRIE.ToString("g")";
1638 </text>
1639 }
1640
1641 $('fieldset[data-checkbox-list]').trigger("reset");
1642 }
1643
1644 // show form for seleted search type and hide others
1645 function ShowHideForm() {
1646
1647 $("#horseSearchResults").addClass("hidden");
1648
1649 // hide 'fokwaarden' additional text; https://innovadis.atlassian.net/browse/KWPN-1824
1650 $("#breedingValuesAdditionalText").addClass("hidden");
1651
1652 //hide forms and show selected
1653 var selectedSearchType = $("input[name=SearchTypeSelector]:checked").val();
1654 $(".horse-search-form").each(function () {
1655 $(this).addClass("hidden");
1656 });
1657
1658 $("#DatabaseSearchForm_" + selectedSearchType).removeClass("hidden");
1659
1660 // get breeding values
1661 ClearSearchBreedingValues();
1662
1663 $("#DatabaseSearchForm_BreedingValues_Submit").prop('disabled', true); // gets enabled afted breeding direction selection and loading of values
1664 if (selectedSearchType == "BreedingValues") {
1665
1666 // add 'fokwaarden' additional text; https://innovadis.atlassian.net/browse/KWPN-1824
1667 $("#breedingValuesAdditionalText").removeClass("hidden");
1668
1669 // add functionality to breeding direction selection
1670 $("#DatabaseSearchForm_BreedingValues_BreedingDirection").change(function () {
1671 $("#DatabaseSearchForm_BreedingValuesForm_ReSearch").addClass("hidden");
1672 GetSearchBreedingValues(false);
1673 });
1674
1675 // check if a previous breeding value search has been done to offer a change in those settings
1676 var localStorageId = "lastSubmittedBreedingValues";
1677 var lastSubmittedBreedingValues = localStorage.getItem(localStorageId);
1678 if (lastSubmittedBreedingValues != null) {
1679 $("#DatabaseSearchForm_BreedingValuesForm_ReSearch").removeClass("hidden");
1680 }
1681 }
1682
1683 //place asterisks after required labels
1684 $('input,textarea,select')
1685 .filter('[required]:visible')
1686 .closest(".form-inline")
1687 .children("label")
1688 .children("i:not(.fixed)")
1689 .remove()
1690 .end();
1691
1692 $('#DatabaseSearchForm_' + selectedSearchType + ' input, #DatabaseSearchForm_' + selectedSearchType + ' textarea, #DatabaseSearchForm_' + selectedSearchType + ' select')
1693 .filter('[required]:visible')
1694 .closest(".form-inline")
1695 .children("label")
1696 .append("<i class=\"fa fa-asterisk\" aria-hidden=\"true\"></i>");
1697
1698
1699 }
1700
1701
1702
1703 $("#horsesFilter").change(function () {
1704 SearchHorses();
1705 });
1706
1707 $("#horsesFilter").keypress(function (e) {
1708 var code = e.keyCode || e.which;
1709 if (code === 13) {
1710 // 13 = enter
1711 SearchHorses();
1712 e.preventDefault();
1713 return false;
1714 }
1715 return true;
1716 });
1717
1718 $("#horseFilterByYearOfApproval")
1719 .change(function () {
1720 filterYear = parseInt($("#horseFilterByYearOfApproval").val());
1721 if (filterYear === NaN) filterYear = 0;
1722 SearchHorses();
1723 });
1724
1725 $("#horseFilterByStartingLetter")
1726 .change(function () {
1727 filterStartingLetter = $("#horseFilterByStartingLetter").val();
1728 SearchHorses();
1729 });
1730
1731 $("#horseFilterByAcknowledged")
1732 .change(function () {
1733 filterAcknowledgedStud = $("#horseFilterByAcknowledged").is(":checked");
1734 SearchHorses();
1735 });
1736
1737 $("#horsesTable th").click(function () {
1738 if (sortOn === $(this).data("sorton")) {
1739 //reverse direction when same sortOn click again
1740 if ($(this).data("sortby") === "Asc") {
1741 $(this).data("sortby", "Desc")
1742 } else {
1743 $(this).data("sortby", "Asc")
1744 }
1745 }
1746 sortOn = $(this).data("sorton");
1747 sortBy = $(this).data("sortby");
1748 SearchHorses();
1749 });
1750
1751
1752
1753 @if (searchMyHorsesOnly)
1754 {
1755 bool showDeadHorses = false;
1756 if (isResearchAdd)
1757 {
1758 showDeadHorses = true;
1759 }
1760
1761 var genderFilter = action.Equals(Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"), StringComparison.InvariantCultureIgnoreCase) ? Kwpn.Models.Enumerations.Gender.MERRIE.ToString("g") : "none";
1762
1763 <text>
1764 filterGender = "@genderFilter";
1765 searchApi = "/kwpnwebapi/horses/getmyhorses/@GetGlobalValue("Global:Area.LongLang")/@showDeadHorses.ToString()";
1766 SearchHorses();
1767 </text>
1768 }
1769
1770
1771 function ResetSearchFields() {
1772 ResetLifeNumberSearchFields();
1773 ResetPedigreeSearchFields();
1774 ResetFreeSearchSearchFields();
1775 ResetDatabaseSearchFields();
1776 ResetBreedingValueseSearchFields();
1777 }
1778
1779 function ResetLifeNumberSearchFields() {
1780 $("#DatabaseSearchForm_LifeNumber_LifeNumber").val("");
1781 }
1782
1783 function ResetPedigreeSearchFields() {
1784 $("#DatabaseSearchForm_PedigreeForm_Father").val("");
1785 $("#DatabaseSearchForm_PedigreeForm_MothersFather").val("");
1786 $("#DatabaseSearchForm_PedigreeForm_YearOfBirth").val("");
1787 $("#DatabaseSearchForm_PedigreeForm_ShowDeceasedHorses").prop('checked', false);
1788 }
1789 function ResetFreeSearchSearchFields() {
1790 $("#DatabaseSearchForm_FreeSearchForm_Key").val("");
1791 $("input[name=DatabaseSearchForm_FreeSearchForm_BreedingDirection]").prop("checked", false);
1792 $("#DatabaseSearchForm_FreeSearchForm_ShowDeceasedHorses").prop("checked", false);
1793 $("#DatabaseSearchForm_FreeSearchForm_YearOfBirth").val("");
1794 }
1795
1796 function ResetDatabaseSearchFields() {
1797 $("#DatabaseSearchForm_DatabaseForm_Key").val("");
1798 $("input[name=DatabaseSearchForm_DatabaseForm_BreedingDirection]").prop("checked", false);
1799 $("#DatabaseSearchForm_DatabaseForm_YearOfBirth").val("");
1800 $("#DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses").prop("checked", false);
1801 }
1802
1803 function ResetBreedingValueseSearchFields() {
1804 $("#DatabaseSearchForm_BreedingValues_BreedingDirection").val("");
1805 $("#list-breeding-values").html("");
1806 }
1807
1808 function ClearSearchBreedingValues() {
1809 var valuesContainer = $("#list-breeding-values")[0];
1810 if (valuesContainer) {
1811 $("#list-breeding-values").html("");
1812 }
1813 $("#DatabaseSearchForm_BreedingValuesForm_ReSearch").addClass("hidden");
1814 }
1815
1816 function GetSearchBreedingValues(refillPreviousValues) {
1817
1818 var valuesContainer = $("#list-breeding-values");
1819 var selectedBreedingDirectionCode = $("#DatabaseSearchForm_BreedingValues_BreedingDirection").val();
1820
1821 if (selectedBreedingDirectionCode == "") {
1822 valuesContainer.html("");
1823 $("#DatabaseSearchForm_BreedingValues_Submit").prop("disabled", true);
1824 } else {
1825 valuesContainer.html("<i class=\"fa fa-spinner fa-spin\"></i>");
1826
1827 var valuesAPiUrl = "/kwpnwebapi/horses/searchvaluesfordirection/@culture/" + selectedBreedingDirectionCode;
1828
1829 $.getJSON(valuesAPiUrl).done(function (data) {
1830 if (data != null && data.length > 0) {
1831 valuesContainer.html(""); // remove spinner
1832 $("#valuesTemplate").tmpl(data).appendTo("#list-breeding-values");
1833 $("input", "#list-breeding-values").numeric(); // only number input
1834 $("#DatabaseSearchForm_BreedingValues_Submit").prop('disabled', false); // enable submit button
1835
1836 if (refillPreviousValues) {
1837
1838 var localStorageId = "lastSubmittedBreedingValues";
1839 var lastSubmittedBreedingValues = localStorage.getItem(localStorageId);
1840 if (lastSubmittedBreedingValues != null) {
1841
1842 //parse to json
1843 lastSubmitted = JSON.parse(lastSubmittedBreedingValues);
1844
1845 var breedingValues = lastSubmitted.breedingValues;
1846
1847 if (breedingValues != null && breedingValues.length > 0) {
1848 $.each(breedingValues, function (i, item) {
1849
1850 var itemValues = item.split(",");
1851 if (itemValues.length == 3) {
1852
1853 var breedingValueCode = itemValues[0];
1854 var predicate = itemValues[1];
1855 var value = itemValues[2];
1856
1857 // set predicate field
1858 $("select[data-predicate='" + breedingValueCode + "']", "#list-breeding-values").val(predicate);
1859
1860 // set values field
1861 $("#" + breedingValueCode, "#list-breeding-values").val(value);
1862 }
1863 });
1864 }
1865 }
1866 }
1867
1868 // toggler initializer
1869 $(".toggler", "#list-breeding-values").click(function () {
1870 var contentId = $(this).attr("data-identifyer");
1871 var typeClass = $(this).attr("data-typeclass");
1872 $("." + typeClass).not("#" + contentId).hide();
1873 $("." + typeClass).not("#" + contentId).prev().find("span.toggler i").removeClass("fa-minus").addClass("fa-plus");
1874 $("#" + contentId).toggle();
1875 var currentToggler = $("#" + contentId).prev().find("span.toggler i");
1876 if (currentToggler.hasClass("fa-minus")) {
1877 currentToggler.removeClass("fa-minus").addClass("fa-plus");
1878 } else {
1879 currentToggler.removeClass("fa-plus").addClass("fa-minus");
1880 }
1881 });
1882
1883 //default hide all toggler areas (except first)
1884 $(".breeding-values-content:not(:first)", "#list-breeding-values").hide();
1885 $(".toggler:first i.fa", "#list-breeding-values").removeClass("fa-plus").addClass("fa-minus");
1886
1887 } else {
1888 valuesContainer.html("Nothing found");
1889 }
1890 }).fail(function (jqxhr, textStatus, error) {
1891 var err = textStatus + ", " + error;
1892
1893 console.error("Request GetSearchBreedingValues Failed: " + err);
1894 valuesContainer.html("An error occurred");
1895 }).always(function () {
1896 //todo
1897 });
1898 }
1899 }
1900
1901 $("#DatabaseSearchForm_BreedingValuesForm_ReSearch").click(function () {
1902 var localStorageId = "lastSubmittedBreedingValues";
1903 var lastSubmittedBreedingValues = localStorage.getItem(localStorageId);
1904 if (lastSubmittedBreedingValues != null) {
1905
1906 //parse to json
1907 lastSubmitted = JSON.parse(lastSubmittedBreedingValues);
1908
1909 var breedingDirection = lastSubmitted.breedingDirection;
1910
1911 // set breeding direction
1912 $("#DatabaseSearchForm_BreedingValues_BreedingDirection").val(breedingDirection);
1913
1914 GetSearchBreedingValues(true);
1915 }
1916 return false;
1917 });
1918
1919 function RestoreSearch() {
1920 var apiUrl = "/kwpnwebapi/horses/restoresearch/@action";
1921
1922 $.getJSON(apiUrl).done(function (result, status, metaData) {
1923 if (result.LastSearchType >= 1 && result.LastSearchType <= 3) {
1924 $("#searched-for").html(result.SearchedFor.replace('Dummy', ''));
1925 searchApi = result.SearchApiUrl;
1926 if (result.LastSearchType === 1) { //chip or lifenumber
1927 $("#result-filter-reset").hide();
1928 $("#yearOfApproval").hide();
1929 $("#approvedStud").hide();
1930 $("#gender-filter").show();
1931 $("#startingletter-filter").hide();
1932 }
1933 if (result.LastSearchType === 2) { //pedigree
1934 $("#yearOfApproval").hide();
1935 $("#approvedStud").hide();
1936 $("#gender-filter").show();
1937 $("#startingletter-filter").hide();
1938 }
1939 if (result.LastSearchType === 3) { //searchterm
1940 if (result.PreviousSearch.OnlyApprovedStallion) {
1941 $("#yearOfApproval").show();
1942 $("#approvedStud").show();
1943 $("#gender-filter").hide();
1944 $("#startingletter-filter").show();
1945 }
1946 else {
1947 $("#yearOfApproval").hide();
1948 $("#approvedStud").hide();
1949 $("#gender-filter").show();
1950 $("#startingletter-filter").hide();
1951 }
1952
1953 }
1954 if (result.PreviousSearch.FilterOn) $("#horsesFilter").val(result.PreviousSearch.FilterOn);
1955 HandleSearchResult(result.SearchResult);
1956 $("#horse-search-search").addClass("hidden"); // hide form
1957 $("#horse-search-results").removeClass("hidden"); // show results
1958 }
1959 }).fail(function (jqxhr, textStatus, error) {
1960 var err = textStatus + ", " + error;
1961 console.error("Request RestoreSearch Failed: " + err);
1962 })
1963 };
1964
1965 RestoreSearch();
1966 });
1967
1968 </script>
1969
1970 @SnippetEnd("JavascriptsBottom")
1971 }
1972 else
1973 {
1974 if (System.Web.HttpContext.Current.Request.QueryString.AllKeys.Contains("reset"))
1975 { //check if reset param = true and password param correct, if so reset cache for given horse
1976 Kwpn.Repository.Repositories.Horses.ResetHorseCache(animalCode);
1977 }
1978 var horse = HorseHelper.GetDatabasePageHorse(culture, animalCode, true);
1979 if (horse == null && !noHorseNeeded)
1980 {
1981 <div class="break-grid content-container">
1982 <div class="break-grid-background">
1983 <div class="in-grid">
1984 <div class="row">
1985 <div class="col-xs-12 col-md-7">
1986 @Translate("HorseNotFound", "Horse not found")
1987 </div>
1988 </div>
1989 </div>
1990 </div>
1991 </div>
1992
1993 // seo
1994 seoPage = string.Format("{0}/{1}/{2}", seoPage, animalCode.UrlEncode(), Translate("SEO_TrackPageviewPage_Database_Horse_Not_Found", "horse-not-found").UrlEncode()).ToLower();
1995 <Text>
1996 <script>
1997 SEO.trackPageView("@seoPage");
1998 </script>
1999 </Text>
2000 }
2001 else if (horse == null && noHorseNeeded)
2002 {
2003 <div class="break-grid content-container page-content-aside horse-database">
2004 <div class="break-grid-background">
2005 <div class="in-grid">
2006
2007 <div class="row">
2008 <div class="col-xs-12">
2009 <h1 class="pageTitle"> </h1>
2010 </div>
2011 </div>
2012
2013 <div class="row">
2014 <div class="col-xs-12">
2015 <div class="notification"></div>
2016 </div>
2017 </div>
2018
2019 <div class="row">
2020 <div class="col-xs-12 col-md-2 col-md-push-10 aside-page">
2021 <div class="bg_aside closed">
2022 <div class="aside_pullLabel">Menu<i class="fa fa-bars" aria-hidden="true"></i></div>
2023 <aside>
2024 @using System.Web.Mvc;
2025 @using Kwpn.Core.Services.Abstract;
2026 @using Kwpn.Models.Enumerations;
2027 @using Kwpn.Core.Helpers;
2028
2029 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2030 @*note: variables like "action/isAlive/isMyHorse/horse/culture/animalCode/isApprovedStud" are set in the parent: Paragraph/HorseDatabase.cshtml*@
2031 @*DEFAULT ASIDE*@
2032
2033 @{
2034 var currentUser = Kwpn.Repository.Repositories.KwpnUsers.CurrentUser();
2035 var jumpVideoService = DependencyResolver.Current.GetService<IJumpPortalVideoService>();
2036
2037 var collection = new Kwpn.Models.Jump.VideoResponse[0];
2038 if (horse != null && !string.IsNullOrEmpty(horse.AnimalCode))
2039 {
2040 collection = jumpVideoService.GetVideosByTag(horse.AnimalCode);
2041 }
2042 }
2043
2044
2045
2046 @if (string.IsNullOrWhiteSpace(action))
2047 {
2048 #region TabLinks
2049 <h2 id="listheader-tabs" data-childId="view-list-tabs" class="notactive"><span>@Translate("Menu", "Menu")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2050 <div class="list-tabs">
2051 <ul>
2052 <li data-tab="tab_general" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_general", "general-info").UrlEncode()" class="active"><a href="javascript:void(0);">@Translate("General", "General")</a></li>
2053 <li data-tab="tab_achievements" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_achievements", "achievements").UrlEncode()"><a href="javascript:void(0);">@Translate("Achievements", "Achievements")</a></li>
2054 <li data-tab="tab_achievements_motherline" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_achievements_motherline", "achievements-motherline").UrlEncode()"><a href="javascript:void(0);">@Translate("AchievementsMotherLine", "Achievements mother line")</a></li>
2055 @if (showGeneticProfileBasedOnRegister)
2056 {
2057 <li data-tab="tab_genetic_profile" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_genetic_profile", "genetic-profile").UrlEncode()"><a href="javascript:void(0);">@Translate("GeneticProfile", "Genetic profile")</a></li>
2058 }
2059 @if (isMare || isMyHorse)
2060 {
2061 <li data-tab="tab_offspring" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_offspring", "offspring").UrlEncode()"><a href="javascript:void(0);">@Translate("Offspring", "Offspring")</a></li>
2062 }
2063 @if (isApprovedStud)
2064 {
2065 <li data-tab="tab_breeding_registration" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_breeding_registration", "breeding-registration").UrlEncode()"><a href="javascript:void(0);">@Translate("BreedingRegistration", "Breeding registration")</a></li>
2066 <li data-tab="tab_approved_offspring" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_approved_offspring", "approved-offspring").UrlEncode()"><a href="javascript:void(0);">@Translate("ApprovedOffspring", "Approved offspring")</a></li>
2067 <li data-tab="tab_performance_report" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_performance_report", "performance-report").UrlEncode()"><a href="javascript:void(0);">@Translate("PerformanceReport", "Performance report")</a></li>
2068 <li data-tab="tab_performance_figures" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_performance_figures", "performance-figures").UrlEncode()"><a href="javascript:void(0);">@Translate("PerformanceFigures", "Performance figures")</a></li>
2069 <li data-tab="tab_availability" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_availability", "availability").UrlEncode()"><a href="javascript:void(0);">@Translate("Availability", "Availability")</a></li>
2070 <li data-tab="tab_descendant_report" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_descendant_report", "descendant-report").UrlEncode()"><a href="javascript:void(0);">@Translate("DescendantsReport", "Descendants report")</a></li>
2071 }
2072 @{
2073 var asideBreeders = breeders?.Where(b => b.AllowedOwnerBreeder && Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(b.PersonCode));
2074 if (asideBreeders != null && asideBreeders.Any())
2075 {
2076 <li data-tab="tab_breeders_info">
2077 <span class="list-item">
2078 @(asideBreeders.Count() > 1 ? Translate("Breeders", "Breeders") : Translate("Breeder", "Breeder")):<br />
2079 @foreach (var breeder in asideBreeders)
2080 {
2081 <span class="breeder-link" data-personcode="@breeder.PersonCode">@breeder.PersonName</span>
2082 }
2083 </span>
2084 </li>
2085 }
2086
2087 }
2088 </ul>
2089 </div>
2090
2091 <script>
2092 $(document).ready(function () {
2093 @if (collection != null && collection.Any())
2094 {
2095 <text>
2096 $(".list-tabs ul").append("<li data-tab=\"tab_videos\"><a href=\"javascript:void(0);\">@Translate("Videos", "Videos")</a></li>");
2097
2098 $(".list-tabs li[data-tab=tab_videos] a").click(function () {
2099 var listItem = $(this).parent();
2100 var tab = listItem.attr("data-tab");
2101
2102 // remove existing active from tab list
2103 $(".list-tabs li").removeClass("active");
2104
2105 // add active
2106 listItem.addClass("active");
2107
2108 // hide all content items
2109 $(".horse-detail-item").addClass("hidden");
2110
2111 LoadVideos();
2112
2113 // show items corresponding to current active tab
2114 $(".horse-detail-item[data-content=" + tab + "]").removeClass("hidden");
2115 });
2116 </text>
2117 }
2118
2119
2120 function LoadVideos() {
2121
2122 var videoContent = $("#video-container", "#horse-detail-item-videos");
2123
2124 }
2125
2126 function ClearVideos() {
2127 var videoContent = $("#video-container", "#horse-detail-item-videos");
2128 videoContent.html("");
2129 }
2130
2131 $(".list-tabs a").click(function () {
2132
2133 var listItem = $(this).parent();
2134 var tab = listItem.attr("data-tab");
2135 var vp = listItem.attr("data-vp").toLowerCase();
2136
2137 // remove existing active from tab list
2138 $(".list-tabs li").removeClass("active");
2139
2140 // add active
2141 listItem.addClass("active");
2142
2143 // hide all content items
2144 $(".horse-detail-item").addClass("hidden");
2145
2146 // SEO VIRTUAL PAGE VIEW LOGGING
2147 SEO.trackPageView("@seoPage.ToLower()/" + vp);
2148
2149 // if item is "video", load videos
2150 if (tab == "tab_videos") {
2151 LoadVideos();
2152 }
2153 else {
2154 ClearVideos();
2155 }
2156
2157 // show items corresponding to current active tab
2158 $(".horse-detail-item[data-content=" + tab + "]").removeClass("hidden");
2159
2160 });
2161 });
2162 </script>
2163 @SnippetEnd("JavascriptsBottom")
2164 #endregion
2165 }
2166
2167 @if (string.IsNullOrWhiteSpace(action) && actionShow)
2168 {
2169 #region ActionLinks
2170 <h2 id="listheader-actions" data-childId="list-actions" class="notactive">
2171 <span>@Translate("Actions", "Actions")</span><i class="fa fa-chevron-down" aria-hidden="true"></i>
2172 </h2>
2173 <div class="list-actions">
2174 <ul>
2175 @if (actionRegisterHorseToName)
2176 {
2177 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Register_HorseToName", "RegisterHorse"))">@Translate("Action_Register_HorseToName", "Register horse")</a></li>
2178 }
2179 @if (actionSignUpInspectionEvent)
2180 {
2181 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseEventsPageUrl(culture, horse.AnimalCode)">@Translate("Action_SignUp_InspectionEvent", "Sign up for inspection / event")</a></li>
2182 }
2183
2184 @*@if (actionGetStallionAdvice)
2185 {
2186 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"))">@Translate("Action_Request_StallionAdvice", "Stallion advice")</a></li>
2187 }*@
2188 @if (actionRequestGenomicBreedingValueTest)
2189 {
2190 <li><a href="javascript:void(0);" onclick="javascript:AddHorseToGenomeBreedingValueTest();return false;">@Translate("Action_Request_GenomeBreedingValueTest", "Request DNA/OC research")</a></li>
2191 }
2192 @if (actionSellViaMarketplace)
2193 {
2194 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_SellViaMarketplace", "sell"))">@Translate("Action_SellViaMarketplace", "Sell via KWPN Marketplace")</a></li>
2195 }
2196 @if (actionReportHorseSold)
2197 {
2198 <li><a href="javascript:void(0);" class="horse-sold-button">@Translate("Action_Report_HorseSold", "Report horse as sold")</a></li>
2199 }
2200 @if (actionReportDeceasedHorse)
2201 {
2202 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Report_HorseDied", "HorseDied"))">@Translate("Action_Report_HorseDied", "Report horse died")</a></li>
2203 }
2204 @if (actionInbreedingCalculation)
2205 {
2206 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_InbreedingCalculation", "InbreedingCalculation"))">@Translate("Action_InbreedingCalculation", "Inbreeding calculation")</a></li>
2207 }
2208 @if (actionRequestDuplicate)
2209 {
2210 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_Duplicate", "Duplicate"))">@Translate("Action_Request_Duplicate", "Request duplicate")</a></li>
2211 }
2212 @if (actionRequestContinuedPassport)
2213 {
2214 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_ContinuedPassport", "PassportRenewal"))">@Translate("Action_Request_ContinuedPassport", "Requests for passport renewal")</a></li>
2215 }
2216 @if (actionRequestPredicates)
2217 {
2218 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_Predicates", "RequestPredicates"))">@Translate("Action_Request_Predicates", "Request predicate(s)")</a></li>
2219 }
2220
2221 @if (currentUser != null && currentUser.IsVeterinarian)
2222 {
2223 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&type=@ResearchType.PROK_Research_General">@Translate("Action_PROK_Research_General", "Request PROK")</a></li>
2224 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&type=@ResearchType.PROK_Research_Mares">@Translate("Action_PROK_Research_Mares", "Request PROK mares")</a></li>
2225
2226 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&type=@ResearchType.SPST">@Translate("Action_Request_SPST_Exam", "Request SPST examination")</a></li>
2227 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&type=@ResearchType.OC">@Translate("Action_Request_OC_Exam", "Request OC examination")</a></li>
2228
2229 }
2230
2231
2232
2233 @if (isMyHorse)
2234 {
2235 <li class="refresh"><a href="#" id="refresh-link"><abbr title="@Translate("Action_RefreshHorseDataAbbr", "When refreshing the horse data we fetch the information from our back-end system. This may take a while.")">@Translate("Action_RefreshHorseData", "Refresh horse data")</abbr></a></li>
2236 }
2237 </ul>
2238 </div>
2239 @SnippetStart("JavascriptsBottom")
2240 <script>
2241
2242 @if (actionRequestGenomicBreedingValueTest)
2243 {
2244 <text>
2245 function AddHorseToGenomeBreedingValueTest() {
2246 var redirectUrl = '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"))';
2247 // add horse to KwpnUser.GenomeBreedingValueItems
2248 var addHorseUrl = "/kwpnwebapi/forms/research/upserthorse/@horse.AnimalCode";
2249 $.getJSON(addHorseUrl).done(function () {
2250 window.location.href = redirectUrl;
2251 }).fail(function (jqxhr, textStatus, error) {
2252 var err = textStatus + ", " + error;
2253 console.error("Request AddHorse Failed: " + err);
2254 });
2255 }
2256 </text>
2257 }
2258
2259 $(document).ready(function () {
2260
2261 @if (isMyHorse)
2262 {
2263 <text>
2264 $("#refresh-link").off("click").on("click", function (e) {
2265 e.preventDefault();
2266 $(".horse-database").addClass("hidden");
2267 $("#refreshcontainer").removeClass("hidden");
2268 var refreshHorse = "/kwpnwebapi/horses/refreshmyhorse/@culture/@horse.AnimalCode/@true";
2269 $.ajax(refreshHorse).always(function () {
2270 window.location.href = "@System.Web.HttpContext.Current.Request.RawUrl";
2271 });
2272 return false;
2273 });
2274 </text>
2275 }
2276
2277 @*
2278
2279 NOTE:
2280 WHENEVER THE DNA PAGE GOES LIVE AND THIS GETS UNCOMMENTED,
2281 THE 'check if document download links should be added to the action list and if so, do'
2282 JAVASCRIPT BENEITH MUST BE REMOVED !!
2283
2284 // check if any document is available. if so show the DNA page when it is your horse and it isn't an apporved stud
2285 @if (Kwpn.Repository.Helpers.LoginHelper.HasAccessToExtendedHorseData() && isMyHorse && !isApprovedStud)
2286 {
2287 <text>
2288 //var downloadsApiUrl = "/kwpnwebapi/horses/getdownloaddocuments/@culture/@animalCode";
2289 //$.getJSON(downloadsApiUrl).done(function (result) {
2290 // if (result != null && result.length > 0) {
2291 // var dnaPageListItem = '<li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, animalCode, Translate("ActionLink_DnaPage", "DNA-Page"))">@Translate("Action_Request_DnaPage", "DNA-Page")</a></li>';
2292 // $("aside .list-actions ul").find(' > li:nth-last-child(1)').before(dnaPageListItem); // place at the end, but before the last, which is the refresh button
2293 // }
2294 // }).fail(function (jqxhr, textStatus, error) {
2295 // var err = textStatus + ", " + error;
2296 // console.error("Request Getdownloaddocuments Failed: " + err);
2297 // });
2298 </text>
2299 }*@
2300
2301
2302 // check if document download links should be added to the action list and if so, do
2303 @if (Kwpn.Repository.Helpers.LoginHelper.HasAccessToExtendedHorseData())
2304 {
2305 <text>
2306 // download documents
2307 $(".downloaddocument").remove();
2308 var downloadsApiUrl = "/kwpnwebapi/horses/getdownloaddocuments/@culture/@animalCode";
2309 $.getJSON(downloadsApiUrl).done(function (result) {
2310 if (result != null && result.length > 0) {
2311 $.each(result, function (i, downloadDocument) {
2312 var downloadDocumentUrl = downloadDocument.URL;
2313 if (downloadDocumentUrl != null) {
2314 downloadDocumentUrl = downloadDocumentUrl.replace(/\\/g, "/"); // fix slashes
2315 var downloadDocumentLabel = "@Translate("DownloadDocument", "Download document"): " + downloadDocument.TypeDocument;
2316 var downloadDocumentListItem = "<li class=\"downloaddocument\"><a href=\"" + downloadDocumentUrl + "\" download target=\"_blank\">" + downloadDocumentLabel + "</a></li>";
2317 $("aside .list-actions ul").find(' > li:nth-last-child(1)').before(downloadDocumentListItem); // place at the end, but before the last, which is the refresh button
2318 }
2319 });
2320 }
2321 }).fail(function (jqxhr, textStatus, error) {
2322 var err = textStatus + ", " + error;
2323 console.error("Request Getdownloaddocuments Failed: " + err);
2324 });
2325 </text>
2326 }
2327
2328
2329 });
2330 </script>
2331 @SnippetEnd("JavascriptsBottom")
2332 #endregion
2333 }
2334
2335 @*ACTION ASIDES*@
2336 @if (!string.IsNullOrWhiteSpace(action))
2337 {
2338 var productService = new Dynamicweb.Ecommerce.Products.ProductService();
2339 var ecomLanguageId = Dynamicweb.Frontend.PageView.Current().Area.EcomLanguageId;
2340
2341 // EVENT SIGN UP
2342 if (action.Equals(Translate("ActionLink_SignUp_InspectionEvent", "EventSignUp"), StringComparison.InvariantCultureIgnoreCase) &&
2343 actionSignUpInspectionEvent)
2344 {
2345 var eventSignUpProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.EventSignUp, ecomLanguageId);
2346 if (eventSignUpProduct != null)
2347 {
2348 <h2 id="event-signup-aside-info-header" data-childId="event-signup-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2349 <div class="list-actions">
2350 <table id="event-signup-aside-aside-info" class="aside-content aside-content-info notactive">
2351 <colgroup>
2352 <col width="30" />
2353 <col />
2354 </colgroup>
2355 <tr class="head">
2356 <th><i class="fa fa-info"></i></th>
2357 <th>@Translate("Product", "Product")</th>
2358 </tr>
2359 <tr>
2360 <td> </td>
2361 <td>@eventSignUpProduct.Name <span class="inspection-price"></span></td>
2362 </tr>
2363 <tr class="required-services hidden" data-subtotal="">
2364 <td> </td>
2365 <td class="required-service"></td>
2366 </tr>
2367 <tr class="head">
2368 <th><i class="fa fa-eur"></i></th>
2369 <th>@Translate("Price", "Price")</th>
2370 </tr>
2371 <tr>
2372 <td> </td>
2373 <td>€ <span id="eventSignUpPriceAside">@Translate("NotYetKnown", "n.y.k.")</span> (@Translate("VatIncluded", "VAT included"))</td>
2374 </tr>
2375 </table>
2376 </div>
2377 }
2378 }
2379
2380
2381 // CUP EVENT SIGN UP
2382 if (actionSignUpCupEvent)
2383 {
2384 var eventSignUpProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.EventSignUp, ecomLanguageId);
2385 if (eventSignUpProduct != null)
2386 {
2387 <h2 id="event-signup-aside-info-header" data-childId="event-signup-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2388 <div class="list-actions">
2389 <table id="event-signup-aside-aside-info" class="aside-content aside-content-info notactive">
2390 <colgroup>
2391 <col width="30" />
2392 <col />
2393 </colgroup>
2394 <tr class="head">
2395 <th><i class="fa fa-info"></i></th>
2396 <th>@Translate("Product", "Product")</th>
2397 </tr>
2398 <tr>
2399 <td> </td>
2400 <td>@eventSignUpProduct.Name <span class="inspection-price"></span></td>
2401 </tr>
2402 <tr class="required-services hidden" data-subtotal="">
2403 <td> </td>
2404 <td class="required-service"></td>
2405 </tr>
2406 <tr class="head">
2407 <th><i class="fa fa-eur"></i></th>
2408 <th>@Translate("Price", "Price")</th>
2409 </tr>
2410 <tr>
2411 <td> </td>
2412 <td><span id="eventCupSignUpPriceAside">@Translate("NotYetKnown", "n.y.k.")</span> (@Translate("VatIncluded", "VAT included"))</td>
2413 </tr>
2414 </table>
2415 </div>
2416 }
2417 }
2418
2419 // STALLION ADVICE
2420 else if (action.Equals(Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"), StringComparison.InvariantCultureIgnoreCase) &&
2421 actionGetStallionAdvice)
2422 {
2423 <h2 id="stallion-advice-aside-info-header" data-childId="stallion-advice-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2424 <div class="list-actions">
2425 <table id="stallion-advice-aside-info" class="aside-content aside-content-info notactive">
2426 <colgroup>
2427 <col width="30" />
2428 <col />
2429 </colgroup>
2430 <tr class="head">
2431 <th><i class="fa fa-info"></i></th>
2432 <th>Hengsten advies</th>
2433 </tr>
2434 <tr>
2435 <td> </td>
2436 <td>@horseName<br /><span id="stallion-advice-aside-breedingdirection-mare">@horse.BreedingDirection</span></td>
2437 </tr>
2438 </table>
2439 <ul class="aside-content notactive" id="stallion-advice-aside-links">
2440 <li class="step-0 hidden"><a href='#' onclick="StallionAdvice.ShowStep(0); return false;">@Translate("StallionAdvice_BackToStep0_LinkText", "Explanation")</a></li>
2441 <li class="step-1 hidden"><a href='#' onclick="StallionAdvice.ShowStep(1); return false;">@Translate("StallionAdvice_BackToStep1_LinkText", "Step 1")</a></li>
2442 <li class="step-2 hidden"><a href='#' onclick="StallionAdvice.ShowStep(2); return false;">@Translate("StallionAdvice_BackToStep2_LinkText", "Step 2")</a></li>
2443 </ul>
2444 </div>
2445 }
2446
2447 // CONTINUED PASSPORT
2448 else if (action.Equals(Translate("ActionLink_Request_ContinuedPassport", "PassportRenewal"), StringComparison.InvariantCultureIgnoreCase) &&
2449 actionRequestContinuedPassport)
2450 {
2451 var passportRenewalProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.PassportRenewal, ecomLanguageId);
2452 if (passportRenewalProduct != null)
2453 {
2454 <h2 id="passport-renewal-aside-info-header" data-childId="passport-renewal-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2455 <div class="list-actions">
2456 <table id="passport-renewal-aside-info" class="aside-content aside-content-info notactive">
2457 <colgroup>
2458 <col width="30" />
2459 <col />
2460 </colgroup>
2461 <tr class="head">
2462 <th><i class="fa fa-info"></i></th>
2463 <th>@Translate("Product", "Product")</th>
2464 </tr>
2465 <tr>
2466 <td> </td>
2467 <td>@passportRenewalProduct.Name</td>
2468 </tr>
2469 <tr class="head">
2470 <th><i class="fa fa-eur"></i></th>
2471 <th>@Translate("Price", "Price")</th>
2472 </tr>
2473 <tr>
2474 <td> </td>
2475 <td>@Kwpn.Repository.Helpers.ProductHelper.FormatPrice(Kwpn.Repository.Helpers.ProductHelper.GetProductPrice(passportRenewalProduct)) (@Translate("VatIncluded", "VAT included"))</td>
2476 </tr>
2477 </table>
2478 </div>
2479 }
2480 }
2481
2482 // PASSPORT DUPLICATE
2483 else if (action.Equals(Translate("ActionLink_Request_Duplicate", "Duplicate"), StringComparison.InvariantCultureIgnoreCase) &&
2484 actionRequestDuplicate)
2485 {
2486 <h2 id="passport-duplicate-aside-info-header" data-childId="passport-duplicate-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2487 <div class="list-actions">
2488 <table id="passport-duplicate-info" class="aside-content aside-content-info notactive">
2489 <colgroup>
2490 <col width="30" />
2491 <col />
2492 </colgroup>
2493 <tr class="head">
2494 <th><i class="fa fa-info"></i></th>
2495 <th>@Translate("Product", "Product")</th>
2496 </tr>
2497 <tr>
2498 <td> </td>
2499 <td id="passport-duplicate-product-name"><!--value is set by javascript based on form selection--></td>
2500 </tr>
2501 <tr class="head">
2502 <th><i class="fa fa-eur"></i></th>
2503 <th>@Translate("Price", "Price")</th>
2504 </tr>
2505 <tr>
2506 <td> </td>
2507 <td>
2508 <span id="passport-duplicate-product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included"))
2509 </td>
2510 </tr>
2511 </table>
2512 </div>
2513 }
2514
2515 // REGISTER HORSE TO NAME
2516 else if (action.Equals(Translate("ActionLink_Register_HorseToName", "RegisterHorse"), StringComparison.InvariantCultureIgnoreCase) &&
2517 actionRegisterHorseToName)
2518 {
2519 var registerHorseProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.RegisterHorse, ecomLanguageId);
2520 if (registerHorseProduct != null)
2521 {
2522 <h2 id="register-horse-aside-info-header" data-childId="register-horse-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2523 <div class="list-actions">
2524 <table id="register-horse-aside-info" class="aside-content aside-content-info notactive">
2525 <colgroup>
2526 <col width="30" />
2527 <col />
2528 </colgroup>
2529 <tr class="head">
2530 <th><i class="fa fa-info"></i></th>
2531 <th>@Translate("Product", "Product")</th>
2532 </tr>
2533 <tr>
2534 <td> </td>
2535 <td>@registerHorseProduct.Name</td>
2536 </tr>
2537 <tr class="head">
2538 <th><i class="fa fa-eur"></i></th>
2539 <th>@Translate("Price", "Price")</th>
2540 </tr>
2541 <tr>
2542 <td> </td>
2543 <td>@Kwpn.Repository.Helpers.ProductHelper.FormatPrice(Kwpn.Repository.Helpers.ProductHelper.GetProductPrice(registerHorseProduct)) (@Translate("VatIncluded", "VAT included"))</td>
2544 </tr>
2545 </table>
2546 </div>
2547 }
2548 }
2549
2550 // REGISTER EMBRYO
2551 else if (action.Equals(Translate("ActionLink_Register_Embryo", "RegisterEmbryo"), StringComparison.InvariantCultureIgnoreCase) &&
2552 actionRegisterEmbryo)
2553 {
2554 <h2 id="register-embryo-aside-info-header" data-childId="register-embryo-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2555 <div class="list-actions">
2556 <table id="register-embryo-aside-info" class="aside-content aside-content-info notactive">
2557 <colgroup>
2558 <col width="30" />
2559 <col />
2560 </colgroup>
2561 <tr class="head">
2562 <th><i class="fa fa-info"></i></th>
2563 <th>@Translate("Product", "Product")</th>
2564 </tr>
2565 <tr>
2566 <td> </td>
2567 <td id="register-embryo-product-name"><!--value is set by javascript based on form selection--></td>
2568 </tr>
2569 <tr class="head">
2570 <th><i class="fa fa-eur"></i></th>
2571 <th>@Translate("Price", "Price")</th>
2572 </tr>
2573 <tr>
2574 <td> </td>
2575 <td>
2576 <span id="register-embryo-product-price"><!--value is set by javascript based on form selection--></span>
2577 </td>
2578 </tr>
2579 </table>
2580 </div>
2581 }
2582
2583 // REGISTER FOAL
2584 else if (action.Equals(Translate("ActionLink_Register_Foal", "RegisterFoal"), StringComparison.InvariantCultureIgnoreCase) &&
2585 actionRegisterFoal)
2586 {
2587 <h2 id="register-foal-aside-info-header" data-childId="register-foal-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2588 <div class="list-actions">
2589 <table id="register-foal-aside-info" class="aside-content aside-content-info notactive">
2590 <colgroup>
2591 <col width="30" />
2592 <col />
2593 </colgroup>
2594 <tr class="head">
2595 <th><i class="fa fa-info"></i></th>
2596 <th>@Translate("Product", "Product")</th>
2597 </tr>
2598 <tr>
2599 <td> </td>
2600 <td id="register-foal-product-name"><!--value is set by javascript based on form selection--></td>
2601 </tr>
2602 <tr class="head">
2603 <th><i class="fa fa-eur"></i></th>
2604 <th>@Translate("Price", "Price")</th>
2605 </tr>
2606 <tr>
2607 <td> </td>
2608 <td>
2609 <span id="register-foal-product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included"))
2610 </td>
2611 </tr>
2612 </table>
2613 </div>
2614 }
2615
2616 // REQUEST WFFS / GENOME BREEDING VALUE TEST
2617 else if (action.Equals(Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"), StringComparison.InvariantCultureIgnoreCase) &&
2618 actionRequestGenomicBreedingValueTest)
2619 {
2620 <h2 id="genome-breeding-aside-info-header" data-childId="genome-breeding-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2621 <div class="list-actions">
2622 <table id="genome-breeding-aside-info" class="aside-content aside-content-info notactive">
2623 <colgroup>
2624 <col width="30" />
2625 <col />
2626 </colgroup>
2627 <tr class="head">
2628 <th><i class="fa fa-info"></i></th>
2629 <th>@Translate("Product", "Product")</th>
2630 </tr>
2631 <tr>
2632 <td> </td>
2633 <td id="genome-breeding-product-name"><!--value is set by javascript based on form selection--></td>
2634 </tr>
2635 <tr class="head">
2636 <th><i class="fa fa-eur"></i></th>
2637 <th>@Translate("Price", "Price")</th>
2638 </tr>
2639 <tr>
2640 <td> </td>
2641 <td>
2642 <span id="genome-breeding-product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included"))
2643 </td>
2644 </tr>
2645 </table>
2646 </div>
2647 }
2648
2649 // SELL HORSE VIA MARKETPLACE
2650 else if (action.Equals(Translate("ActionLink_SellViaMarketplace", "sell"), StringComparison.InvariantCultureIgnoreCase) &&
2651 actionSellViaMarketplace)
2652 {
2653 <h2 id="marketplace-aside-info-header" data-childId="marketplace-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2654 <div class="list-actions">
2655 <table id="marketplace-aside-info" class="aside-content aside-content-info notactive">
2656 <colgroup>
2657 <col width="30" />
2658 <col />
2659 </colgroup>
2660 <tr class="head">
2661 <th><i class="fa fa-info"></i></th>
2662 <th>@Translate("Product", "Product")</th>
2663 </tr>
2664 <tr>
2665 <td> </td>
2666 <td class="product-name"><!--value is set by javascript based on form selection--></td>
2667 </tr>
2668 <tr class="head paymentInfo hidden">
2669 <th><i class="fa fa-cc"></i></th>
2670 <th>@Translate("PaymentMethod", "Payment method")</th>
2671 </tr>
2672 <tr class="paymentInfo hidden">
2673 <td> </td>
2674 <td>@Translate("PaymentMethod_Text_Online", "Pay directly online")</td>
2675 </tr>
2676 <tr class="head">
2677 <th><i class="fa fa-eur"></i></th>
2678 <th>@Translate("Price", "Price")</th>
2679 </tr>
2680 <tr>
2681 <td> </td>
2682 <td>
2683 <span class="product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included"))
2684 </td>
2685 </tr>
2686 </table>
2687 </div>
2688 }
2689
2690 // REQUEST PREDICATES
2691 else if (action.Equals(Translate("ActionLink_Request_Predicates", "RequestPredicates"), StringComparison.InvariantCultureIgnoreCase) &&
2692 actionRequestPredicates)
2693 {
2694 <h2 id="request-predicates-aside-info-header" data-childId="request-predicates-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2695 <div class="list-actions">
2696 <table id="request-predicates-aside-info" class="aside-content aside-content-info notactive">
2697 <colgroup>
2698 <col width="30" />
2699 <col />
2700 </colgroup>
2701 <tr class="head">
2702 <th><i class="fa fa-info"></i></th>
2703 <th>@Translate("Product", "Product")</th>
2704 </tr>
2705 <tr>
2706 <td> </td>
2707 <td class="product-name"><!--value is set by javascript based on form selection--></td>
2708 </tr>
2709 <tr class="head">
2710 <th><i class="fa fa-eur"></i></th>
2711 <th>@Translate("Price", "Price")</th>
2712 </tr>
2713 <tr>
2714 <td> </td>
2715 <td>
2716 <span class="product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included"))
2717 </td>
2718 </tr>
2719 </table>
2720 </div>
2721 }
2722 }
2723
2724 @*BACK TO DETAILS*@
2725 @if (!string.IsNullOrWhiteSpace(action))
2726 {
2727 <h2 id="back-to-info-header" data-childId="back-to-info-list" class="notactive"><span>@Translate("HorseInfo", "Horse info")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2728 <div class="list-actions">
2729 <ul id="back-to-info-list" class="aside-content notactive">
2730 <li><a href='@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, animalCode)'>@Translate("ShowHorseDetails", "Show horse details")</a></li>
2731 </ul>
2732 </div>
2733 }
2734
2735 @*MEMBERSHIP CALL TO ACTION*@
2736 @*@if (!string.IsNullOrWhiteSpace(action) && (!Kwpn.Repository.Helpers.LoginHelper.HasAccessToExtendedHorseData()))
2737 {
2738 var becomeMemberPageId = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.BecomeMemberPageId);
2739 if (!string.IsNullOrWhiteSpace(becomeMemberPageId))
2740 {
2741 var becomeMemberPageUrl = string.Format("/Default.aspx?ID={0}", becomeMemberPageId);
2742 <h2 id="become-member-list-header" data-childId="become-member-list" class="notactive"><span>@Translate("NoAccount?", "No KWPN Account?")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
2743 <div class="list-actions">
2744 <ul id="become-member-list" class="aside-content notactive">
2745 <li><a href='@becomeMemberPageUrl'>@Translate("BecomeMemberNow", "Become a member now")</a></li>
2746 </ul>
2747 </div>
2748 }
2749 }*@
2750
2751 </aside>
2752 </div>
2753 </div>
2754 <article class="col-xs-12 col-md-10 page-content">
2755 <div>@inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2756 @*note: variables like "action/isAlive/isMyHorse/horse/culture/animalCode/showGeneral" are set in the parent: Paragraph/HorseDatabase.cshtml*@
2757 @if (!string.IsNullOrWhiteSpace(action))
2758 {
2759
2760 // BREEDING ADVICE
2761 if (action.Equals(Translate("ActionLink_Request_BreedingAdvice", "BreedingAdvice"), StringComparison.InvariantCultureIgnoreCase) &&
2762 actionRequestBreedingAdvice)
2763 {
2764 var pageIdFormBreedingAdvice = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.BreedingAdvice);
2765 if (!string.IsNullOrWhiteSpace(pageIdFormBreedingAdvice))
2766 {
2767 showGeneral = false;
2768
2769 // SEO VIRTUAL PAGE VIEW LOGGING
2770 <Text>
2771 <script>
2772 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_breeding_advice", "breeding-advice").UrlEncode()).ToLower()");
2773 </script>
2774 </Text>
2775
2776 @RenderPageContent(Convert.ToInt32(pageIdFormBreedingAdvice))
2777 }
2778 }
2779
2780 // STALLION ADVICE
2781 @*if (action.Equals(Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"), StringComparison.InvariantCultureIgnoreCase) &&
2782 actionGetStallionAdvice)
2783 {
2784 var pageIdGetStallionAdvice = pageService.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.StallionAdvice)?.ID ?? 0;
2785 if (pageIdGetStallionAdvice > 0)
2786 {
2787 showGeneral = false;
2788
2789 // SEO VIRTUAL PAGE VIEW LOGGING
2790 <Text>
2791 <script>
2792 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_stalliob_advice", "stallion-advice").UrlEncode()).ToLower()");
2793 </script>
2794 </Text>
2795
2796 @RenderPageContent(pageIdGetStallionAdvice)
2797 }
2798 }*@
2799
2800 // EVENT SIGN UP
2801 if (action.Equals(Translate("ActionLink_SignUp_InspectionEvent", "EventSignUp"), StringComparison.InvariantCultureIgnoreCase) &&
2802 actionSignUpInspectionEvent)
2803 {
2804 var pageIdFormEventSignUp = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.EventSignUp);
2805 if (!string.IsNullOrWhiteSpace(pageIdFormEventSignUp) && !string.IsNullOrWhiteSpace(actionId))
2806 {
2807 showGeneral = false;
2808
2809 // SEO VIRTUAL PAGE VIEW LOGGING
2810 <Text>
2811 <script>
2812 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_event_signup", "event-signup").UrlEncode()).ToLower()");
2813 </script>
2814 </Text>
2815
2816 @RenderPageContent(Convert.ToInt32(pageIdFormEventSignUp))
2817 }
2818 }
2819
2820 // CUP EVENT SIGN UP
2821 if (actionSignUpCupEvent)
2822 {
2823 var pageIdFormCupEventSignUp = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.CupEventSignUp);
2824 if (!string.IsNullOrWhiteSpace(pageIdFormCupEventSignUp))
2825 {
2826 showGeneral = false;
2827
2828 // SEO VIRTUAL PAGE VIEW LOGGING
2829 <Text>
2830 <script>
2831 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_event_signup", "event-signup").UrlEncode()).ToLower()");
2832 </script>
2833 </Text>
2834
2835 @RenderPageContent(Convert.ToInt32(pageIdFormCupEventSignUp))
2836 }
2837 }
2838
2839 // REPORT DECEASED HORSE
2840 if (action.Equals(Translate("ActionLink_Report_HorseDied", "HorseDied"), StringComparison.InvariantCultureIgnoreCase) &&
2841 actionReportDeceasedHorse)
2842 {
2843 var pageIdReportDeceased = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.ReportDeceased);
2844 if (!string.IsNullOrWhiteSpace(pageIdReportDeceased))
2845 {
2846 showGeneral = false;
2847
2848 // SEO VIRTUAL PAGE VIEW LOGGING
2849 <Text>
2850 <script>
2851 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_report_deceased_horse", "report-deceased-horse").UrlEncode()).ToLower()");
2852 </script>
2853 </Text>
2854
2855 @RenderPageContent(Convert.ToInt32(pageIdReportDeceased))
2856 }
2857 }
2858
2859 // CONINUED PASSPORT
2860 if (action.Equals(Translate("ActionLink_Request_ContinuedPassport", "PassportRenewal"), StringComparison.InvariantCultureIgnoreCase) &&
2861 actionRequestContinuedPassport)
2862 {
2863 var pageIdPassportRenewal = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.PassportRenewal);
2864 if (!string.IsNullOrWhiteSpace(pageIdPassportRenewal))
2865 {
2866 showGeneral = false;
2867
2868 // SEO VIRTUAL PAGE VIEW LOGGING
2869 <Text>
2870 <script>
2871 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_continued_passport", "continued-passport").UrlEncode()).ToLower()");
2872 </script>
2873 </Text>
2874
2875 @RenderPageContent(Convert.ToInt32(pageIdPassportRenewal))
2876 }
2877 }
2878
2879 // REQUEST DUPLICATE
2880 if (action.Equals(Translate("ActionLink_Request_Duplicate", "Duplicate"), StringComparison.InvariantCultureIgnoreCase) &&
2881 actionRequestDuplicate)
2882 {
2883 var pageIdPassportDuplicate = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.PassportDuplicate);
2884 if (!string.IsNullOrWhiteSpace(pageIdPassportDuplicate))
2885 {
2886 showGeneral = false;
2887
2888 // SEO VIRTUAL PAGE VIEW LOGGING
2889 <Text>
2890 <script>
2891 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_request_duplicate", "request-duplicate").UrlEncode()).ToLower()");
2892 </script>
2893 </Text>
2894
2895 @RenderPageContent(Convert.ToInt32(pageIdPassportDuplicate))
2896 }
2897 }
2898
2899 // REGISTER HORSE TO NAME
2900 if (action.Equals(Translate("ActionLink_Register_HorseToName", "RegisterHorse"), StringComparison.InvariantCultureIgnoreCase) &&
2901 actionRegisterHorseToName)
2902 {
2903 var pageIdFormRegisterHorse = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RegisterHorse);
2904 if (!string.IsNullOrWhiteSpace(pageIdFormRegisterHorse))
2905 {
2906 showGeneral = false;
2907
2908 // SEO VIRTUAL PAGE VIEW LOGGING
2909 <Text>
2910 <script>
2911 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_register_horse", "register-horse").UrlEncode()).ToLower()");
2912 </script>
2913 </Text>
2914
2915 @RenderPageContent(Convert.ToInt32(pageIdFormRegisterHorse))
2916 }
2917 }
2918
2919 // REGISTER EMBRYO
2920 if (action.Equals(Translate("ActionLink_Register_Embryo", "RegisterEmbryo"), StringComparison.InvariantCultureIgnoreCase) &&
2921 actionRegisterEmbryo)
2922 {
2923
2924 var pageRegisterEmbryo = pageService.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RegisterEmbryo);
2925 var pageIdRegisterEmbryo = pageRegisterEmbryo?.ID ?? 0;
2926 if (pageIdRegisterEmbryo > 0)
2927 {
2928 showGeneral = false;
2929
2930 // SEO VIRTUAL PAGE VIEW LOGGING
2931 <Text>
2932 <script>
2933 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_register_embryo", "register-embryo").UrlEncode()).ToLower()");
2934 </script>
2935 </Text>
2936
2937 @RenderPageContent(pageIdRegisterEmbryo)
2938 }
2939 }
2940
2941 // REGISTER FOAL
2942 if (action.Equals(Translate("ActionLink_Register_Foal", "RegisterFoal"), StringComparison.InvariantCultureIgnoreCase) &&
2943 actionRegisterFoal)
2944 {
2945 var pageIdRegisterFoal = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RegisterFoal);
2946 if (!string.IsNullOrWhiteSpace(pageIdRegisterFoal))
2947 {
2948 showGeneral = false;
2949
2950 // SEO VIRTUAL PAGE VIEW LOGGING
2951 <Text>
2952 <script>
2953 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_register_foal", "register-foal").UrlEncode()).ToLower()");
2954 </script>
2955 </Text>
2956
2957 @RenderPageContent(Convert.ToInt32(pageIdRegisterFoal))
2958 }
2959 }
2960
2961 // REQUEST GENOME BREEDING VALUE OC (DNA-TEST)
2962 if (action.Equals(Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"), StringComparison.InvariantCultureIgnoreCase) &&
2963 actionRequestGenomicBreedingValueTest)
2964 {
2965 var pageIdGenomicBreedingValueTest = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RequestGenomeBreedingValueTest);
2966 if (!string.IsNullOrWhiteSpace(pageIdGenomicBreedingValueTest))
2967 {
2968 showGeneral = false;
2969
2970 // SEO VIRTUAL PAGE VIEW LOGGING
2971 <Text>
2972 <script>
2973 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_request_dna_test", "request-dna-test").UrlEncode()).ToLower()");
2974 </script>
2975 </Text>
2976
2977 @RenderPageContent(Convert.ToInt32(pageIdGenomicBreedingValueTest))
2978 }
2979 }
2980
2981 // SELL HORSE VIA MARKETPLACE
2982 if (action.Equals(Translate("ActionLink_SellViaMarketplace", "sell"), StringComparison.InvariantCultureIgnoreCase) && actionSellViaMarketplace)
2983 {
2984 var pageIdSellHorse = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.SellHorse);
2985 if (!string.IsNullOrWhiteSpace(pageIdSellHorse))
2986 {
2987 showGeneral = false;
2988
2989 // SEO VIRTUAL PAGE VIEW LOGGING
2990 <Text>
2991 <script>
2992 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_sell_horse", "sell-horse").UrlEncode()).ToLower()");
2993 </script>
2994 </Text>
2995
2996 @RenderPageContent(Convert.ToInt32(pageIdSellHorse))
2997 }
2998 }
2999
3000 // INBREED CALCULATION
3001 if (action.Equals(Translate("ActionLink_InbreedingCalculation", "InbreedingCalculation"), StringComparison.InvariantCultureIgnoreCase) && actionInbreedingCalculation)
3002 {
3003 var pageIdInbreedCalculation = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.InbreedCalculationPageId);
3004 if (!string.IsNullOrWhiteSpace(pageIdInbreedCalculation))
3005 {
3006 showGeneral = false;
3007
3008 // SEO VIRTUAL PAGE VIEW LOGGING
3009 <Text>
3010 <script>
3011 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_inbreed_calculation", "inbreed-calculation").UrlEncode()).ToLower()");
3012 </script>
3013 </Text>
3014
3015 @RenderPageContent(Convert.ToInt32(pageIdInbreedCalculation))
3016 }
3017 }
3018
3019 // REQUEST PREDICATES
3020 if (action.Equals(Translate("ActionLink_Request_Predicates", "RequestPredicates"), StringComparison.InvariantCultureIgnoreCase) && actionRequestPredicates)
3021 {
3022 var pageIdRequestPredicates = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.PredicatesRequestPageId);
3023 if (!string.IsNullOrWhiteSpace(pageIdRequestPredicates))
3024 {
3025 showGeneral = false;
3026
3027 // SEO VIRTUAL PAGE VIEW LOGGING
3028 <Text>
3029 <script>
3030 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_request_predicates", "request-predicates").UrlEncode()).ToLower()");
3031 </script>
3032 </Text>
3033
3034 @RenderPageContent(Convert.ToInt32(pageIdRequestPredicates))
3035 }
3036 }
3037
3038
3039 // DNA PAGE
3040 @*if (action.Equals(Translate("ActionLink_DnaPage", "DNA-Page"), StringComparison.InvariantCultureIgnoreCase) && actionDnaPage)
3041 {
3042 var dnaPageId = pageService.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.DnaPage)?.ID ?? 0;
3043 if (dnaPageId > 0)
3044 {
3045 showGeneral = false;
3046
3047 // SEO VIRTUAL PAGE VIEW LOGGING
3048 <Text>
3049 <script>
3050 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_dnapage", "dna-page").UrlEncode()).ToLower()");
3051 </script>
3052 </Text>
3053
3054 @RenderPageContent(dnaPageId)
3055 }
3056 }*@
3057 }
3058 <script>
3059 var pageTitle = $('.paragraphTitel h1, .paragraphText h1').text();
3060 $('.paragraphTitel h1, .paragraphText h1').remove();
3061 $('.pageTitle').text(pageTitle);
3062 </script></div>
3063 </article>
3064 </div>
3065 <div class="row">
3066 <div class="col-xs-12 col-md-10 page-content print-disclaimer">
3067 @Translate("Print-Disclaimer", "<strong>KWPN Database - © 2017 - Content: KWPN</strong><br /><p>Niets uit de KWPN Database mag zonder uitdrukkelijke toestemming van het KWPN worden overgenomen, vermenigvuldigd en/of openbaar gemaakt, of gebruikt voor herberekening of onderzoek op welke wijze dan ook, met uitzondering van hetgeen in de Auteurswet bepaald is met betrekking tot het reprorecht.</p><p>Het KWPN aanvaardt geen aansprakelijkheid voor schade van welke aard dan ook, die het gevolg is van handelingen en/of beslissingen gebaseerd op informatie van deze site. De door het KWPN verstrekte informatie en berekende fokwaarden op deze website zijn eigendom van het KWPN. De informatie en de fokwaarden zijn bedoeld als voorlichtingsmateriaal en geadviseerd wordt om deze te gebruiken als één van de hulpmiddelen voor selectiedoeleinden. De onderliggende gegevens zijn verzameld in en/of ten behoeve van de KWPN-populatie en de fokwaarden die hieruit zijn voortgekomen zijn van toepassing op de KWPN-populatie. Het KWPN heeft uiterste zorgvuldigheid betracht bij de totstandkoming van de gepresenteerde informatie. De berekeningen hebben plaatsgevonden op basis van de beschikbare kennis van de populatiegenetica en de regels van uitvoering zijn vastgelegd in de reglementen en/of besluiten van bevoegde organen van het KWPN.</p>")
3068 </div>
3069 </div>
3070 </div>
3071 </div>
3072 </div>
3073 }
3074 else
3075 {
3076 isMyHorse = HorseHelper.CheckIfMyHorse(animalCode) && !Kwpn.Repository.Helpers.LoginHelper.IsBlocked();
3077 isMyHorseAndConfirmed = HorseHelper.CheckIfMyHorseAndConfirmed(animalCode) && !Kwpn.Repository.Helpers.LoginHelper.IsBlocked(); //voorkom dat mensen gelijk na op naam zetten paard kunnen verkopen
3078 isMare = false;
3079 isAlive = !horse.DateOfDeath.HasValue;
3080 isApprovedStud = horse.ApprovedStallion;
3081 isBredByMe = HorseHelper.CheckifBredByMe(horse.Breeders) && !Kwpn.Repository.Helpers.LoginHelper.IsBlocked();
3082 isAvailableForResearch = HorseHelper.horseIsAvailableForResearch(animalCode);
3083
3084 // HEADER DATA
3085 var genderClass = "fa-question";
3086 var genderAbbr = "";
3087 var gender = Kwpn.Models.Enumerations.Gender.UNKNOWN;
3088 Enum.TryParse(horse.Gender.ToUpper(), out gender);
3089 switch (gender)
3090 {
3091 case Kwpn.Models.Enumerations.Gender.HENGST:
3092 genderClass = "fa-mars";
3093 genderAbbr = Translate("Stallion", "Stallion");
3094 break;
3095 case Kwpn.Models.Enumerations.Gender.MERRIE:
3096 genderClass = "fa-venus";
3097 genderAbbr = Translate("Mare", "Mare");
3098 isMare = true;
3099 break;
3100 case Kwpn.Models.Enumerations.Gender.RUIN:
3101 genderClass = "fa-mars"; //fa-mars-stroke-h
3102 genderAbbr = Translate("Gelding", "Gelding");
3103 break;
3104 }
3105 horseName = HorseHelper.GetHorseName(horse.SportsName, horse.AnimalName, horse.DateOfBirth.Value);
3106 var fatherName = "";
3107 var father = horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.Father);
3108 if (father != null) { fatherName = father.AnimalName; } else { fatherName = Translate("Unknown", "Unknown"); }
3109 var fatherNameAbbr = Translate("FathersName", "Fathers name").JsEncode();
3110 var mothersFatherName = "";
3111 var mothersFather = horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFather);
3112 if (mothersFather != null) { mothersFatherName = mothersFather.AnimalName; } else { mothersFatherName = Translate("Unknown", "Unknown"); }
3113 var mothersFatherNameAbbr = Translate("MothersFathersName", "Mothers fathers name").JsEncode();
3114
3115 // HORSE INFO TABLE DATA
3116 var placeOfBirth = horse.PlaceOfBirth;
3117 var chipNumber = horse.ChipNumber;
3118 var register = horse.Register;
3119 var breedingDirection = horse.BreedingDirection;
3120 var lifeNumber = horse.Lifenumber;
3121 if (!string.IsNullOrWhiteSpace(horse.LifenumberComplete)) { lifeNumber = horse.LifenumberComplete; }
3122 var dateOfBirth = "";
3123 if (horse.DateOfBirth.HasValue && !dateOfBirth.Equals(DateTime.MinValue)) { dateOfBirth = horse.DateOfBirth.Value.ToShortDateString(); }
3124 var color = "";
3125 var colorInfo = horse.GetMarkingByType(StringConstants.MarkingTypes.Color);
3126 if (colorInfo != null) { color = colorInfo.Description; }
3127 var wffs = isMyHorse ? horse.WFFSResearchInformation.ToLower() : isApprovedStud ? horse.WFFSResearchInformation.ToLower() : string.Empty;
3128 var fertilizationMethod = horse.FertilizationMethod;
3129
3130 if (!string.IsNullOrWhiteSpace(horse.FertilizationMethod) && horse.FertilizationMethod.Equals("ET", StringComparison.OrdinalIgnoreCase))
3131 {
3132 horse.FertilizationMethod = Translate("FertilizationMethod_ET", "embryo flushing");
3133 }
3134
3135 var withers = "";
3136 var heightInfo = horse.GetMarkingByType(StringConstants.MarkingTypes.Height);
3137 if (heightInfo != null) { withers = heightInfo.Description; }
3138 if (!string.IsNullOrWhiteSpace(withers)) { withers = HorseHelper.ConvertWithers(withers); }
3139 breeders = horse.Breeders;
3140 hasBreeders = breeders != null && breeders.Any();
3141
3142 // descendent- and performance report
3143 var reports = horse.AnimalReports;
3144
3145 int currentAge = FormatHelpers.CalculateAgeAsInt(horse.DateOfBirth.Value);
3146
3147 showGeneticProfileBasedOnRegister = HorseHelper.IsAllowedRegister(horse.Register) || string.Equals(horse.Register, "ZE", StringComparison.OrdinalIgnoreCase);
3148 showGeneticProfileBasedOnOwnerSettings = !HorseHelper.GeneticProfileIsHidden(animalCode, currentAge);
3149
3150 // validate actions
3151 actionRequestBreedingAdvice = isAlive && isMare;
3152 actionSignUpInspectionEvent = isAlive && isMyHorse;
3153 actionReportDeceasedHorse = isAlive && isMyHorse;
3154 actionRequestContinuedPassport = (!isApprovedStud || isMyHorse) && isAlive;
3155 actionRequestDuplicate = (!isApprovedStud || isMyHorse) && isAlive;
3156 actionRequestPredicates = (!isApprovedStud || isMyHorse);
3157 actionRegisterHorseToName = LoginHelper.IsFullMember() && !isApprovedStud && isAlive && !isMyHorse && !Kwpn.Repository.Helpers.LoginHelper.IsBlocked();
3158 actionRegisterFoal = isMyHorse && isAlive && isMare;
3159 actionRegisterEmbryo = isMyHorse && isAlive && isMare;
3160 actionReportHorseSold = isAlive && isMyHorse;
3161 actionVeterinarianRequestResearch = UserHelper.CheckIfVeterinarian();
3162 actionRequestGenomicBreedingValueTest = isMyHorseAndConfirmed && isAvailableForResearch;
3163 actionSellViaMarketplace = isAlive && (UserHelper.CheckIfMarketplaceManager() || (isMyHorseAndConfirmed && HorseHelper.IsAllowedRegister(horse.Register))) && !MarketplaceHelper.AnimalHasActiveMarketplaceAdvert(horse.AnimalCode);
3164 actionInbreedingCalculation = !string.IsNullOrWhiteSpace(horse.BreedingDirection) &&
3165 isMyHorse &&
3166 isMare &&
3167 isAlive &&
3168 currentAge > 2 &&
3169 currentAge < 26 &&
3170 (
3171 horse.BreedingDirection.Equals(Translate("EquisBreedingDirection_GelderHorse", "Gelder Horse")) ||
3172 horse.BreedingDirection.Equals(Translate("EquisBreedingDirection_HarnessHorse", "Harness Horse")) ||
3173 horse.BreedingDirection.Equals(Translate("EquisBreedingDirection_RidingHorse", "Riding Horse")) ||
3174 horse.BreedingDirection.Equals(Translate("EquisBreedingDirection_DressageHorse", "Dressage Horse")) ||
3175 horse.BreedingDirection.Equals(Translate("EquisBreedingDirection_JumperHorse", "Jumper Horse"))
3176 );
3177 actionGetStallionAdvice = isAlive && isMyHorse && isMare && currentAge > 2 && currentAge < 26;
3178 actionDnaPage = isMyHorse && !isApprovedStud;
3179 actionShow = (
3180 actionRequestBreedingAdvice ||
3181 actionSignUpInspectionEvent ||
3182 actionReportDeceasedHorse ||
3183 actionRequestContinuedPassport ||
3184 actionRequestDuplicate ||
3185 actionRegisterHorseToName ||
3186 actionRegisterEmbryo ||
3187 actionRegisterFoal ||
3188 actionReportHorseSold ||
3189 actionVeterinarianRequestResearch ||
3190 actionRequestGenomicBreedingValueTest ||
3191 actionSellViaMarketplace ||
3192 actionInbreedingCalculation ||
3193 actionRequestPredicates ||
3194 actionGetStallionAdvice ||
3195 actionDnaPage);
3196
3197 // add horse info to seo page
3198 seoPage = string.Format("{0}/{1}/{2}", seoPage, animalCode.UrlEncode(), HorseHelper.GetHorseName(horse.SportsName, horse.AnimalName, null).Replace(" ", "-").UrlEncode());
3199
3200 if (actionReportHorseSold)
3201 {
3202 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
3203 <div class="modal fade" id="confirm-sold" tabindex="-1" role="dialog" aria-labelledby="horse-sold-modal" aria-hidden="true">
3204 <div class="modal-dialog">
3205 <div class="modal-content">
3206 <div class="modal-header">@Translate("HorseSoldModalHeader", "Report horse as sold")</div>
3207 <div class="modal-body" data-default="@Translate("HorseSoldModalText", "Are you sure you would like to report your horse <span class='horseInfo'>{horse}</span> as sold?")"></div>
3208 <div class="modal-footer">
3209 <a class="orange_arrow_link" data-dismiss="modal" href="javascript:void(0);">@Translate("Cancel", "Cancel")</a>
3210 <a class="orange_balloon_link modal-ok" href="javascript:void(0);">@Translate("ReportAsSold", "Report as sold")</a>
3211 </div>
3212 </div>
3213 </div>
3214 </div>
3215 @SnippetStart("JavascriptsBottom")
3216 <script>
3217 $(document).ready(function () {
3218
3219 $(".horse-sold-button").click(function (e) {
3220
3221 // set modal text
3222 var horseInfo = "@horseName (@lifeNumber)";
3223 var modalBody = $("#confirm-sold .modal-body").attr("data-default");
3224 var newModalBody = modalBody.replace("{horse}", horseInfo);
3225 $("#confirm-sold .modal-body").html(newModalBody);
3226
3227 // seo tracking
3228 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_horse_sold", "horse-sold").UrlEncode()).ToLower()");
3229
3230 // set modal ok button value
3231 var horseCode = "@animalCode";
3232 var horseSoldApi = "/kwpnwebapi/horses/reportsold/@culture/" + horseCode;
3233 var okButton = $("#confirm-sold .modal-footer .modal-ok");
3234 okButton.unbind("click");
3235 okButton.click(function () {
3236 $.getJSON(horseSoldApi).done(function (result, status, metaData) {
3237 if (result) {
3238 location.reload(); // reload page to change isMyhorse options
3239 }
3240 if (!result) {
3241 Swal.fire({ title: "@Translate("SomethingWentWrongTitle", "Something went wrong")" ,text: "@Translate("SomethingWentWrong", "Something went wrong")", customClass: layout.notifyCopyrightMessageClass });
3242 }
3243 }).fail(function (jqxhr, textStatus, error) {
3244 var err = textStatus + ", " + error;
3245 console.error("Request Reportsold Failed: " + err);
3246 });
3247 $("#confirm-sold").modal("hide");
3248 });
3249
3250 // show modal
3251 $("#confirm-sold").modal("show");
3252
3253 });
3254 });
3255 </script>
3256 @SnippetEnd("JavascriptsBottom")
3257 }
3258 <div class="break-grid content-container page-content-aside horse-database">
3259 <div class="break-grid-background">
3260 <div class="in-grid">
3261
3262 <div class="row">
3263 <div class="col-xs-12">
3264 <h1 class="pageTitle"> </h1>
3265 </div>
3266 </div>
3267
3268 <div class="row">
3269 <div class="col-xs-12">
3270 <div class="notification"></div>
3271 </div>
3272 </div>
3273
3274 @if (string.IsNullOrWhiteSpace(action))
3275 {
3276 var horseNameTitle = horseName;
3277 if (isApprovedStud)
3278 {
3279 horseNameTitle = string.Format("{0} <img class='icon-weapon' src='/Files/Templates/Designs/Kwpn/Images/wapen.svg' /> ", horseNameTitle);
3280 }
3281 <div class="row">
3282 <div class="col-xs-12 col-md-7">
3283 <a class="go-back orange_arrow_link arrowleft pull-right hidden-md hidden-lg" href="#">@Translate("Back", "Back")</a>
3284 <h1>@horseNameTitle</h1>
3285 </div>
3286 <div class="hidden-xs hidden-sm col-md-4 col-lg-3">
3287 <a class="go-back orange_arrow_link arrowleft pull-right" href="#">@Translate("Back", "Back")</a>
3288 </div>
3289 </div>
3290 <div class="row">
3291 <div class="col-xs-12 col-md-2">
3292 <span class="gender"><i class="fa @genderClass" title='@genderAbbr.JsEncode()'></i> @genderAbbr.ToUpper()</span>@if (!isAlive)
3293 {<span class="deceased" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"><img src="/Files/Templates/Designs/Kwpn/Images/deceased-icon.png" /></span>}
3294 </div>
3295 <div class="col-xs-12 col-md-10">
3296 <span class="pedigree"><i class="fa fa-tag"></i> <abbr title='@fatherNameAbbr'>@fatherName</abbr> x <abbr title='@mothersFatherNameAbbr'>@mothersFatherName</abbr></span>
3297 </div>
3298 </div>
3299 }
3300
3301 <div class="row">
3302 <div class="col-xs-12 col-md-2 col-md-push-10 aside-page">
3303 <div class="bg_aside closed">
3304 <div class="aside_pullLabel">Menu<i class="fa fa-bars" aria-hidden="true"></i></div>
3305 <aside>
3306 @using System.Web.Mvc;
3307 @using Kwpn.Core.Services.Abstract;
3308 @using Kwpn.Models.Enumerations;
3309 @using Kwpn.Core.Helpers;
3310
3311 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
3312 @*note: variables like "action/isAlive/isMyHorse/horse/culture/animalCode/isApprovedStud" are set in the parent: Paragraph/HorseDatabase.cshtml*@
3313 @*DEFAULT ASIDE*@
3314
3315 @{
3316 var currentUser = Kwpn.Repository.Repositories.KwpnUsers.CurrentUser();
3317 var jumpVideoService = DependencyResolver.Current.GetService<IJumpPortalVideoService>();
3318
3319 var collection = new Kwpn.Models.Jump.VideoResponse[0];
3320 if (horse != null && !string.IsNullOrEmpty(horse.AnimalCode))
3321 {
3322 collection = jumpVideoService.GetVideosByTag(horse.AnimalCode);
3323 }
3324 }
3325
3326
3327
3328 @if (string.IsNullOrWhiteSpace(action))
3329 {
3330 #region TabLinks
3331 <h2 id="listheader-tabs" data-childId="view-list-tabs" class="notactive"><span>@Translate("Menu", "Menu")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
3332 <div class="list-tabs">
3333 <ul>
3334 <li data-tab="tab_general" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_general", "general-info").UrlEncode()" class="active"><a href="javascript:void(0);">@Translate("General", "General")</a></li>
3335 <li data-tab="tab_achievements" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_achievements", "achievements").UrlEncode()"><a href="javascript:void(0);">@Translate("Achievements", "Achievements")</a></li>
3336 <li data-tab="tab_achievements_motherline" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_achievements_motherline", "achievements-motherline").UrlEncode()"><a href="javascript:void(0);">@Translate("AchievementsMotherLine", "Achievements mother line")</a></li>
3337 @if (showGeneticProfileBasedOnRegister)
3338 {
3339 <li data-tab="tab_genetic_profile" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_genetic_profile", "genetic-profile").UrlEncode()"><a href="javascript:void(0);">@Translate("GeneticProfile", "Genetic profile")</a></li>
3340 }
3341 @if (isMare || isMyHorse)
3342 {
3343 <li data-tab="tab_offspring" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_offspring", "offspring").UrlEncode()"><a href="javascript:void(0);">@Translate("Offspring", "Offspring")</a></li>
3344 }
3345 @if (isApprovedStud)
3346 {
3347 <li data-tab="tab_breeding_registration" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_breeding_registration", "breeding-registration").UrlEncode()"><a href="javascript:void(0);">@Translate("BreedingRegistration", "Breeding registration")</a></li>
3348 <li data-tab="tab_approved_offspring" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_approved_offspring", "approved-offspring").UrlEncode()"><a href="javascript:void(0);">@Translate("ApprovedOffspring", "Approved offspring")</a></li>
3349 <li data-tab="tab_performance_report" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_performance_report", "performance-report").UrlEncode()"><a href="javascript:void(0);">@Translate("PerformanceReport", "Performance report")</a></li>
3350 <li data-tab="tab_performance_figures" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_performance_figures", "performance-figures").UrlEncode()"><a href="javascript:void(0);">@Translate("PerformanceFigures", "Performance figures")</a></li>
3351 <li data-tab="tab_availability" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_availability", "availability").UrlEncode()"><a href="javascript:void(0);">@Translate("Availability", "Availability")</a></li>
3352 <li data-tab="tab_descendant_report" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_descendant_report", "descendant-report").UrlEncode()"><a href="javascript:void(0);">@Translate("DescendantsReport", "Descendants report")</a></li>
3353 }
3354 @{
3355 var asideBreeders = breeders?.Where(b => b.AllowedOwnerBreeder && Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(b.PersonCode));
3356 if (asideBreeders != null && asideBreeders.Any())
3357 {
3358 <li data-tab="tab_breeders_info">
3359 <span class="list-item">
3360 @(asideBreeders.Count() > 1 ? Translate("Breeders", "Breeders") : Translate("Breeder", "Breeder")):<br />
3361 @foreach (var breeder in asideBreeders)
3362 {
3363 <span class="breeder-link" data-personcode="@breeder.PersonCode">@breeder.PersonName</span>
3364 }
3365 </span>
3366 </li>
3367 }
3368
3369 }
3370 </ul>
3371 </div>
3372
3373 <script>
3374 $(document).ready(function () {
3375 @if (collection != null && collection.Any())
3376 {
3377 <text>
3378 $(".list-tabs ul").append("<li data-tab=\"tab_videos\"><a href=\"javascript:void(0);\">@Translate("Videos", "Videos")</a></li>");
3379
3380 $(".list-tabs li[data-tab=tab_videos] a").click(function () {
3381 var listItem = $(this).parent();
3382 var tab = listItem.attr("data-tab");
3383
3384 // remove existing active from tab list
3385 $(".list-tabs li").removeClass("active");
3386
3387 // add active
3388 listItem.addClass("active");
3389
3390 // hide all content items
3391 $(".horse-detail-item").addClass("hidden");
3392
3393 LoadVideos();
3394
3395 // show items corresponding to current active tab
3396 $(".horse-detail-item[data-content=" + tab + "]").removeClass("hidden");
3397 });
3398 </text>
3399 }
3400
3401
3402 function LoadVideos() {
3403
3404 var videoContent = $("#video-container", "#horse-detail-item-videos");
3405
3406 }
3407
3408 function ClearVideos() {
3409 var videoContent = $("#video-container", "#horse-detail-item-videos");
3410 videoContent.html("");
3411 }
3412
3413 $(".list-tabs a").click(function () {
3414
3415 var listItem = $(this).parent();
3416 var tab = listItem.attr("data-tab");
3417 var vp = listItem.attr("data-vp").toLowerCase();
3418
3419 // remove existing active from tab list
3420 $(".list-tabs li").removeClass("active");
3421
3422 // add active
3423 listItem.addClass("active");
3424
3425 // hide all content items
3426 $(".horse-detail-item").addClass("hidden");
3427
3428 // SEO VIRTUAL PAGE VIEW LOGGING
3429 SEO.trackPageView("@seoPage.ToLower()/" + vp);
3430
3431 // if item is "video", load videos
3432 if (tab == "tab_videos") {
3433 LoadVideos();
3434 }
3435 else {
3436 ClearVideos();
3437 }
3438
3439 // show items corresponding to current active tab
3440 $(".horse-detail-item[data-content=" + tab + "]").removeClass("hidden");
3441
3442 });
3443 });
3444 </script>
3445 @SnippetEnd("JavascriptsBottom")
3446 #endregion
3447 }
3448
3449 @if (string.IsNullOrWhiteSpace(action) && actionShow)
3450 {
3451 #region ActionLinks
3452 <h2 id="listheader-actions" data-childId="list-actions" class="notactive">
3453 <span>@Translate("Actions", "Actions")</span><i class="fa fa-chevron-down" aria-hidden="true"></i>
3454 </h2>
3455 <div class="list-actions">
3456 <ul>
3457 @if (actionRegisterHorseToName)
3458 {
3459 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Register_HorseToName", "RegisterHorse"))">@Translate("Action_Register_HorseToName", "Register horse")</a></li>
3460 }
3461 @if (actionSignUpInspectionEvent)
3462 {
3463 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseEventsPageUrl(culture, horse.AnimalCode)">@Translate("Action_SignUp_InspectionEvent", "Sign up for inspection / event")</a></li>
3464 }
3465
3466 @*@if (actionGetStallionAdvice)
3467 {
3468 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"))">@Translate("Action_Request_StallionAdvice", "Stallion advice")</a></li>
3469 }*@
3470 @if (actionRequestGenomicBreedingValueTest)
3471 {
3472 <li><a href="javascript:void(0);" onclick="javascript:AddHorseToGenomeBreedingValueTest();return false;">@Translate("Action_Request_GenomeBreedingValueTest", "Request DNA/OC research")</a></li>
3473 }
3474 @if (actionSellViaMarketplace)
3475 {
3476 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_SellViaMarketplace", "sell"))">@Translate("Action_SellViaMarketplace", "Sell via KWPN Marketplace")</a></li>
3477 }
3478 @if (actionReportHorseSold)
3479 {
3480 <li><a href="javascript:void(0);" class="horse-sold-button">@Translate("Action_Report_HorseSold", "Report horse as sold")</a></li>
3481 }
3482 @if (actionReportDeceasedHorse)
3483 {
3484 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Report_HorseDied", "HorseDied"))">@Translate("Action_Report_HorseDied", "Report horse died")</a></li>
3485 }
3486 @if (actionInbreedingCalculation)
3487 {
3488 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_InbreedingCalculation", "InbreedingCalculation"))">@Translate("Action_InbreedingCalculation", "Inbreeding calculation")</a></li>
3489 }
3490 @if (actionRequestDuplicate)
3491 {
3492 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_Duplicate", "Duplicate"))">@Translate("Action_Request_Duplicate", "Request duplicate")</a></li>
3493 }
3494 @if (actionRequestContinuedPassport)
3495 {
3496 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_ContinuedPassport", "PassportRenewal"))">@Translate("Action_Request_ContinuedPassport", "Requests for passport renewal")</a></li>
3497 }
3498 @if (actionRequestPredicates)
3499 {
3500 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_Predicates", "RequestPredicates"))">@Translate("Action_Request_Predicates", "Request predicate(s)")</a></li>
3501 }
3502
3503 @if (currentUser != null && currentUser.IsVeterinarian)
3504 {
3505 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&type=@ResearchType.PROK_Research_General">@Translate("Action_PROK_Research_General", "Request PROK")</a></li>
3506 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&type=@ResearchType.PROK_Research_Mares">@Translate("Action_PROK_Research_Mares", "Request PROK mares")</a></li>
3507
3508 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&type=@ResearchType.SPST">@Translate("Action_Request_SPST_Exam", "Request SPST examination")</a></li>
3509 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&type=@ResearchType.OC">@Translate("Action_Request_OC_Exam", "Request OC examination")</a></li>
3510
3511 }
3512
3513
3514
3515 @if (isMyHorse)
3516 {
3517 <li class="refresh"><a href="#" id="refresh-link"><abbr title="@Translate("Action_RefreshHorseDataAbbr", "When refreshing the horse data we fetch the information from our back-end system. This may take a while.")">@Translate("Action_RefreshHorseData", "Refresh horse data")</abbr></a></li>
3518 }
3519 </ul>
3520 </div>
3521 @SnippetStart("JavascriptsBottom")
3522 <script>
3523
3524 @if (actionRequestGenomicBreedingValueTest)
3525 {
3526 <text>
3527 function AddHorseToGenomeBreedingValueTest() {
3528 var redirectUrl = '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"))';
3529 // add horse to KwpnUser.GenomeBreedingValueItems
3530 var addHorseUrl = "/kwpnwebapi/forms/research/upserthorse/@horse.AnimalCode";
3531 $.getJSON(addHorseUrl).done(function () {
3532 window.location.href = redirectUrl;
3533 }).fail(function (jqxhr, textStatus, error) {
3534 var err = textStatus + ", " + error;
3535 console.error("Request AddHorse Failed: " + err);
3536 });
3537 }
3538 </text>
3539 }
3540
3541 $(document).ready(function () {
3542
3543 @if (isMyHorse)
3544 {
3545 <text>
3546 $("#refresh-link").off("click").on("click", function (e) {
3547 e.preventDefault();
3548 $(".horse-database").addClass("hidden");
3549 $("#refreshcontainer").removeClass("hidden");
3550 var refreshHorse = "/kwpnwebapi/horses/refreshmyhorse/@culture/@horse.AnimalCode/@true";
3551 $.ajax(refreshHorse).always(function () {
3552 window.location.href = "@System.Web.HttpContext.Current.Request.RawUrl";
3553 });
3554 return false;
3555 });
3556 </text>
3557 }
3558
3559 @*
3560
3561 NOTE:
3562 WHENEVER THE DNA PAGE GOES LIVE AND THIS GETS UNCOMMENTED,
3563 THE 'check if document download links should be added to the action list and if so, do'
3564 JAVASCRIPT BENEITH MUST BE REMOVED !!
3565
3566 // check if any document is available. if so show the DNA page when it is your horse and it isn't an apporved stud
3567 @if (Kwpn.Repository.Helpers.LoginHelper.HasAccessToExtendedHorseData() && isMyHorse && !isApprovedStud)
3568 {
3569 <text>
3570 //var downloadsApiUrl = "/kwpnwebapi/horses/getdownloaddocuments/@culture/@animalCode";
3571 //$.getJSON(downloadsApiUrl).done(function (result) {
3572 // if (result != null && result.length > 0) {
3573 // var dnaPageListItem = '<li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, animalCode, Translate("ActionLink_DnaPage", "DNA-Page"))">@Translate("Action_Request_DnaPage", "DNA-Page")</a></li>';
3574 // $("aside .list-actions ul").find(' > li:nth-last-child(1)').before(dnaPageListItem); // place at the end, but before the last, which is the refresh button
3575 // }
3576 // }).fail(function (jqxhr, textStatus, error) {
3577 // var err = textStatus + ", " + error;
3578 // console.error("Request Getdownloaddocuments Failed: " + err);
3579 // });
3580 </text>
3581 }*@
3582
3583
3584 // check if document download links should be added to the action list and if so, do
3585 @if (Kwpn.Repository.Helpers.LoginHelper.HasAccessToExtendedHorseData())
3586 {
3587 <text>
3588 // download documents
3589 $(".downloaddocument").remove();
3590 var downloadsApiUrl = "/kwpnwebapi/horses/getdownloaddocuments/@culture/@animalCode";
3591 $.getJSON(downloadsApiUrl).done(function (result) {
3592 if (result != null && result.length > 0) {
3593 $.each(result, function (i, downloadDocument) {
3594 var downloadDocumentUrl = downloadDocument.URL;
3595 if (downloadDocumentUrl != null) {
3596 downloadDocumentUrl = downloadDocumentUrl.replace(/\\/g, "/"); // fix slashes
3597 var downloadDocumentLabel = "@Translate("DownloadDocument", "Download document"): " + downloadDocument.TypeDocument;
3598 var downloadDocumentListItem = "<li class=\"downloaddocument\"><a href=\"" + downloadDocumentUrl + "\" download target=\"_blank\">" + downloadDocumentLabel + "</a></li>";
3599 $("aside .list-actions ul").find(' > li:nth-last-child(1)').before(downloadDocumentListItem); // place at the end, but before the last, which is the refresh button
3600 }
3601 });
3602 }
3603 }).fail(function (jqxhr, textStatus, error) {
3604 var err = textStatus + ", " + error;
3605 console.error("Request Getdownloaddocuments Failed: " + err);
3606 });
3607 </text>
3608 }
3609
3610
3611 });
3612 </script>
3613 @SnippetEnd("JavascriptsBottom")
3614 #endregion
3615 }
3616
3617 @*ACTION ASIDES*@
3618 @if (!string.IsNullOrWhiteSpace(action))
3619 {
3620 var productService = new Dynamicweb.Ecommerce.Products.ProductService();
3621 var ecomLanguageId = Dynamicweb.Frontend.PageView.Current().Area.EcomLanguageId;
3622
3623 // EVENT SIGN UP
3624 if (action.Equals(Translate("ActionLink_SignUp_InspectionEvent", "EventSignUp"), StringComparison.InvariantCultureIgnoreCase) &&
3625 actionSignUpInspectionEvent)
3626 {
3627 var eventSignUpProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.EventSignUp, ecomLanguageId);
3628 if (eventSignUpProduct != null)
3629 {
3630 <h2 id="event-signup-aside-info-header" data-childId="event-signup-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
3631 <div class="list-actions">
3632 <table id="event-signup-aside-aside-info" class="aside-content aside-content-info notactive">
3633 <colgroup>
3634 <col width="30" />
3635 <col />
3636 </colgroup>
3637 <tr class="head">
3638 <th><i class="fa fa-info"></i></th>
3639 <th>@Translate("Product", "Product")</th>
3640 </tr>
3641 <tr>
3642 <td> </td>
3643 <td>@eventSignUpProduct.Name <span class="inspection-price"></span></td>
3644 </tr>
3645 <tr class="required-services hidden" data-subtotal="">
3646 <td> </td>
3647 <td class="required-service"></td>
3648 </tr>
3649 <tr class="head">
3650 <th><i class="fa fa-eur"></i></th>
3651 <th>@Translate("Price", "Price")</th>
3652 </tr>
3653 <tr>
3654 <td> </td>
3655 <td>€ <span id="eventSignUpPriceAside">@Translate("NotYetKnown", "n.y.k.")</span> (@Translate("VatIncluded", "VAT included"))</td>
3656 </tr>
3657 </table>
3658 </div>
3659 }
3660 }
3661
3662
3663 // CUP EVENT SIGN UP
3664 if (actionSignUpCupEvent)
3665 {
3666 var eventSignUpProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.EventSignUp, ecomLanguageId);
3667 if (eventSignUpProduct != null)
3668 {
3669 <h2 id="event-signup-aside-info-header" data-childId="event-signup-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
3670 <div class="list-actions">
3671 <table id="event-signup-aside-aside-info" class="aside-content aside-content-info notactive">
3672 <colgroup>
3673 <col width="30" />
3674 <col />
3675 </colgroup>
3676 <tr class="head">
3677 <th><i class="fa fa-info"></i></th>
3678 <th>@Translate("Product", "Product")</th>
3679 </tr>
3680 <tr>
3681 <td> </td>
3682 <td>@eventSignUpProduct.Name <span class="inspection-price"></span></td>
3683 </tr>
3684 <tr class="required-services hidden" data-subtotal="">
3685 <td> </td>
3686 <td class="required-service"></td>
3687 </tr>
3688 <tr class="head">
3689 <th><i class="fa fa-eur"></i></th>
3690 <th>@Translate("Price", "Price")</th>
3691 </tr>
3692 <tr>
3693 <td> </td>
3694 <td><span id="eventCupSignUpPriceAside">@Translate("NotYetKnown", "n.y.k.")</span> (@Translate("VatIncluded", "VAT included"))</td>
3695 </tr>
3696 </table>
3697 </div>
3698 }
3699 }
3700
3701 // STALLION ADVICE
3702 else if (action.Equals(Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"), StringComparison.InvariantCultureIgnoreCase) &&
3703 actionGetStallionAdvice)
3704 {
3705 <h2 id="stallion-advice-aside-info-header" data-childId="stallion-advice-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
3706 <div class="list-actions">
3707 <table id="stallion-advice-aside-info" class="aside-content aside-content-info notactive">
3708 <colgroup>
3709 <col width="30" />
3710 <col />
3711 </colgroup>
3712 <tr class="head">
3713 <th><i class="fa fa-info"></i></th>
3714 <th>Hengsten advies</th>
3715 </tr>
3716 <tr>
3717 <td> </td>
3718 <td>@horseName<br /><span id="stallion-advice-aside-breedingdirection-mare">@horse.BreedingDirection</span></td>
3719 </tr>
3720 </table>
3721 <ul class="aside-content notactive" id="stallion-advice-aside-links">
3722 <li class="step-0 hidden"><a href='#' onclick="StallionAdvice.ShowStep(0); return false;">@Translate("StallionAdvice_BackToStep0_LinkText", "Explanation")</a></li>
3723 <li class="step-1 hidden"><a href='#' onclick="StallionAdvice.ShowStep(1); return false;">@Translate("StallionAdvice_BackToStep1_LinkText", "Step 1")</a></li>
3724 <li class="step-2 hidden"><a href='#' onclick="StallionAdvice.ShowStep(2); return false;">@Translate("StallionAdvice_BackToStep2_LinkText", "Step 2")</a></li>
3725 </ul>
3726 </div>
3727 }
3728
3729 // CONTINUED PASSPORT
3730 else if (action.Equals(Translate("ActionLink_Request_ContinuedPassport", "PassportRenewal"), StringComparison.InvariantCultureIgnoreCase) &&
3731 actionRequestContinuedPassport)
3732 {
3733 var passportRenewalProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.PassportRenewal, ecomLanguageId);
3734 if (passportRenewalProduct != null)
3735 {
3736 <h2 id="passport-renewal-aside-info-header" data-childId="passport-renewal-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
3737 <div class="list-actions">
3738 <table id="passport-renewal-aside-info" class="aside-content aside-content-info notactive">
3739 <colgroup>
3740 <col width="30" />
3741 <col />
3742 </colgroup>
3743 <tr class="head">
3744 <th><i class="fa fa-info"></i></th>
3745 <th>@Translate("Product", "Product")</th>
3746 </tr>
3747 <tr>
3748 <td> </td>
3749 <td>@passportRenewalProduct.Name</td>
3750 </tr>
3751 <tr class="head">
3752 <th><i class="fa fa-eur"></i></th>
3753 <th>@Translate("Price", "Price")</th>
3754 </tr>
3755 <tr>
3756 <td> </td>
3757 <td>@Kwpn.Repository.Helpers.ProductHelper.FormatPrice(Kwpn.Repository.Helpers.ProductHelper.GetProductPrice(passportRenewalProduct)) (@Translate("VatIncluded", "VAT included"))</td>
3758 </tr>
3759 </table>
3760 </div>
3761 }
3762 }
3763
3764 // PASSPORT DUPLICATE
3765 else if (action.Equals(Translate("ActionLink_Request_Duplicate", "Duplicate"), StringComparison.InvariantCultureIgnoreCase) &&
3766 actionRequestDuplicate)
3767 {
3768 <h2 id="passport-duplicate-aside-info-header" data-childId="passport-duplicate-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
3769 <div class="list-actions">
3770 <table id="passport-duplicate-info" class="aside-content aside-content-info notactive">
3771 <colgroup>
3772 <col width="30" />
3773 <col />
3774 </colgroup>
3775 <tr class="head">
3776 <th><i class="fa fa-info"></i></th>
3777 <th>@Translate("Product", "Product")</th>
3778 </tr>
3779 <tr>
3780 <td> </td>
3781 <td id="passport-duplicate-product-name"><!--value is set by javascript based on form selection--></td>
3782 </tr>
3783 <tr class="head">
3784 <th><i class="fa fa-eur"></i></th>
3785 <th>@Translate("Price", "Price")</th>
3786 </tr>
3787 <tr>
3788 <td> </td>
3789 <td>
3790 <span id="passport-duplicate-product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included"))
3791 </td>
3792 </tr>
3793 </table>
3794 </div>
3795 }
3796
3797 // REGISTER HORSE TO NAME
3798 else if (action.Equals(Translate("ActionLink_Register_HorseToName", "RegisterHorse"), StringComparison.InvariantCultureIgnoreCase) &&
3799 actionRegisterHorseToName)
3800 {
3801 var registerHorseProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.RegisterHorse, ecomLanguageId);
3802 if (registerHorseProduct != null)
3803 {
3804 <h2 id="register-horse-aside-info-header" data-childId="register-horse-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
3805 <div class="list-actions">
3806 <table id="register-horse-aside-info" class="aside-content aside-content-info notactive">
3807 <colgroup>
3808 <col width="30" />
3809 <col />
3810 </colgroup>
3811 <tr class="head">
3812 <th><i class="fa fa-info"></i></th>
3813 <th>@Translate("Product", "Product")</th>
3814 </tr>
3815 <tr>
3816 <td> </td>
3817 <td>@registerHorseProduct.Name</td>
3818 </tr>
3819 <tr class="head">
3820 <th><i class="fa fa-eur"></i></th>
3821 <th>@Translate("Price", "Price")</th>
3822 </tr>
3823 <tr>
3824 <td> </td>
3825 <td>@Kwpn.Repository.Helpers.ProductHelper.FormatPrice(Kwpn.Repository.Helpers.ProductHelper.GetProductPrice(registerHorseProduct)) (@Translate("VatIncluded", "VAT included"))</td>
3826 </tr>
3827 </table>
3828 </div>
3829 }
3830 }
3831
3832 // REGISTER EMBRYO
3833 else if (action.Equals(Translate("ActionLink_Register_Embryo", "RegisterEmbryo"), StringComparison.InvariantCultureIgnoreCase) &&
3834 actionRegisterEmbryo)
3835 {
3836 <h2 id="register-embryo-aside-info-header" data-childId="register-embryo-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
3837 <div class="list-actions">
3838 <table id="register-embryo-aside-info" class="aside-content aside-content-info notactive">
3839 <colgroup>
3840 <col width="30" />
3841 <col />
3842 </colgroup>
3843 <tr class="head">
3844 <th><i class="fa fa-info"></i></th>
3845 <th>@Translate("Product", "Product")</th>
3846 </tr>
3847 <tr>
3848 <td> </td>
3849 <td id="register-embryo-product-name"><!--value is set by javascript based on form selection--></td>
3850 </tr>
3851 <tr class="head">
3852 <th><i class="fa fa-eur"></i></th>
3853 <th>@Translate("Price", "Price")</th>
3854 </tr>
3855 <tr>
3856 <td> </td>
3857 <td>
3858 <span id="register-embryo-product-price"><!--value is set by javascript based on form selection--></span>
3859 </td>
3860 </tr>
3861 </table>
3862 </div>
3863 }
3864
3865 // REGISTER FOAL
3866 else if (action.Equals(Translate("ActionLink_Register_Foal", "RegisterFoal"), StringComparison.InvariantCultureIgnoreCase) &&
3867 actionRegisterFoal)
3868 {
3869 <h2 id="register-foal-aside-info-header" data-childId="register-foal-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
3870 <div class="list-actions">
3871 <table id="register-foal-aside-info" class="aside-content aside-content-info notactive">
3872 <colgroup>
3873 <col width="30" />
3874 <col />
3875 </colgroup>
3876 <tr class="head">
3877 <th><i class="fa fa-info"></i></th>
3878 <th>@Translate("Product", "Product")</th>
3879 </tr>
3880 <tr>
3881 <td> </td>
3882 <td id="register-foal-product-name"><!--value is set by javascript based on form selection--></td>
3883 </tr>
3884 <tr class="head">
3885 <th><i class="fa fa-eur"></i></th>
3886 <th>@Translate("Price", "Price")</th>
3887 </tr>
3888 <tr>
3889 <td> </td>
3890 <td>
3891 <span id="register-foal-product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included"))
3892 </td>
3893 </tr>
3894 </table>
3895 </div>
3896 }
3897
3898 // REQUEST WFFS / GENOME BREEDING VALUE TEST
3899 else if (action.Equals(Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"), StringComparison.InvariantCultureIgnoreCase) &&
3900 actionRequestGenomicBreedingValueTest)
3901 {
3902 <h2 id="genome-breeding-aside-info-header" data-childId="genome-breeding-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
3903 <div class="list-actions">
3904 <table id="genome-breeding-aside-info" class="aside-content aside-content-info notactive">
3905 <colgroup>
3906 <col width="30" />
3907 <col />
3908 </colgroup>
3909 <tr class="head">
3910 <th><i class="fa fa-info"></i></th>
3911 <th>@Translate("Product", "Product")</th>
3912 </tr>
3913 <tr>
3914 <td> </td>
3915 <td id="genome-breeding-product-name"><!--value is set by javascript based on form selection--></td>
3916 </tr>
3917 <tr class="head">
3918 <th><i class="fa fa-eur"></i></th>
3919 <th>@Translate("Price", "Price")</th>
3920 </tr>
3921 <tr>
3922 <td> </td>
3923 <td>
3924 <span id="genome-breeding-product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included"))
3925 </td>
3926 </tr>
3927 </table>
3928 </div>
3929 }
3930
3931 // SELL HORSE VIA MARKETPLACE
3932 else if (action.Equals(Translate("ActionLink_SellViaMarketplace", "sell"), StringComparison.InvariantCultureIgnoreCase) &&
3933 actionSellViaMarketplace)
3934 {
3935 <h2 id="marketplace-aside-info-header" data-childId="marketplace-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
3936 <div class="list-actions">
3937 <table id="marketplace-aside-info" class="aside-content aside-content-info notactive">
3938 <colgroup>
3939 <col width="30" />
3940 <col />
3941 </colgroup>
3942 <tr class="head">
3943 <th><i class="fa fa-info"></i></th>
3944 <th>@Translate("Product", "Product")</th>
3945 </tr>
3946 <tr>
3947 <td> </td>
3948 <td class="product-name"><!--value is set by javascript based on form selection--></td>
3949 </tr>
3950 <tr class="head paymentInfo hidden">
3951 <th><i class="fa fa-cc"></i></th>
3952 <th>@Translate("PaymentMethod", "Payment method")</th>
3953 </tr>
3954 <tr class="paymentInfo hidden">
3955 <td> </td>
3956 <td>@Translate("PaymentMethod_Text_Online", "Pay directly online")</td>
3957 </tr>
3958 <tr class="head">
3959 <th><i class="fa fa-eur"></i></th>
3960 <th>@Translate("Price", "Price")</th>
3961 </tr>
3962 <tr>
3963 <td> </td>
3964 <td>
3965 <span class="product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included"))
3966 </td>
3967 </tr>
3968 </table>
3969 </div>
3970 }
3971
3972 // REQUEST PREDICATES
3973 else if (action.Equals(Translate("ActionLink_Request_Predicates", "RequestPredicates"), StringComparison.InvariantCultureIgnoreCase) &&
3974 actionRequestPredicates)
3975 {
3976 <h2 id="request-predicates-aside-info-header" data-childId="request-predicates-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
3977 <div class="list-actions">
3978 <table id="request-predicates-aside-info" class="aside-content aside-content-info notactive">
3979 <colgroup>
3980 <col width="30" />
3981 <col />
3982 </colgroup>
3983 <tr class="head">
3984 <th><i class="fa fa-info"></i></th>
3985 <th>@Translate("Product", "Product")</th>
3986 </tr>
3987 <tr>
3988 <td> </td>
3989 <td class="product-name"><!--value is set by javascript based on form selection--></td>
3990 </tr>
3991 <tr class="head">
3992 <th><i class="fa fa-eur"></i></th>
3993 <th>@Translate("Price", "Price")</th>
3994 </tr>
3995 <tr>
3996 <td> </td>
3997 <td>
3998 <span class="product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included"))
3999 </td>
4000 </tr>
4001 </table>
4002 </div>
4003 }
4004 }
4005
4006 @*BACK TO DETAILS*@
4007 @if (!string.IsNullOrWhiteSpace(action))
4008 {
4009 <h2 id="back-to-info-header" data-childId="back-to-info-list" class="notactive"><span>@Translate("HorseInfo", "Horse info")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
4010 <div class="list-actions">
4011 <ul id="back-to-info-list" class="aside-content notactive">
4012 <li><a href='@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, animalCode)'>@Translate("ShowHorseDetails", "Show horse details")</a></li>
4013 </ul>
4014 </div>
4015 }
4016
4017 @*MEMBERSHIP CALL TO ACTION*@
4018 @*@if (!string.IsNullOrWhiteSpace(action) && (!Kwpn.Repository.Helpers.LoginHelper.HasAccessToExtendedHorseData()))
4019 {
4020 var becomeMemberPageId = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.BecomeMemberPageId);
4021 if (!string.IsNullOrWhiteSpace(becomeMemberPageId))
4022 {
4023 var becomeMemberPageUrl = string.Format("/Default.aspx?ID={0}", becomeMemberPageId);
4024 <h2 id="become-member-list-header" data-childId="become-member-list" class="notactive"><span>@Translate("NoAccount?", "No KWPN Account?")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2>
4025 <div class="list-actions">
4026 <ul id="become-member-list" class="aside-content notactive">
4027 <li><a href='@becomeMemberPageUrl'>@Translate("BecomeMemberNow", "Become a member now")</a></li>
4028 </ul>
4029 </div>
4030 }
4031 }*@
4032
4033 @if (action == null)
4034 {
4035 <!-- /204473129/DatabaseDetail/Banner1 -->
4036 <div id='div-gpt-ad-banner1-1' class="google-container google-container--size--b google-container--databasedetail">
4037 <script>
4038 googletag.cmd.push(function () { googletag.display('div-gpt-ad-banner1-1'); });
4039 </script>
4040 </div>
4041 }
4042 </aside>
4043 </div>
4044 </div>
4045 <article class="col-xs-12 col-md-10 page-content">
4046 @if (
4047 !isApprovedStud ||
4048 isMyHorse ||
4049 (action != null && action.Equals(Translate("ActionLink_SellViaMarketplace", "sell"), StringComparison.InvariantCultureIgnoreCase) && actionSellViaMarketplace))
4050 {
4051 <div>@inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
4052 @*note: variables like "action/isAlive/isMyHorse/horse/culture/animalCode/showGeneral" are set in the parent: Paragraph/HorseDatabase.cshtml*@
4053 @if (!string.IsNullOrWhiteSpace(action))
4054 {
4055
4056 // BREEDING ADVICE
4057 if (action.Equals(Translate("ActionLink_Request_BreedingAdvice", "BreedingAdvice"), StringComparison.InvariantCultureIgnoreCase) &&
4058 actionRequestBreedingAdvice)
4059 {
4060 var pageIdFormBreedingAdvice = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.BreedingAdvice);
4061 if (!string.IsNullOrWhiteSpace(pageIdFormBreedingAdvice))
4062 {
4063 showGeneral = false;
4064
4065 // SEO VIRTUAL PAGE VIEW LOGGING
4066 <Text>
4067 <script>
4068 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_breeding_advice", "breeding-advice").UrlEncode()).ToLower()");
4069 </script>
4070 </Text>
4071
4072 @RenderPageContent(Convert.ToInt32(pageIdFormBreedingAdvice))
4073 }
4074 }
4075
4076 // STALLION ADVICE
4077 @*if (action.Equals(Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"), StringComparison.InvariantCultureIgnoreCase) &&
4078 actionGetStallionAdvice)
4079 {
4080 var pageIdGetStallionAdvice = pageService.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.StallionAdvice)?.ID ?? 0;
4081 if (pageIdGetStallionAdvice > 0)
4082 {
4083 showGeneral = false;
4084
4085 // SEO VIRTUAL PAGE VIEW LOGGING
4086 <Text>
4087 <script>
4088 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_stalliob_advice", "stallion-advice").UrlEncode()).ToLower()");
4089 </script>
4090 </Text>
4091
4092 @RenderPageContent(pageIdGetStallionAdvice)
4093 }
4094 }*@
4095
4096 // EVENT SIGN UP
4097 if (action.Equals(Translate("ActionLink_SignUp_InspectionEvent", "EventSignUp"), StringComparison.InvariantCultureIgnoreCase) &&
4098 actionSignUpInspectionEvent)
4099 {
4100 var pageIdFormEventSignUp = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.EventSignUp);
4101 if (!string.IsNullOrWhiteSpace(pageIdFormEventSignUp) && !string.IsNullOrWhiteSpace(actionId))
4102 {
4103 showGeneral = false;
4104
4105 // SEO VIRTUAL PAGE VIEW LOGGING
4106 <Text>
4107 <script>
4108 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_event_signup", "event-signup").UrlEncode()).ToLower()");
4109 </script>
4110 </Text>
4111
4112 @RenderPageContent(Convert.ToInt32(pageIdFormEventSignUp))
4113 }
4114 }
4115
4116 // CUP EVENT SIGN UP
4117 if (actionSignUpCupEvent)
4118 {
4119 var pageIdFormCupEventSignUp = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.CupEventSignUp);
4120 if (!string.IsNullOrWhiteSpace(pageIdFormCupEventSignUp))
4121 {
4122 showGeneral = false;
4123
4124 // SEO VIRTUAL PAGE VIEW LOGGING
4125 <Text>
4126 <script>
4127 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_event_signup", "event-signup").UrlEncode()).ToLower()");
4128 </script>
4129 </Text>
4130
4131 @RenderPageContent(Convert.ToInt32(pageIdFormCupEventSignUp))
4132 }
4133 }
4134
4135 // REPORT DECEASED HORSE
4136 if (action.Equals(Translate("ActionLink_Report_HorseDied", "HorseDied"), StringComparison.InvariantCultureIgnoreCase) &&
4137 actionReportDeceasedHorse)
4138 {
4139 var pageIdReportDeceased = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.ReportDeceased);
4140 if (!string.IsNullOrWhiteSpace(pageIdReportDeceased))
4141 {
4142 showGeneral = false;
4143
4144 // SEO VIRTUAL PAGE VIEW LOGGING
4145 <Text>
4146 <script>
4147 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_report_deceased_horse", "report-deceased-horse").UrlEncode()).ToLower()");
4148 </script>
4149 </Text>
4150
4151 @RenderPageContent(Convert.ToInt32(pageIdReportDeceased))
4152 }
4153 }
4154
4155 // CONINUED PASSPORT
4156 if (action.Equals(Translate("ActionLink_Request_ContinuedPassport", "PassportRenewal"), StringComparison.InvariantCultureIgnoreCase) &&
4157 actionRequestContinuedPassport)
4158 {
4159 var pageIdPassportRenewal = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.PassportRenewal);
4160 if (!string.IsNullOrWhiteSpace(pageIdPassportRenewal))
4161 {
4162 showGeneral = false;
4163
4164 // SEO VIRTUAL PAGE VIEW LOGGING
4165 <Text>
4166 <script>
4167 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_continued_passport", "continued-passport").UrlEncode()).ToLower()");
4168 </script>
4169 </Text>
4170
4171 @RenderPageContent(Convert.ToInt32(pageIdPassportRenewal))
4172 }
4173 }
4174
4175 // REQUEST DUPLICATE
4176 if (action.Equals(Translate("ActionLink_Request_Duplicate", "Duplicate"), StringComparison.InvariantCultureIgnoreCase) &&
4177 actionRequestDuplicate)
4178 {
4179 var pageIdPassportDuplicate = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.PassportDuplicate);
4180 if (!string.IsNullOrWhiteSpace(pageIdPassportDuplicate))
4181 {
4182 showGeneral = false;
4183
4184 // SEO VIRTUAL PAGE VIEW LOGGING
4185 <Text>
4186 <script>
4187 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_request_duplicate", "request-duplicate").UrlEncode()).ToLower()");
4188 </script>
4189 </Text>
4190
4191 @RenderPageContent(Convert.ToInt32(pageIdPassportDuplicate))
4192 }
4193 }
4194
4195 // REGISTER HORSE TO NAME
4196 if (action.Equals(Translate("ActionLink_Register_HorseToName", "RegisterHorse"), StringComparison.InvariantCultureIgnoreCase) &&
4197 actionRegisterHorseToName)
4198 {
4199 var pageIdFormRegisterHorse = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RegisterHorse);
4200 if (!string.IsNullOrWhiteSpace(pageIdFormRegisterHorse))
4201 {
4202 showGeneral = false;
4203
4204 // SEO VIRTUAL PAGE VIEW LOGGING
4205 <Text>
4206 <script>
4207 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_register_horse", "register-horse").UrlEncode()).ToLower()");
4208 </script>
4209 </Text>
4210
4211 @RenderPageContent(Convert.ToInt32(pageIdFormRegisterHorse))
4212 }
4213 }
4214
4215 // REGISTER EMBRYO
4216 if (action.Equals(Translate("ActionLink_Register_Embryo", "RegisterEmbryo"), StringComparison.InvariantCultureIgnoreCase) &&
4217 actionRegisterEmbryo)
4218 {
4219
4220 var pageRegisterEmbryo = pageService.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RegisterEmbryo);
4221 var pageIdRegisterEmbryo = pageRegisterEmbryo?.ID ?? 0;
4222 if (pageIdRegisterEmbryo > 0)
4223 {
4224 showGeneral = false;
4225
4226 // SEO VIRTUAL PAGE VIEW LOGGING
4227 <Text>
4228 <script>
4229 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_register_embryo", "register-embryo").UrlEncode()).ToLower()");
4230 </script>
4231 </Text>
4232
4233 @RenderPageContent(pageIdRegisterEmbryo)
4234 }
4235 }
4236
4237 // REGISTER FOAL
4238 if (action.Equals(Translate("ActionLink_Register_Foal", "RegisterFoal"), StringComparison.InvariantCultureIgnoreCase) &&
4239 actionRegisterFoal)
4240 {
4241 var pageIdRegisterFoal = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RegisterFoal);
4242 if (!string.IsNullOrWhiteSpace(pageIdRegisterFoal))
4243 {
4244 showGeneral = false;
4245
4246 // SEO VIRTUAL PAGE VIEW LOGGING
4247 <Text>
4248 <script>
4249 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_register_foal", "register-foal").UrlEncode()).ToLower()");
4250 </script>
4251 </Text>
4252
4253 @RenderPageContent(Convert.ToInt32(pageIdRegisterFoal))
4254 }
4255 }
4256
4257 // REQUEST GENOME BREEDING VALUE OC (DNA-TEST)
4258 if (action.Equals(Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"), StringComparison.InvariantCultureIgnoreCase) &&
4259 actionRequestGenomicBreedingValueTest)
4260 {
4261 var pageIdGenomicBreedingValueTest = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RequestGenomeBreedingValueTest);
4262 if (!string.IsNullOrWhiteSpace(pageIdGenomicBreedingValueTest))
4263 {
4264 showGeneral = false;
4265
4266 // SEO VIRTUAL PAGE VIEW LOGGING
4267 <Text>
4268 <script>
4269 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_request_dna_test", "request-dna-test").UrlEncode()).ToLower()");
4270 </script>
4271 </Text>
4272
4273 @RenderPageContent(Convert.ToInt32(pageIdGenomicBreedingValueTest))
4274 }
4275 }
4276
4277 // SELL HORSE VIA MARKETPLACE
4278 if (action.Equals(Translate("ActionLink_SellViaMarketplace", "sell"), StringComparison.InvariantCultureIgnoreCase) && actionSellViaMarketplace)
4279 {
4280 var pageIdSellHorse = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.SellHorse);
4281 if (!string.IsNullOrWhiteSpace(pageIdSellHorse))
4282 {
4283 showGeneral = false;
4284
4285 // SEO VIRTUAL PAGE VIEW LOGGING
4286 <Text>
4287 <script>
4288 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_sell_horse", "sell-horse").UrlEncode()).ToLower()");
4289 </script>
4290 </Text>
4291
4292 @RenderPageContent(Convert.ToInt32(pageIdSellHorse))
4293 }
4294 }
4295
4296 // INBREED CALCULATION
4297 if (action.Equals(Translate("ActionLink_InbreedingCalculation", "InbreedingCalculation"), StringComparison.InvariantCultureIgnoreCase) && actionInbreedingCalculation)
4298 {
4299 var pageIdInbreedCalculation = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.InbreedCalculationPageId);
4300 if (!string.IsNullOrWhiteSpace(pageIdInbreedCalculation))
4301 {
4302 showGeneral = false;
4303
4304 // SEO VIRTUAL PAGE VIEW LOGGING
4305 <Text>
4306 <script>
4307 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_inbreed_calculation", "inbreed-calculation").UrlEncode()).ToLower()");
4308 </script>
4309 </Text>
4310
4311 @RenderPageContent(Convert.ToInt32(pageIdInbreedCalculation))
4312 }
4313 }
4314
4315 // REQUEST PREDICATES
4316 if (action.Equals(Translate("ActionLink_Request_Predicates", "RequestPredicates"), StringComparison.InvariantCultureIgnoreCase) && actionRequestPredicates)
4317 {
4318 var pageIdRequestPredicates = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.PredicatesRequestPageId);
4319 if (!string.IsNullOrWhiteSpace(pageIdRequestPredicates))
4320 {
4321 showGeneral = false;
4322
4323 // SEO VIRTUAL PAGE VIEW LOGGING
4324 <Text>
4325 <script>
4326 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_request_predicates", "request-predicates").UrlEncode()).ToLower()");
4327 </script>
4328 </Text>
4329
4330 @RenderPageContent(Convert.ToInt32(pageIdRequestPredicates))
4331 }
4332 }
4333
4334
4335 // DNA PAGE
4336 @*if (action.Equals(Translate("ActionLink_DnaPage", "DNA-Page"), StringComparison.InvariantCultureIgnoreCase) && actionDnaPage)
4337 {
4338 var dnaPageId = pageService.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.DnaPage)?.ID ?? 0;
4339 if (dnaPageId > 0)
4340 {
4341 showGeneral = false;
4342
4343 // SEO VIRTUAL PAGE VIEW LOGGING
4344 <Text>
4345 <script>
4346 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_dnapage", "dna-page").UrlEncode()).ToLower()");
4347 </script>
4348 </Text>
4349
4350 @RenderPageContent(dnaPageId)
4351 }
4352 }*@
4353 }
4354 <script>
4355 var pageTitle = $('.paragraphTitel h1, .paragraphText h1').text();
4356 $('.paragraphTitel h1, .paragraphText h1').remove();
4357 $('.pageTitle').text(pageTitle);
4358 </script></div>
4359 }
4360 @if (showGeneral)
4361 {
4362 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
4363 <div class="horse-detail-item" id="horse-detail-item-stud-photo" data-content="tab_general">
4364 @if (horse.HasImage)
4365 {
4366 var studPhoto = string.Format("images/horseimage.ashx?pc={0}", horse.AnimalCode);
4367 <div class="row">
4368 <div class="col-xs-12">
4369 <img src="@studPhoto" alt="@horseName" />
4370 </div>
4371 </div>
4372 }
4373 </div>
4374 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
4375 <div class="horse-detail-item" id="horse-detail-item-general-info" data-content="tab_general">
4376 @{
4377 var publicSportsLevels = Kwpn.Repository.Helpers.FormatHelpers.CreateSportniveauList(horse.SportResults);
4378 var kinship = Kwpn.Repository.Helpers.HorseHelper.GetKinshipPercentage(horse, Dynamicweb.Frontend.PageView.Current().Area.Culture);
4379 }
4380 @CreateHorseInfoTableRow(Translate("LifeNumber", "Life number"), lifeNumber)
4381 @CreateHorseInfoTableRow(Translate("DateOfBirth", "Date of birth"), dateOfBirth)
4382 @CreateHorseInfoTableRow(Translate("BreedingDirection", "Breeding direction"), breedingDirection)
4383 @CreateHorseInfoTableRow(Translate("Register", "Register"), register)
4384 @if (!string.IsNullOrEmpty(kinship))
4385 {
4386 var kinshipLabel = Translate("Kinship", "Kinship");
4387 var kinshipValue = kinship;
4388 if (kinship.Contains(":"))
4389 {
4390 kinshipLabel = kinship.Split(':')[0].Trim();
4391 kinshipValue = kinship.Split(':')[1].Trim();
4392 }
4393 @CreateHorseInfoTableRow(kinshipLabel, kinshipValue)
4394 }
4395 @if (!string.IsNullOrWhiteSpace(publicSportsLevels))
4396 {
4397 @CreateHorseInfoTableRow(Translate("SportStandings", "Sport standings"), publicSportsLevels)
4398 }
4399 @CreateHorseInfoTableRow(Translate("Withers", "Withers"), withers)
4400 @CreateHorseInfoTableRow(Translate("Color", "Color"), color)
4401 @if (!string.IsNullOrWhiteSpace(wffs))
4402 {
4403 @CreateHorseInfoTableRow(Translate("WFFS", "WFFS"), wffs)
4404 }
4405 @if (!string.IsNullOrWhiteSpace(fertilizationMethod))
4406 {
4407 @CreateHorseInfoTableRow(Translate("FertilizationMethod", "Origin of horse"), fertilizationMethod)
4408 }
4409 @if (isMyHorse || isBredByMe)
4410 {
4411 @CreateHorseInfoTableRow(Translate("ChipNumber", "Chip number"), chipNumber)
4412 }
4413 </div>
4414 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
4415 <div class="horse-detail-item" id="horse-detail-item-breeders" data-content="tab_general">
4416 <div class="breedersinfo infotable">
4417
4418 @if (hasBreeders)
4419 {
4420 var showBreederLinks = breeders.Any(breeder => breeder.AllowedOwnerBreeder && Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(breeder.PersonCode));
4421
4422 <h2>@(breeders.Count() > 1 ? Translate("Breeders", "Breeders") : Translate("Breeder", "Breeder"))</h2>
4423
4424 if (showBreederLinks)
4425 {
4426 <p>@Translate("Breeders_ClickOnNameText", "Click the breeder name to get more info about this breeder.")</p>
4427 }
4428
4429 var breederCounter = 0;
4430 @CreateInfoTableRow(breederCounter, Translate("Name", "Name"), "", true)
4431 foreach (var breeder in breeders)
4432 {
4433 if (breeder.AllowedOwnerBreeder)
4434 {
4435 var linkData = Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(breeder.PersonCode) ? $" class=\"breeder-link\" data-personcode=\"{breeder.PersonCode}\"" : ""; // only link to breeders which are member
4436 @CreateInfoTableRow(breederCounter, $"<span{linkData}>{breeder.PersonName}</span>", "", false, false, false, false, true)
4437 }
4438 else
4439 {
4440 @CreateInfoTableRow(breederCounter, Translate("Breeders_Anonymous", "Anonymous"), "", false, false, false, false, true)
4441 }
4442 breederCounter++;
4443 }
4444 }
4445
4446
4447 @{
4448 // if horse is approved stud or horse is mine or minimal 1 owner has given approval to be shown, then show owners
4449 List<Kwpn.Models.ApiModels.PersonModel> owners = horse.Owners;
4450 var hasOwners = owners != null && owners.Any();
4451
4452 if (hasOwners)
4453 {
4454 var showOwnerLinks = owners.Any(owner => owner.AllowedOwnerBreeder && Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(owner.PersonCode));
4455
4456 <h2>@(owners.Count > 1 ? Translate("Registered2", "Registered") : Translate("Registered", "Registered"))</h2>
4457
4458 if (showOwnerLinks)
4459 {
4460 <p>@Translate("Registered_ClickOnNameText", "Click the name to get more info about this registered owner.")</p>
4461 }
4462
4463 var registeredCounter = 0;
4464 @CreateInfoTableRow(registeredCounter, Translate("Name", "Name"), "", true)
4465 foreach (var owner in owners)
4466 {
4467 if (owner.AllowedOwnerBreeder && Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(owner.PersonCode))
4468 {
4469 var linkData = Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(owner.PersonCode) ? $" class=\"registered-link\" data-personcode=\"{owner.PersonCode}\"" : ""; // only link to owners which are member
4470 @CreateInfoTableRow(registeredCounter, $"<span{linkData}>{owner.PersonName}</span>", "", false, false, false, false, true)
4471 }
4472 else
4473 {
4474 @CreateInfoTableRow(registeredCounter, Translate("Owner_Anonymous", "Anonymous"), "", false, false, false, false, true)
4475 }
4476 registeredCounter++;
4477 }
4478 }
4479 }
4480 </div>
4481 </div>
4482 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
4483 @*note: variables like "horse/culture" are set in the parent: Paragraph/HorseDatabase.cshtml*@
4484 <div class="horse-detail-item" id="horse-detail-item-pedigree" data-content="tab_general">
4485 @{
4486 var pedigree_Me = Kwpn.Repository.Helpers.HorseHelper.GetHorseName(horse.SportsName, horse.AnimalName, DateTime.MinValue);
4487 var pedigree_Father = horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.Father);
4488 var pedigree_Mother = horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.Mother);
4489 }
4490 @if (pedigree_Father != null && pedigree_Mother != null)
4491 {
4492 <script type="text/javascript">
4493
4494 $(document).ready(function () {
4495
4496 var jsGender = '';
4497 if ('@genderClass' == 'fa-mars') {
4498 jsGender = 'male'
4499 } else {
4500 jsGender = 'female'
4501 }
4502
4503 var datasource = {
4504 'name': '@horse.Lifenumber.JsEncode()',
4505 'title': '@horse.AnimalName.JsEncode()',
4506 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.Register))
4507 {
4508 <text>'subtext': '@horse.Register.JsEncode()',</text>
4509 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode)',</text>
4510 }
4511 else
4512 {
4513 <text>'subtext': '-',</text>
4514 <text>'link': '',</text>
4515 }
4516 'sex': jsGender,
4517 'children': [
4518 {
4519 'name': '@pedigree_Father.Lifenumber.JsEncode()',
4520 'title': '@pedigree_Father.AnimalName.JsEncode()',
4521 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(pedigree_Father.Register))
4522 {
4523 <text>'subtext': '@pedigree_Father.Register.JsEncode()',</text>
4524 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, pedigree_Father.AnimalCode)',</text>
4525 }
4526 else
4527 {
4528 <text>'subtext': '-',</text>
4529 <text>'link': '',</text>
4530 }
4531 'sex': 'male',
4532 'children': [
4533 {
4534 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFather).Lifenumber.JsEncode()',
4535 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFather).AnimalName.JsEncode()',
4536 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFather).Register))
4537 {
4538 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFather).Register.JsEncode()',</text>
4539 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFather).AnimalCode)',</text>
4540 }
4541 else
4542 {
4543 <text>'subtext': '-',</text>
4544 <text>'link': '',</text>
4545 }
4546 'sex': 'male',
4547 'children': [
4548 {
4549 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersFather).Lifenumber.JsEncode()',
4550 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersFather).AnimalName.JsEncode()',
4551 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersFather).Register))
4552 {
4553 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersFather).Register.JsEncode()',</text>
4554 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersFather).AnimalCode)',</text>
4555 }
4556 else
4557 {
4558 <text>'subtext': '-',</text>
4559 <text>'link': '',</text>
4560 }
4561 'sex': 'male'
4562 }, {
4563 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersMother).Lifenumber.JsEncode()',
4564 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersMother).AnimalName.JsEncode()',
4565 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersMother).Register))
4566 {
4567 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersMother).Register.JsEncode()',</text>
4568 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersMother).AnimalCode)',</text>
4569 }
4570 else
4571 {
4572 <text>'subtext': '-',</text>
4573 <text>'link': '',</text>
4574 }
4575 'sex': 'female'
4576 }
4577 ]
4578 }, {
4579 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMother).Lifenumber.JsEncode()',
4580 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMother).AnimalName.JsEncode()',
4581 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMother).Register))
4582 {
4583 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMother).Register.JsEncode()',</text>
4584 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMother).AnimalCode)',</text>
4585 }
4586 else
4587 {
4588 <text>'subtext': '-',</text>
4589 <text>'link': '',</text>
4590 }
4591 'sex': 'female',
4592 'children': [
4593 {
4594 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersFather).Lifenumber.JsEncode()',
4595 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersFather).AnimalName.JsEncode()',
4596 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersFather).Register))
4597 {
4598 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersFather).Register.JsEncode()',</text>
4599 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersFather).AnimalCode)',</text>
4600 }
4601 else
4602 {
4603 <text>'subtext': '-',</text>
4604 <text>'link': '',</text>
4605 }
4606 'sex': 'male'
4607 }, {
4608 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersMother).Lifenumber.JsEncode()',
4609 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersMother).AnimalName.JsEncode()',
4610 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersMother).Register))
4611 {
4612 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersMother).Register.JsEncode()',</text>
4613 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersMother).AnimalCode)',</text>
4614 }
4615 else
4616 {
4617 <text>'subtext': '-',</text>
4618 <text>'link': '',</text>
4619 }
4620 'sex': 'female'
4621 }]
4622 }]
4623 },
4624 {
4625 'name': '@pedigree_Mother.Lifenumber.JsEncode()',
4626 'title': '@pedigree_Mother.AnimalName.JsEncode()',
4627 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(pedigree_Mother.Register))
4628 {
4629 <text>'subtext': '@pedigree_Mother.Register.JsEncode()',</text>
4630 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, pedigree_Mother.AnimalCode)',</text>
4631 }
4632 else
4633 {
4634 <text>'subtext': '-',</text>
4635 <text>'link': '',</text>
4636 }
4637 'sex': 'female',
4638 'children': [
4639 {
4640 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFather).Lifenumber.JsEncode()',
4641 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFather).AnimalName.JsEncode()',
4642 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFather).Register))
4643 {
4644 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFather).Register.JsEncode()',</text>
4645 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFather).AnimalCode)',</text>
4646 }
4647 else
4648 {
4649 <text>'subtext': '-',</text>
4650 <text>'link': '',</text>
4651 }
4652 'sex': 'male',
4653 'children': [
4654 {
4655 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersFather).Lifenumber.JsEncode().JsEncode()',
4656 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersFather).AnimalName.JsEncode().JsEncode()',
4657 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersFather).Register))
4658 {
4659 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersFather).Register.JsEncode().JsEncode()',</text>
4660 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersFather).AnimalCode)',</text>
4661 }
4662 else
4663 {
4664 <text>'subtext': '-',</text>
4665 <text>'link': '',</text>
4666 }
4667 'sex': 'male'
4668 }, {
4669 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersMother).Lifenumber.JsEncode()',
4670 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersMother).AnimalName.JsEncode()',
4671 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersMother).Register))
4672 {
4673 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersMother).Register.JsEncode()',</text>
4674 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersMother).AnimalCode)',</text>
4675 }
4676 else
4677 {
4678 <text>'subtext': '-',</text>
4679 <text>'link': '',</text>
4680 }
4681 'sex': 'female'
4682 }
4683 ]
4684 }, {
4685 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMother).Lifenumber.JsEncode()',
4686 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMother).AnimalName.JsEncode()',
4687 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMother).Register))
4688 {
4689 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMother).Register.JsEncode()',</text>
4690 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMother).AnimalCode)',</text>
4691 }
4692 else
4693 {
4694 <text>'subtext': '-',</text>
4695 <text>'link': '',</text>
4696 }
4697 'sex': 'female',
4698 'children': [
4699 {
4700 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersFather).Lifenumber.JsEncode()',
4701 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersFather).AnimalName.JsEncode()',
4702 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersFather).Register))
4703 {
4704 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersFather).Register.JsEncode()',</text>
4705 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersFather).AnimalCode)',</text>
4706 }
4707 else
4708 {
4709 <text>'subtext': '-',</text>
4710 <text>'link': '',</text>
4711 }
4712 'sex': 'male'
4713 }, {
4714 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersMother).Lifenumber.JsEncode()',
4715 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersMother).AnimalName.JsEncode()',
4716 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersMother).Register))
4717 {
4718 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersMother).Register.JsEncode()',</text>
4719 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersMother).AnimalCode)',</text>
4720 }
4721 else
4722 {
4723 <text>'subtext': '-',</text>
4724 <text>'link': '',</text>
4725 }
4726 'sex': 'female'
4727 }
4728 ]
4729 }
4730 ]
4731 }]
4732 };
4733
4734
4735 $('#chart-container').orgchart({
4736 data: datasource,
4737 direction: 'l2r',
4738 nodeContent: 'title',
4739 parentNodeSymbol: '',
4740 createNode: function ($node, data) {
4741 var icon = '<div class="imagecontainer"><i class="fa fa-' + (data.sex === 'male' ? 'mars' : 'venus') + '"></i></div>';
4742 var subtext = '<div class="subtext">' + data.subtext + '</div></div>';
4743 $node.find('i[class^="edge"], i[class^="fa"]').remove();
4744 $node.prepend(icon);
4745 $node.append(subtext);
4746 $node.find('.imagecontainer').nextAll().wrapAll('<div class="contextcontainer"/>');
4747
4748 if (data.link.length > 0) {
4749 $node.css('cursor', 'pointer');
4750 $node.on('click', function (event) {
4751 location.href = data.link;
4752 });
4753 }
4754
4755 $node.on('mouseenter', function () {
4756 $('#custom_tooltip').css('display', 'block');
4757 $('#custom_tooltip').find('.title').text(data.title);
4758 $('#custom_tooltip').find('.subtext').text(data.subtext);
4759 });
4760
4761 $node.on('mouseleave', function () {
4762 $('#custom_tooltip').css('display', 'none');
4763 });
4764 }
4765 });
4766
4767 $('.tooltip').on('shown.bs.tooltip', function () {
4768 console.log('tooltip show');
4769 });
4770
4771
4772 });
4773
4774 $(window).on('mousemove', function (e) {
4775 var mouseX = e.clientX + 10;
4776 var mouseY = e.clientY + 20;
4777 $('#custom_tooltip').css('left', mouseX);
4778 $('#custom_tooltip').css('top', mouseY);
4779 });
4780 </script>
4781 <div class="pedigreetree">
4782 <div id="custom_tooltip">
4783 <div class="title"></div>
4784 <div class="subtext"></div>
4785 </div>
4786 <h2>@Translate("Pedigree", "Pedigree")</h2>
4787 <div id="chart-container"></div>
4788 </div>
4789 }
4790 </div>
4791 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
4792 <div class="horse-detail-item" id="horse-detail-item-markings" data-content="tab_general">
4793 @if (isMyHorse || isBredByMe)
4794 {
4795 // MARKINGS DATA
4796 var showMarkings = false;
4797 var head = "";
4798 var headInfo = horse.GetMarkingByBodyPart(StringConstants.MarkingTypes.Head);
4799 if (headInfo != null)
4800 {
4801 head = headInfo.Description;
4802 showMarkings = true;
4803 }
4804 var frontLeft = "";
4805 var frontLeftInfo = horse.GetMarkingByBodyPart(StringConstants.MarkingTypes.FrontLeft);
4806 if (frontLeftInfo != null)
4807 {
4808 frontLeft = frontLeftInfo.Description;
4809 showMarkings = true;
4810 }
4811 var frontRight = "";
4812 var frontRightInfo = horse.GetMarkingByBodyPart(StringConstants.MarkingTypes.FrontRight);
4813 if (frontRightInfo != null)
4814 {
4815 frontRight = frontRightInfo.Description;
4816 showMarkings = true;
4817 }
4818 var rearLeft = "";
4819 var rearLeftInfo = horse.GetMarkingByBodyPart(StringConstants.MarkingTypes.RearLeft);
4820 if (rearLeftInfo != null)
4821 {
4822 rearLeft = rearLeftInfo.Description;
4823 showMarkings = true;
4824 }
4825 var rearRight = "";
4826 var rearRightInfo = horse.GetMarkingByBodyPart(StringConstants.MarkingTypes.RearRight);
4827 if (rearRightInfo != null)
4828 {
4829 rearRight = rearRightInfo.Description;
4830 showMarkings = true;
4831 }
4832 var misc = "";
4833 var miscInfo = horse.GetMarkingByBodyPart(StringConstants.MarkingTypes.Misc);
4834 if (miscInfo != null)
4835 {
4836 misc = miscInfo.Description;
4837 showMarkings = true;
4838 }
4839
4840 if (showMarkings)
4841 {
4842 var markingsCounter = 0;
4843 <div class="breedersinfo infotable">
4844 <h2>@Translate("Markings", "Markings")</h2>
4845 @CreateInfoTableRow(markingsCounter, Translate("MarkingLocation", "Location"), Translate("MarkingDescription", "Description"), true)
4846 @if (!string.IsNullOrWhiteSpace(head))
4847 {
4848 @CreateInfoTableRow(markingsCounter, Translate("MarkingHead", "Head"), head, false, false, false)
4849 markingsCounter++;
4850 }
4851 @if (!string.IsNullOrWhiteSpace(frontLeft))
4852 {
4853 @CreateInfoTableRow(markingsCounter, Translate("MarkingFrontLeft", "Front left"), frontLeft, false, false, false)
4854 markingsCounter++;
4855 }
4856 @if (!string.IsNullOrWhiteSpace(frontRight))
4857 {
4858 @CreateInfoTableRow(markingsCounter, Translate("MarkingFrontRight", "Front right"), frontRight, false, false, false)
4859 markingsCounter++;
4860 }
4861 @if (!string.IsNullOrWhiteSpace(rearLeft))
4862 {
4863 @CreateInfoTableRow(markingsCounter, Translate("MarkingRearLeft", "Rear left"), rearLeft, false, false, false)
4864 markingsCounter++;
4865 }
4866 @if (!string.IsNullOrWhiteSpace(rearRight))
4867 {
4868 @CreateInfoTableRow(markingsCounter, Translate("MarkingRearRight", "Rear right"), rearRight, false, false, false)
4869 markingsCounter++;
4870 }
4871 @if (!string.IsNullOrWhiteSpace(misc))
4872 {
4873 @CreateInfoTableRow(markingsCounter, Translate("MarkingMiscellaneous", "Miscellaneous"), misc, false, false, false)
4874 markingsCounter++;
4875 }
4876 </div>
4877 }
4878 }
4879 </div>
4880 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
4881 <div class="horse-detail-item" id="horse-detail-item-register" data-content="tab_general">
4882 @if (isMyHorse || isBredByMe)
4883 {
4884 var predicates = horse.Predicates;
4885 if (predicates != null && predicates.Any())
4886 {
4887 predicates = predicates.OrderByDescending(p => p.Date).ToList();
4888
4889 var predicateCounter = 0;
4890 <div class="breedersinfo infotable">
4891 <h2>@Translate("RegisterHistory", "Register history")</h2>
4892 @CreateInfoTableRow(predicateCounter, Translate("Register", "Register"), Translate("FromDate", "From date"), true)
4893 @foreach (var predicate in predicates)
4894 {
4895 var date = "";
4896 if (predicate.Date != null && !predicate.Date.Equals(DateTime.MinValue))
4897 {
4898 date = predicate.Date.ToShortDateString();
4899 }
4900
4901 @CreateInfoTableRow(predicateCounter, predicate.PredicateName, date, false, false, false)
4902 predicateCounter++;
4903 }
4904 </div>
4905 }
4906 }
4907 </div>
4908 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
4909 <div class="horse-detail-item" id="horse-detail-item-breeding-direction" data-content="tab_general">
4910 @*NIET BESCHIKBAAR*@
4911 </div>
4912 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
4913 <div class="horse-detail-item hidden" id="horse-detail-item-achievements" data-content="tab_achievements">
4914 @{
4915 var getInspectionLineairScores = false;
4916 var myPerformanceInfo = horse.SportPerformanceMotherline;
4917 var mySportsLevels = Kwpn.Repository.Helpers.FormatHelpers.CreateSportniveauList(horse.SportResults);
4918 List<Kwpn.Models.ApiModels.InspectionInformationModel> inspections = horse.Inspections;
4919 List<Kwpn.Models.ApiModels.InspectionInformationModel> abilityTests = horse.AbilityTests;
4920 }
4921 <h2>@Translate("Achievements", "Achievements")</h2>
4922
4923 @*SportsInfo*@
4924 <div class="achievements infotable">
4925 @CreateInfoTableRow(0, Translate("SportsName", "Sportsname"), horse.SportsName, false, false, false, false)
4926 @CreateInfoTableRow(1, Translate("SportsLevel", "Sports level"), mySportsLevels, false, false, false, false)
4927 </div>
4928
4929 @*Inspections*@
4930 @if (!isApprovedStud && inspections != null && inspections.Any())
4931 {
4932 getInspectionLineairScores = true;
4933 var inspectionCounter = 0;
4934 <h2>@Translate("Inspections", "Inspections")</h2>
4935 <div class="table-responsive">
4936 <table id="inspectionstable">
4937 <tr class="tableheader">
4938 <th>@Translate("DateAndInspectionType", "Date and inspection type")</th>
4939 <th>@Translate("Location", "Location")</th>
4940 <th>@Translate("Scores", "Scores")</th>
4941 <th>@Translate("Result", "Result")</th>
4942 <td> </td>
4943 </tr>
4944 @foreach (Kwpn.Models.ApiModels.InspectionInformationModel inspection in inspections.OrderByDescending(i => i.DateFrom))
4945 {
4946 var inspectionDateLocation = "";
4947 if (inspection.DateFrom != null)
4948 {
4949 inspectionDateLocation = inspection.DateFrom.ToShortDateString();
4950 }
4951 if (!string.IsNullOrWhiteSpace(inspection.InspectionDescription))
4952 {
4953 if (!string.IsNullOrWhiteSpace(inspectionDateLocation))
4954 {
4955 inspectionDateLocation = string.Format("{0},<br />", inspectionDateLocation);
4956 }
4957 inspectionDateLocation = string.Format("{0}{1}", inspectionDateLocation, inspection.InspectionDescription);
4958 }
4959 string premiumPlacing = "";
4960 if (inspection.Participations != null && inspection.Participations.Count > 0)
4961 {
4962 premiumPlacing = string.Format("{0} {1}", inspection.Participations[0].Premium, inspection.Participations[0].Placing).Trim();
4963 }
4964
4965 // modulo for row color display
4966 var mod = "0";
4967 if (inspectionCounter % 2 == 0)
4968 {
4969 mod = "1";
4970 }
4971 <tr class="mod-@mod">
4972 <td>@inspectionDateLocation</td>
4973 <td>@inspection.Place</td>
4974 <td class="scores" data-inspectioncode="@inspection.InspectionCode"></td>
4975 <td>@premiumPlacing</td>
4976 <td class="center">
4977 @if (inspection.Participations != null && inspection.Participations.Count > 0 &&
4978 inspection.Participations[0].ResultAppreciatives != null && inspection.Participations[0].ResultAppreciatives.Count > 0)
4979 {
4980 <span class="toggler" data-identifyer='insp-@inspection.InspectionCode-@inspectionCounter' data-typeclass="inspection-details"><i class="fa fa-plus"></i></span>
4981 }
4982 </td>
4983 </tr>
4984 <tr id="insp-@inspection.InspectionCode-@inspectionCounter" class="inspection-details mod-@mod">
4985 <td> </td>
4986 <td> </td>
4987 <td colspan="3">
4988 @if (inspection.Rubrics != null && inspection.Rubrics.Count > 0)
4989 {
4990 @*<b>@inspection.Rubrics[0].Description</b><br />*@
4991 }
4992 @if (inspection.Participations != null && inspection.Participations.Count > 0)
4993 {
4994 var participation = inspection.Participations[0];
4995 if (participation.ResultAppreciatives != null && participation.ResultAppreciatives.Count > 0)
4996 {
4997 <div class="inspection-summary">
4998 <table>
4999 <thead>
5000 <tr>
5001 <th>@Translate("Description", "Description")</th>
5002 <th>@Translate("Value", "Value")</th>
5003 </tr>
5004 </thead>
5005 <tbody>
5006 @foreach (var ResultAppreciative in participation.ResultAppreciatives)
5007 {
5008 <tr>
5009 <td>@ResultAppreciative.Description</td>
5010 <td>@ResultAppreciative.Value</td>
5011 </tr>
5012 }
5013 </tbody>
5014 </table>
5015 </div>
5016 }
5017 }
5018 </td>
5019 </tr>
5020 inspectionCounter++;
5021 }
5022 </table>
5023 </div>
5024 }
5025
5026 @*SportResults*@
5027 @if (abilityTests != null && abilityTests.Count > 0)
5028 {
5029 var abilityCounter = 0;
5030 <h2>@Translate("AbilityTests", "Ability tests")</h2>
5031 <div class="table-responsive">
5032 <table id="abilitytesttable">
5033 <tr class="tableheader">
5034 <th>@Translate("DateAndInspectionType", "Date and inspection type")</th>
5035 <th>@Translate("Location", "Location")</th>
5036 <th> </th>
5037 <td> </td>
5038 </tr>
5039 @foreach (Kwpn.Models.ApiModels.InspectionInformationModel inspection in abilityTests.OrderByDescending(i => i.DateFrom))
5040 {
5041 var inspectionDateLocation = "";
5042 if (inspection.DateFrom != null)
5043 {
5044 inspectionDateLocation = inspection.DateFrom.ToShortDateString();
5045 }
5046 if (!string.IsNullOrWhiteSpace(inspection.InspectionDescription))
5047 {
5048 if (!string.IsNullOrWhiteSpace(inspectionDateLocation))
5049 {
5050 inspectionDateLocation = string.Format("{0},<br />", inspectionDateLocation);
5051 }
5052 inspectionDateLocation = string.Format("{0}{1}", inspectionDateLocation, inspection.InspectionDescription);
5053 }
5054
5055 // modulo for row color display
5056 var mod = "0";
5057 if (abilityCounter % 2 == 0)
5058 {
5059 mod = "1";
5060 }
5061 <tr class="mod-@mod">
5062 <td>@inspectionDateLocation</td>
5063 <td>@inspection.Place</td>
5064 <td> </td>
5065 <td class="center">
5066 @if (inspection.Participations != null && inspection.Participations.Count > 0 &&
5067 inspection.Participations[0].ResultAppreciatives != null && inspection.Participations[0].ResultAppreciatives.Count > 0)
5068 {
5069 <span class="toggler" data-identifyer='at-@inspection.InspectionCode-@abilityCounter' data-typeclass="ability-details"><i class="fa fa-plus"></i></span>
5070 }
5071 </td>
5072 </tr>
5073 <tr id="at-@inspection.InspectionCode-@abilityCounter" class="ability-details mod-@mod">
5074 <td> </td>
5075 <td colspan="3">
5076 @if (inspection.Rubrics != null && inspection.Rubrics.Count > 0)
5077 {
5078 @*<b>@inspection.Rubrics[0].Description</b><br />*@
5079 }
5080 @if (inspection.Participations != null && inspection.Participations.Count > 0)
5081 {
5082 var participation = inspection.Participations[0];
5083 if (participation.ResultAppreciatives != null && participation.ResultAppreciatives.Count > 0)
5084 {
5085 <div class="ability-summary">
5086 <table>
5087 <thead>
5088 <tr>
5089 <th>@Translate("Description", "Description")</th>
5090 <th>@Translate("Value", "Value")</th>
5091 </tr>
5092 </thead>
5093 <tbody>
5094 @foreach (var ResultAppreciative in participation.ResultAppreciatives)
5095 {
5096 <tr>
5097 <td>@ResultAppreciative.Description</td>
5098 <td>@ResultAppreciative.Value</td>
5099 </tr>
5100 }
5101 </tbody>
5102 </table>
5103 </div>
5104 }
5105 }
5106 </td>
5107 </tr>
5108 abilityCounter++;
5109 }
5110 </table>
5111 </div>
5112 }
5113 </div>
5114 @SnippetStart("JavascriptsBottom")
5115
5116 <script type="text/javascript">
5117 $(document).ready(function () {
5118
5119 // toggler initializer
5120 $(".toggler", "#horse-detail-item-achievements").click(function () {
5121 var contentId = $(this).attr("data-identifyer");
5122 var typeClass = $(this).attr("data-typeclass");
5123 $("." + typeClass).not("#" + contentId).hide();
5124 $("." + typeClass).not("#" + contentId).prev().find("span.toggler i").removeClass("fa-minus").addClass("fa-plus");
5125 var currentToggler = $("#" + contentId).prev().find("span.toggler i");
5126 if (currentToggler.hasClass("fa-minus")) {
5127 currentToggler.removeClass("fa-minus").addClass("fa-plus");
5128 } else {
5129 currentToggler.removeClass("fa-plus").addClass("fa-minus");
5130 }
5131 });
5132
5133 // Get inspection lineair score documents and attach to inspection
5134 @if (getInspectionLineairScores)
5135 {
5136 <text>
5137 $(".inspectionlineairscore").remove();
5138 var inspectionlineairscoreApiUrl = "/kwpnwebapi/horses/getinspectionlineairscore/@culture/@animalCode";
5139 $.getJSON(inspectionlineairscoreApiUrl).done(function (result) {
5140 if (result != null && result.length > 0) {
5141 $.each(result, function (i, inspectionLineairScore) {
5142 var inspectionCode = inspectionLineairScore.Reference;
5143 var inspectionLineairScoreUrl = inspectionLineairScore.URL;
5144 if (inspectionCode != null && inspectionLineairScoreUrl != null) {
5145 var $achievement = $("td.scores[data-inspectioncode=" + inspectionCode + "]", "#inspectionstable");
5146 if ($achievement.length) {
5147 inspectionLineairScoreUrl = inspectionLineairScoreUrl.replace(/\\/g, "/"); // fix slashes
5148 var inspectionLineairScoreListItem = "<a href=\"" + inspectionLineairScoreUrl + "\" download target=\"_blank\">@Translate("ScoreForm", "Score form")</a><br/>";
5149 $achievement.append(inspectionLineairScoreListItem);
5150 }
5151 }
5152 });
5153 }
5154 }).fail(function (jqxhr, textStatus, error) {
5155 var err = textStatus + ", " + error;
5156 console.error("Request GetInspectionLineairScore Failed: " + err);
5157 });
5158 </text>
5159 }
5160
5161 });
5162 </script>
5163 @SnippetEnd("JavascriptsBottom")
5164
5165 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
5166 <div class="horse-detail-item hidden" id="horse-detail-item-achievements-motherline" data-content="tab_achievements_motherline">
5167 @{
5168 var performanceInfo = horse.SportPerformanceMotherline;
5169 var performanceItems = performanceInfo.lstItems;
5170 var achievements = Kwpn.Repository.Helpers.FormatHelpers.CreateAchievementsList(performanceItems, culture);
5171
5172 var motherName = performanceInfo.MAnimalname;
5173 var motherItems = performanceInfo.lstItemsM;
5174 var motherAchievements = Kwpn.Repository.Helpers.FormatHelpers.CreateAchievementsList(motherItems, culture);
5175
5176 var grandMotherName = performanceInfo.MMAnimalname;
5177 var grandMotherItems = performanceInfo.lstItemsMM;
5178 var grandMotherAchievements = Kwpn.Repository.Helpers.FormatHelpers.CreateAchievementsList(grandMotherItems, culture);
5179
5180 var greatGrandMotherName = performanceInfo.MMMAnimalname;
5181 var greatGrandMotherItems = performanceInfo.lstItemsMMM;
5182 var greatGrandMotherAchievements = Kwpn.Repository.Helpers.FormatHelpers.CreateAchievementsList(greatGrandMotherItems, culture);
5183 }
5184
5185 <h2>@Translate("AchievementsMotherLine", "Achievements mother line")</h2>
5186
5187 @if (performanceItems != null && performanceItems.Any())
5188 {
5189 var name = Kwpn.Repository.Helpers.HorseHelper.GetHorseName(horse.SportsName, horse.AnimalName, null);
5190
5191 <div class="motherline infotable">
5192 @CreateInfoTableRow(0, Translate("HorseName", "Horse name"), name, false, false, false)
5193 @CreateInfoTableRow(1, Translate("Achievements", "Achievements"), achievements, false, false, false)
5194 </div>
5195 }
5196 <br />
5197 <div class="motherline-mother infotable">
5198 <h3>@Translate("Mother", "Mother")</h3>
5199 @CreateInfoTableRow(0, Translate("HorseName", "Horse name"), motherName, false, false, false)
5200 @CreateInfoTableRow(1, Translate("Achievements", "Achievements"), motherAchievements, false, false, false)
5201 </div>
5202 <br />
5203 <div class="motherline-mother infotable">
5204 <h3>@Translate("MothersMother", "Mothers mother")</h3>
5205 @CreateInfoTableRow(0, Translate("HorseName", "Horse name"), grandMotherName, false, false, false)
5206 @CreateInfoTableRow(1, Translate("Achievements", "Achievements"), grandMotherAchievements, false, false, false)
5207 </div>
5208 <br />
5209 <div class="motherline-mother infotable">
5210 <h3>@Translate("MothersMothersMother", "Mothers mothers mother")</h3>
5211 @CreateInfoTableRow(0, Translate("HorseName", "Horse name"), greatGrandMotherName, false, false, false)
5212 @CreateInfoTableRow(1, Translate("Achievements", "Achievements"), greatGrandMotherAchievements, false, false, false)
5213 </div>
5214 </div>
5215 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
5216 <div class="horse-detail-item hidden" id="horse-detail-item-genetic-profile" data-content="tab_genetic_profile">
5217 @if (Kwpn.Repository.Helpers.HorseHelper.CheckIfMyHorse(animalCode) && FormatHelpers.CalculateAgeAsInt(horse.DateOfBirth.Value) < 3)
5218 {
5219 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
5220 <div class="modal fade" id="extra-settings" tabindex="-1" role="dialog" aria-labelledby="extra-settings-modal" aria-hidden="true">
5221 <div class="modal-dialog">
5222 <div class="modal-content">
5223 <div class="modal-header">@Translate("ExtraSettingsModalHeader", "Extra settings")</div>
5224 <div class="modal-body">
5225 <div>
5226 <h2 class="name"></h2>
5227 </div>
5228 <div id="modal-genetic-profile-loading">
5229 <i class='fa fa-spinner fa-spin'></i>
5230 </div>
5231 <div id="modal-genetic-profile" class="hidden">
5232 @Translate("ExtraSettingsModal_GeneticProfileText", "")
5233 <input type="checkbox" name="genetic-profile-hidden" id="genetic-profile-hidden" />
5234 <label for="genetic-profile-hidden">@Translate("ExtraSettingsModal_GeneticProfileLabel", "The genetic profile is hidden")</label>
5235 <br />
5236 <div id="genetic-profile-moderator" class="hidden small">@Translate("ExtraSettingsModal_GeneticProfileLastEditedBy", "Last change by ")<span class="small"></span></div>
5237 </div>
5238 </div>
5239 <div class="modal-footer">
5240 <a class="orange_arrow_link" data-dismiss="modal" href="javascript:void(0);">@Translate("Close", "Close")</a>
5241 </div>
5242 </div>
5243 </div>
5244 </div>
5245 <p>
5246 <button type="button"
5247 class="btn btn-settings-gp"
5248 data-horsecode="@animalCode"
5249 data-horseinfo="@horseName (@lifeNumber)"
5250 data-toggle="tooltip"
5251 data-genetic-profile="true"
5252 title="@Translate("HorseSettings", "Extra settings").JsEncode().ToUpper()">
5253 <i class="fa fa-gear"></i>
5254 </button>
5255 </p>
5256 @SnippetStart("JavascriptsBottom")
5257 <script>
5258
5259 var geneticProfileSettingChanged = false;
5260
5261 function MailGeneticProfileSetting(animalcode, value) {
5262 var geneticProfileSettingsApi = "/kwpnwebapi/horses/mailgeneticprofilesetting/@Dynamicweb.Frontend.PageView.Current().AreaID/" + animalcode + "/" + value;
5263 $.getJSON(geneticProfileSettingsApi).done(function (result, status, metaData) {
5264 if (!result) {
5265 Swal.fire({ title: "@Translate("SomethingWentWrongTitle", "Something went wrong")" ,text: "@Translate("SomethingWentWrongSendingEmail", "Something went wrong while sending email")", customClass: layout.notifyCopyrightMessageClass });
5266 }
5267 }).fail(function (jqxhr, textStatus, error) {
5268 var err = textStatus + ", " + error;
5269 console.error("MailGeneticProfileSetting Failed: " + err);
5270 });
5271 }
5272
5273 function SetGeneticProfileSetting(animalcode, value) {
5274
5275 var geneticProfileSettingsApi = "/kwpnwebapi/horses/setgeneticprofilesetting/" + animalcode + "/" + value;
5276 $.getJSON(geneticProfileSettingsApi).done(function (result, status, metaData) {
5277 if (result != null) {
5278 $("#genetic-profile-moderator span").text(result.HideGeneticProfileLastChangedBy);
5279 $("#genetic-profile-moderator").removeClass("hidden");
5280 geneticProfileSettingChanged = true;
5281 MailGeneticProfileSetting(animalcode, value);
5282 } else {
5283 Swal.fire({ title: "@Translate("SomethingWentWrongTitle", "Something went wrong")" ,text: "@Translate("SomethingWentWrong", "Something went wrong")", customClass: layout.notifyCopyrightMessageClass });
5284 }
5285 }).fail(function (jqxhr, textStatus, error) {
5286 var err = textStatus + ", " + error;
5287 console.error("SetGeneticProfileSetting Failed: " + err);
5288 });
5289 }
5290
5291 function ActivateExtraSettingsButtons() {
5292
5293 $(".btn-settings-gp").click(function (e) {
5294
5295 // defaults
5296 $("#modal-genetic-profile-loading").removeClass("hidden");
5297 $("#genetic-profile-hidden").prop("checked", false);
5298 $("#modal-genetic-profile").addClass("hidden");
5299 $("#genetic-profile-moderator").addClass("hidden");
5300 $("#genetic-profile-moderator span").empty();
5301
5302 // set modal text
5303 var horseInfo = $(this).attr("data-horseinfo");
5304 $("#extra-settings h2").text(horseInfo);
5305
5306 var showGeneticProfile = $(this).attr("data-genetic-profile");
5307 if (showGeneticProfile === "true") {
5308
5309 // get current value
5310 var horseCode = $(this).attr("data-horsecode");
5311 var geneticProfileSettingsApi = "/kwpnwebapi/horses/getgeneticprofilesetting/" + horseCode;
5312 $.getJSON(geneticProfileSettingsApi).done(function (result, status, metaData) {
5313 if (result) {
5314
5315 if (result.HideGeneticProfile) {
5316 $("#genetic-profile-hidden").prop("checked", true);
5317 }
5318
5319 if (result.HideGeneticProfileLastChangedBy.length > 0) {
5320 $("#genetic-profile-moderator span").text(result.HideGeneticProfileLastChangedBy);
5321 $("#genetic-profile-moderator").removeClass("hidden")
5322 }
5323
5324 $("#genetic-profile-hidden").off("click").on("click", function () {
5325 SetGeneticProfileSetting(horseCode, $('#genetic-profile-hidden').is(':checked'));
5326 });
5327
5328 $("#modal-genetic-profile").removeClass("hidden");
5329 } else {
5330 Swal.fire({ title: "@Translate("SomethingWentWrongTitle", "Something went wrong")" ,text: "@Translate("SomethingWentWrong", "Something went wrong")", customClass: layout.notifyCopyrightMessageClass });
5331 }
5332
5333 $("#modal-genetic-profile-loading").addClass("hidden");
5334 }).fail(function (jqxhr, textStatus, error) {
5335 var err = textStatus + ", " + error;
5336 console.error("GetGeneticProfileSettings Failed: " + err);
5337 });
5338 }
5339
5340 // show modal
5341 $("#extra-settings").modal("show");
5342
5343 // prevent row click
5344 e.stopPropagation();
5345
5346 });
5347
5348 $(document).on('hide.bs.modal', '#extra-settings', function () {
5349 if (geneticProfileSettingChanged) {
5350 if (!alert("@Translate("ReloadForChanges", "The page must be refreshed for the change to take effect.")")) location.reload();
5351 }
5352
5353 });
5354 }
5355
5356 $(document).ready(function () {
5357 ActivateExtraSettingsButtons();
5358 });
5359
5360 </script>
5361 @SnippetEnd("JavascriptsBottom")
5362 }
5363 @if (showGeneticProfileBasedOnRegister)
5364 {
5365 List<BreedingValuesModel> geneticProfile = horse.BreedingValues;
5366 if (geneticProfile != null && geneticProfile.Any())
5367 {
5368 var geneticProfileIntro = Translate("GeneticProfileIntro", "");
5369 var geneticProfileRowCounter = 0;
5370
5371 var legend = Kwpn.Repository.Helpers.HorseHelper.GetGeneticProfileLegend(culture);
5372 var sportIndex = geneticProfile.Where(profile =>
5373 {
5374 var val = profile.BreedingValues.Where(breedingVal => breedingVal.Description.Contains("Sport index")).ToList();
5375 return val.Count > 0;
5376 }).ToList();
5377
5378 var dressageJumping = geneticProfile.Where(profile =>
5379 {
5380 var val = profile.BreedingValues.Where(breedingVal => breedingVal.Description == "Dressuur (GFW)" || breedingVal.Description == "Springen (GFW)").ToList();
5381 return val.Count > 0;
5382 }).ToList();
5383
5384 var userIsLoggedIn = Dynamicweb.Frontend.LogOnHandler.IsUserLoggedIn;
5385
5386 if (sportIndex.Count > 0)
5387 {
5388 <h2>@Translate("Sportindex", "Sportindex")</h2>
5389 <p>@Translate("Sportindex_intro", "")</p>
5390
5391 foreach (var breedingValuesTable in sportIndex)
5392 {
5393 foreach (BreedingValueModel breedingValue in breedingValuesTable.BreedingValues.Where(breedingVal => breedingVal.Description.Contains("Sport index")))
5394 {
5395 var breedingValueValue = 0;
5396 Int32.TryParse(breedingValue.Value, out breedingValueValue);
5397
5398 var description = breedingValue.Description + ": " + breedingValueValue;
5399 if(breedingValue.Reliability != null)
5400 {
5401 description += "(" + breedingValue.Reliability + ")";
5402 }
5403
5404 <p>@description</p>
5405 }
5406 }
5407 }
5408
5409 <h2>@Translate("GeneticProfile", "Genetic profile")</h2>
5410
5411 if (horse.PublicationTypes != null && horse.PublicationTypes.Any())
5412 {
5413 foreach (var publicationTypes in horse.PublicationTypes)
5414 {
5415 @Translate($"GeneticProfile_Intro_{publicationTypes}", "")
5416 }
5417 }
5418
5419 if (!string.IsNullOrWhiteSpace(geneticProfileIntro) && !geneticProfileIntro.Equals("GeneticProfileIntro"))
5420 {
5421 if (!geneticProfileIntro.StartsWith("<p>", StringComparison.InvariantCultureIgnoreCase))
5422 {
5423 geneticProfileIntro = string.Format("<p>{0}</p>", geneticProfileIntro);
5424 }
5425 if (!string.IsNullOrWhiteSpace(geneticProfileIntro) && geneticProfileIntro.Contains("{legend}") && !string.IsNullOrEmpty(legend))
5426 {
5427 geneticProfileIntro = geneticProfileIntro.Replace("{legend}", $"<a href='javascript:void(0);' class='legend-opener'>{Translate("GeneticProfileIntro_LegendLinkText", "legend")}</a>");
5428 }
5429 @geneticProfileIntro
5430 }
5431
5432 <div class="table-responsive">
5433 <table width="600" class="genetic-profile-table">
5434 <colgroup>
5435 <col class="description" />
5436 <col class="percentage" />
5437 <col class="minimum" />
5438 <col class="value" />
5439 <col class="value" />
5440 <col class="value" />
5441 <col class="value" />
5442 <col class="value" />
5443 <col class="value" />
5444 <col class="value" />
5445 <col class="value" />
5446 <col class="value" />
5447 <col class="value" />
5448 <col class="maximum" />
5449 </colgroup>
5450 <tr class="index">
5451 <td> </td>
5452 <th>@Translate("Btbh.", "Btbh.")</th>
5453 <td> </td>
5454 <th class="value stars">***</th>
5455 <th class="value stars">**</th>
5456 <th class="value stars">*</th>
5457 <th colspan="4" class="average">@Translate("Avarage", "Avarage")</th>
5458 <th class="value stars">*</th>
5459 <th class="value stars">**</th>
5460 <th class="value stars">***</th>
5461 <td> </td>
5462 </tr>
5463 <tr class="spacer">
5464 <td> </td>
5465 <td> </td>
5466 <td> </td>
5467 <td> </td>
5468 <td> </td>
5469 <td> </td>
5470 <td> </td>
5471 <td> </td>
5472 <td> </td>
5473 <td> </td>
5474 <td> </td>
5475 <td> </td>
5476 <td> </td>
5477 <td> </td>
5478 </tr>
5479
5480 @if (userIsLoggedIn && isMyHorse && dressageJumping.Count > 0)
5481 {
5482 foreach (var breedingValuesTable in dressageJumping)
5483 {
5484
5485 foreach (BreedingValueModel breedingValue in breedingValuesTable.BreedingValues.Where(breedingVal => breedingVal.Description == "Dressuur (GFW)" || breedingVal.Description == "Springen (GFW)"))
5486 {
5487 // modulo for row color display
5488 var mod = "0";
5489 if (geneticProfileRowCounter % 2 == 0) { mod = "1"; }
5490
5491 var breedingValueValue = 0;
5492 Int32.TryParse(breedingValue.Value, out breedingValueValue);
5493
5494 var description = breedingValue.Description;
5495 if (!string.IsNullOrWhiteSpace(breedingValue.TypeCalculation))
5496 {
5497 description = $"{description} ({breedingValue.TypeCalculation})";
5498 }
5499
5500 <tr class="table-row mod-@mod">
5501 <td class="description nowrap">@description</td>
5502 <td class="percentage">
5503 @if (breedingValuesTable == geneticProfile.First())
5504 {
5505 @breedingValue.Reliability
5506 }
5507 </td>
5508 <td class="minimum">@breedingValue.Minimum</td>
5509 @HorseHelper.GetGeneticProfileValues(breedingValueValue, breedingValue.Differentiation, showGeneticProfileBasedOnOwnerSettings)
5510 <td class="maximum">@breedingValue.Maximum</td>
5511 </tr>
5512
5513 geneticProfileRowCounter++;
5514 }
5515
5516 }
5517 <tr class="spacer">
5518 <td> </td>
5519 <td> </td>
5520 <td> </td>
5521 <td> </td>
5522 <td> </td>
5523 <td> </td>
5524 <td> </td>
5525 <td> </td>
5526 <td> </td>
5527 <td> </td>
5528 <td> </td>
5529 <td> </td>
5530 <td> </td>
5531 <td> </td>
5532 </tr>
5533 }
5534 @foreach (var breedingValuesTable in geneticProfile)
5535 {
5536 if (breedingValuesTable.BreedingValues != null && breedingValuesTable.BreedingValues.Count > 0)
5537 {
5538 geneticProfileRowCounter = 0;
5539 <tr class="table-caption">
5540 <th colspan="14">
5541 @breedingValuesTable.Type
5542 @if (breedingValuesTable != geneticProfile.First())
5543 {
5544 var relia = breedingValuesTable.BreedingValues.FirstOrDefault();
5545 if (relia != null)
5546 {
5547 @relia.Reliability
5548 }
5549 }
5550 </th>
5551 </tr>
5552 }
5553 foreach (BreedingValueModel breedingValue in breedingValuesTable.BreedingValues.Where(breedingVal => breedingVal.Description != "Dressuur (GFW)" && breedingVal.Description != "Springen (GFW)" && !breedingVal.Description.Contains("Sport index")))
5554 {
5555
5556 // modulo for row color display
5557 var mod = "0";
5558 if (geneticProfileRowCounter % 2 == 0) { mod = "1"; }
5559
5560 var breedingValueValue = 0;
5561 Int32.TryParse(breedingValue.Value, out breedingValueValue);
5562
5563 var description = breedingValue.Description;
5564 if (!string.IsNullOrWhiteSpace(breedingValue.TypeCalculation))
5565 {
5566 description = $"{description} ({breedingValue.TypeCalculation})";
5567 }
5568
5569 <tr class="table-row mod-@mod">
5570 <td class="description nowrap">@description</td>
5571 <td class="percentage">
5572 @if (breedingValuesTable == geneticProfile.First())
5573 {
5574 @breedingValue.Reliability
5575 }
5576 </td>
5577 <td class="minimum">@breedingValue.Minimum</td>
5578 @HorseHelper.GetGeneticProfileValues(breedingValueValue, breedingValue.Differentiation, showGeneticProfileBasedOnOwnerSettings)
5579 <td class="maximum">@breedingValue.Maximum</td>
5580 </tr>
5581
5582 geneticProfileRowCounter++;
5583 }
5584 <tr class="spacer">
5585 <td> </td>
5586 <td> </td>
5587 <td> </td>
5588 <td> </td>
5589 <td> </td>
5590 <td> </td>
5591 <td> </td>
5592 <td> </td>
5593 <td> </td>
5594 <td> </td>
5595 <td> </td>
5596 <td> </td>
5597 <td> </td>
5598 <td> </td>
5599 </tr>
5600 }
5601 </table>
5602 </div>
5603
5604 if (!string.IsNullOrWhiteSpace(legend))
5605 {
5606 <div class="modal fade" id="legend" tabindex="-1" role="dialog" aria-labelledby="legend-modal" aria-hidden="true">
5607 <div class="modal-dialog">
5608 <div class="modal-content">
5609 <div class="modal-header">
5610 @Translate("GeneticProfileIntro_LegendHeader", "Legend")
5611 <a class="orange_arrow_link close-model" data-dismiss="modal" href="javascript:void(0);">@Translate("GeneticProfileIntro_LegendClose", "Close")</a>
5612 </div>
5613 <div class="modal-body legend-body">
5614 @legend
5615 </div>
5616 <div class="modal-footer">
5617 <a class="orange_arrow_link" data-dismiss="modal" href="javascript:void(0);">@Translate("GeneticProfileIntro_LegendClose", "Close")</a>
5618 </div>
5619 </div>
5620 </div>
5621 </div>
5622 @SnippetStart("JavascriptsBottom")
5623 <script>
5624 $(document).ready(function () {
5625 // legend modal opener
5626 $(".legend-opener").off("click").on("click", function () {
5627 $("#legend").modal("show");
5628 });
5629 });
5630 </script>
5631 @SnippetEnd("JavascriptsBottom")
5632 }
5633 }
5634 }
5635 </div>
5636 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
5637 @*
5638 Note:
5639
5640 Variables like "action/isAlive/isMyHorse/isMare/horse/culture/animalCode/showMemberContent/etc..." are set in the parent: Paragraph/HorseDatabase.cshtml
5641
5642 This content is ALWAYS available for mares.
5643 This content is available if the horse is mine
5644
5645 Always show:
5646 - gender
5647 - horse name
5648 - date of birth
5649 - register
5650 - sports level <-- NOT AVAILABLE IN SearchAnimalResultItemModel
5651 When the parent is a mare then show:
5652 - father name
5653 When the parent is NOT a mare then show:
5654 - mother name <-- NOT AVAILABLE IN SearchAnimalResultItemModel
5655 - mothers father name
5656 *@
5657 <div class="horse-detail-item hidden" id="horse-detail-item-offspring" data-content="tab_offspring">
5658 @if (isMare || isMyHorse)
5659 {
5660 var offspring = horse.Offspring;
5661 <h2>@Translate("Offspring", "Offspring")</h2>
5662 <div class="table-responsive">
5663 @if (offspring != null && offspring.Any())
5664 {
5665 <table id="offspringTable" class="horsesTable">
5666 <thead>
5667 <tr>
5668 <th data-sortOn="Gender" data-sortBy="Asc"></th>
5669 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th>
5670 @if (isMare)
5671 {
5672 <th data-sortOn="Father" data-sortBy="Asc">@Translate("Father", "Father")<i class="fa"></i></th>
5673 }
5674 else
5675 {
5676 @*<th data-sortOn="Mother" data-sortBy="Asc">@Translate("Mother", "Mother")<i class="fa"></i></th>*@
5677 <th data-sortOn="MothersFather" data-sortBy="Asc">@Translate("MothersFather", "Mothers father")<i class="fa"></i></th>
5678 }
5679 <th data-sortOn="DateOfBirth" data-sortBy="Asc">@Translate("YearOfBirth", "Year of birth")<i class="fa"></i></th>
5680 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th>
5681 <th data-sortOn="SportsLevel" data-sortBy="Asc">@Translate("SportsLevel", "Sports level")<i class="fa"></i></th>
5682
5683 </tr>
5684 </thead>
5685
5686 @foreach (var child in offspring.OrderByDescending(c => c.DateOfBirth))
5687 {
5688 var childGenderClass = "fa-question";
5689 var childGenderImage = "";
5690 var childGenderAbbr = "";
5691 var childGender = Kwpn.Models.Enumerations.Gender.UNKNOWN;
5692 var childIsAlive = child.DateOfDeath == null;
5693 Enum.TryParse(child.Gender.ToUpper(), out childGender);
5694 switch (childGender)
5695 {
5696 case Kwpn.Models.Enumerations.Gender.HENGST:
5697 childGenderClass = "fa-mars";
5698 childGenderAbbr = Translate("Stallion", "Stallion");
5699 break;
5700 case Kwpn.Models.Enumerations.Gender.MERRIE:
5701 childGenderClass = "fa-venus";
5702 childGenderAbbr = Translate("Mare", "Mare");
5703 break;
5704 case Kwpn.Models.Enumerations.Gender.RUIN:
5705 childGenderClass = "fa-mars";
5706 childGenderAbbr = Translate("Gelding", "Gelding");
5707 break;
5708 case Kwpn.Models.Enumerations.Gender.EMBRYO:
5709 childGenderClass = "";
5710 childGenderAbbr = Translate("Embryo", "Embryo");
5711 childGenderImage = "<img src=\"/Files/Templates/Designs/Kwpn/Images/StyleElements/Icon_Embryo_20x20.png\" />";
5712 break;
5713 }
5714
5715 var childIsApprovedStud = child.ApprovedStallion;
5716 var childName = child.AnimalName; // KWPN-1825: DOn't use child.SportsName for offspring
5717 var childDoBirth = "";
5718 var childYoBirth = "";
5719 if (child.DateOfBirth.HasValue && !child.DateOfBirth.Value.Equals(DateTime.MinValue))
5720 {
5721 childDoBirth = child.DateOfBirth.Value.ToShortDateString();
5722 childYoBirth = child.DateOfBirth.Value.Year.ToString();
5723 }
5724
5725 var childsFather = child.Father;
5726 var childsMothersFather = child.MothersFather;
5727 var childSportsLevel = child.SportResult;
5728
5729 <tr @(!childGender.Equals(Kwpn.Models.Enumerations.Gender.EMBRYO) ? $" class=\"clickable\" onclick=\"document.location.href='{Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, child.AnimalCode)}';\"" : "") data-horsecode="@child.AnimalCode">
5730 <td class="nowrap">
5731 <i class="fa @childGenderClass">@childGenderImage</i>
5732 @if (!childIsAlive)
5733 {
5734 <div class="fa-death" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"></div>
5735 }
5736 @if (childIsApprovedStud)
5737 {
5738 <div class="fa-approved-stud" data-toggle="tooltip" title="@Translate("IsApprovedStud", "Is an approved stud").JsEncode().ToUpper()"></div>
5739 }
5740 </td>
5741 <td class="nowrap">@childName</td>
5742 @if (isMare)
5743 {
5744 <td>@childsFather</td>
5745 }
5746 else
5747 {
5748 @*<td>-</td> mother*@
5749 <td>@childsMothersFather</td>
5750 }
5751 <td><div data-toggle="tooltip" @(!childGender.Equals(Kwpn.Models.Enumerations.Gender.EMBRYO) ? $" title='{childDoBirth}'" : "")>@childYoBirth</div></td>
5752 <td style="width:150px" class="ellipsis"><div data-toggle="tooltip" title="@child.Register.JsEncode()">@child.Register</div></td>
5753 <td>@childSportsLevel</td>
5754
5755 </tr>
5756 }
5757 </table>
5758 }
5759 else
5760 {
5761 <p>@Translate("NoRegisteredOffspring", "No registered offspring")</p>
5762 }
5763 </div>
5764 }
5765 </div>
5766 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
5767 @*note: variables like "showMemberContent/reports/language" are set in the parent: Paragraph/HorseDatabase.cshtml*@
5768 <div class="horse-detail-item hidden" id="horse-detail-item-approved-offspring" data-content="tab_approved_offspring">
5769 @if (isApprovedStud)
5770 {
5771 var approvedOffspring = horse.ApprovedOffspring;
5772 var approvedOffspring2ndGen = horse.ApprovedOffspringGrandchild;
5773
5774 if ((approvedOffspring != null && approvedOffspring.Any()) || (approvedOffspring2ndGen != null && approvedOffspring2ndGen.Any()))
5775 {
5776 if (approvedOffspring != null && approvedOffspring.Any())
5777 {
5778 <h2>@Translate("ApprovedOffspring1stGen", "Approved offspring 1st generation")</h2>
5779 <div class="table-responsive">
5780 <table id="offspring1GenTable" class="horsesTable">
5781 <thead>
5782 <tr>
5783 <th data-sortOn="Gender" data-sortBy="Asc"></th>
5784 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th>
5785 <th data-sortOn="DateOfBirth" data-sortBy="Asc">@Translate("YearOfBirth", "Year of birth")<i class="fa"></i></th>
5786 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th>
5787 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th>
5788 @*<th data-sortOn="Mother" data-sortBy="Asc">@Translate("MothersMotherFatherName", "Mothers mothers father")<i class="fa"></i></th>*@
5789 </tr>
5790 </thead>
5791 @foreach (var offspring1Gen in approvedOffspring)
5792 {
5793 // SearchAnimalResultModel
5794
5795 var offspring1GenGenderClass = "fa-question";
5796 var offspring1GenGenderAbbr = "";
5797 var offspring1GenGender = Kwpn.Models.Enumerations.Gender.UNKNOWN;
5798 var offspring1GenIsAlive = offspring1Gen.DateOfDeath == null;
5799 Enum.TryParse(offspring1Gen.Gender.ToUpper(), out offspring1GenGender);
5800 switch (offspring1GenGender)
5801 {
5802 case Kwpn.Models.Enumerations.Gender.HENGST:
5803 offspring1GenGenderClass = "fa-mars";
5804 offspring1GenGenderAbbr = Translate("Stallion", "Stallion");
5805 break;
5806 case Kwpn.Models.Enumerations.Gender.MERRIE:
5807 offspring1GenGenderClass = "fa-venus";
5808 offspring1GenGenderAbbr = Translate("Mare", "Mare");
5809 break;
5810 case Kwpn.Models.Enumerations.Gender.RUIN:
5811 offspring1GenGenderClass = "fa-mars"; //fa-mars-stroke-h
5812 offspring1GenGenderAbbr = Translate("Gelding", "Gelding");
5813 break;
5814 }
5815
5816 var offspring1GenName = offspring1Gen.AnimalName;
5817 if (!string.IsNullOrWhiteSpace(offspring1Gen.SportsName))
5818 {
5819 offspring1GenName = offspring1Gen.SportsName;
5820 }
5821
5822 var offspring1GenDoBirth = "";
5823 var offspring1GenYoBirth = "";
5824 if (offspring1Gen.DateOfBirth.HasValue && !offspring1Gen.DateOfBirth.Value.Equals(DateTime.MinValue))
5825 {
5826 offspring1GenDoBirth = offspring1Gen.DateOfBirth.Value.ToShortDateString();
5827 offspring1GenYoBirth = offspring1Gen.DateOfBirth.Value.Year.ToString();
5828 }
5829
5830 var offspring1GenFather = offspring1Gen.Father;
5831 var offspring1GenMothersFather = offspring1Gen.MothersFather;
5832 var offspring1GenIsApprovedStud = offspring1Gen.ApprovedStallion;
5833
5834 <tr class="clickable" onclick="document.location.href='@HorseHelper.GetHorseInfoPageUrl(culture, offspring1Gen.AnimalCode)';" data-horsecode="@offspring1Gen.AnimalCode">
5835 <td class="nowrap">
5836 <i class="fa @offspring1GenGenderClass"></i>
5837 @if (!offspring1GenIsAlive)
5838 {
5839 <div class="fa-death" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"></div>
5840 }
5841 @if (offspring1GenIsApprovedStud)
5842 {
5843 <div class="fa-approved-stud" data-toggle="tooltip" title="@Translate("IsApprovedStud", "Is an approved stud").JsEncode().ToUpper()"></div>
5844 }
5845 </td>
5846 <td>@offspring1GenName</td>
5847 <td><div data-toggle="tooltip" title="@offspring1GenDoBirth">@offspring1GenYoBirth</div></td>
5848 <td>@offspring1Gen.Color</td>
5849 <td><span class="nowrap">@offspring1GenFather</span> x <span class="nowrap">@offspring1GenMothersFather</span></td>
5850 </tr>
5851 }
5852 </table>
5853 </div>
5854 }
5855
5856 if (approvedOffspring2ndGen != null && approvedOffspring2ndGen.Any())
5857 {
5858 <h2>@Translate("ApprovedOffspring2ndGen", "Approved offspring 2nd generation")</h2>
5859 <div class="table-responsive">
5860 <table id="offspring2GenTable" class="horsesTable">
5861 <thead>
5862 <tr>
5863 <th data-sortOn="Gender" data-sortBy="Asc"></th>
5864 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th>
5865 <th data-sortOn="DateOfBirth" data-sortBy="Asc">@Translate("YearOfBirth", "Year of birth")<i class="fa"></i></th>
5866 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th>
5867 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th>
5868 </tr>
5869 </thead>
5870 @foreach (var offspring2Gen in approvedOffspring2ndGen)
5871 {
5872 // SearchAnimalResultModel
5873 var offspring2GenGenderClass = "fa-question";
5874 var offspring2GenGenderAbbr = "";
5875 var offspring2GenGender = Kwpn.Models.Enumerations.Gender.UNKNOWN;
5876 var offspring2GenIsAlive = offspring2Gen.DateOfDeath == null;
5877 Enum.TryParse(offspring2Gen.Gender.ToUpper(), out offspring2GenGender);
5878 switch (offspring2GenGender)
5879 {
5880 case Kwpn.Models.Enumerations.Gender.HENGST:
5881 offspring2GenGenderClass = "fa-mars";
5882 offspring2GenGenderAbbr = Translate("Stallion", "Stallion");
5883 break;
5884 case Kwpn.Models.Enumerations.Gender.MERRIE:
5885 offspring2GenGenderClass = "fa-venus";
5886 offspring2GenGenderAbbr = Translate("Mare", "Mare");
5887 break;
5888 case Kwpn.Models.Enumerations.Gender.RUIN:
5889 offspring2GenGenderClass = "fa-mars";
5890 offspring2GenGenderAbbr = Translate("Gelding", "Gelding");
5891 break;
5892 }
5893
5894 var offspring2GenName = offspring2Gen.AnimalName;
5895 if (!string.IsNullOrWhiteSpace(offspring2Gen.SportsName))
5896 {
5897 offspring2GenName = offspring2Gen.SportsName;
5898 }
5899
5900 var offspring2GenDoBirth = "";
5901 var offspring2GenYoBirth = "";
5902 if (offspring2Gen.DateOfBirth.HasValue && !offspring2Gen.DateOfBirth.Value.Equals(DateTime.MinValue))
5903 {
5904 offspring2GenDoBirth = offspring2Gen.DateOfBirth.Value.ToShortDateString();
5905 offspring2GenYoBirth = offspring2Gen.DateOfBirth.Value.Year.ToString();
5906 }
5907
5908 var offspring2GenFather = offspring2Gen.Father;
5909 var offspring2GenMothersFather = offspring2Gen.MothersFather;
5910 var offspring2GenIsApprovedStud = offspring2Gen.ApprovedStallion;
5911
5912 <tr class="clickable" onclick="document.location.href='@HorseHelper.GetHorseInfoPageUrl(culture, offspring2Gen.AnimalCode)';" data-horsecode="@offspring2Gen.AnimalCode">
5913 <td class="nowrap">
5914 <i class="fa @offspring2GenGenderClass"></i>
5915 @if (!offspring2GenIsAlive)
5916 {
5917 <div class="fa-death" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"></div>
5918 }
5919 @if (offspring2GenIsApprovedStud)
5920 {
5921 <div class="fa-approved-stud" data-toggle="tooltip" title="@Translate("IsApprovedStud", "Is an approved stud").JsEncode().ToUpper()"></div>
5922 }
5923 </td>
5924 <td class="nowrap">@offspring2GenName</td>
5925 <td><div data-toggle="tooltip" title="@offspring2GenDoBirth">@offspring2GenYoBirth</div></td>
5926 <td>@offspring2Gen.Color</td>
5927 <td><span class="nowrap">@offspring2GenFather</span> x <span class="nowrap">@offspring2GenMothersFather</span></td>
5928 </tr>
5929 }
5930 </table>
5931 </div>
5932 }
5933 }
5934 else
5935 {
5936 <h2>@Translate("ApprovedOffspring", "Approved offspring")</h2>
5937 <p>@Translate("NoApprovedOffspring", "No approved offspring")</p>
5938 }
5939 }
5940 </div>
5941 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
5942 @*note: variables like "showMemberContent/horseHasMemberContentOverride/reports/language" are set in the parent: Paragraph/HorseDatabase.cshtml*@
5943 <div class="horse-detail-item hidden" id="horse-detail-item-performance-report" data-content="tab_performance_report">
5944 @if (isApprovedStud)
5945 {
5946 <h2>@Translate("PerformanceReport", "Performance report")</h2>
5947 var performanceReportText = "";
5948 if (reports != null)
5949 {
5950 var performanceReport = reports.Where(
5951 r => r.Language.Equals(language, StringComparison.OrdinalIgnoreCase) &&
5952 r.Type.Equals(Kwpn.Models.Enumerations.ReportType.Verrichtingsverslag.ToString(), StringComparison.OrdinalIgnoreCase)
5953 ).FirstOrDefault();
5954
5955 if (performanceReport != null)
5956 {
5957 performanceReportText = Kwpn.Repository.Helpers.FormatHelpers.CleanEquisText(performanceReport.Report);
5958 }
5959 }
5960 if (!string.IsNullOrWhiteSpace(performanceReportText))
5961 {
5962 @performanceReportText
5963 }
5964 else
5965 {
5966 <p>@Translate("NoPerformanceReport", "No registered performance report")</p>
5967 }
5968 }
5969 </div>
5970 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
5971 @*note: variables like "showMemberContent/isApprovedStud" are set in the parent: Paragraph/HorseDatabase.cshtml*@
5972 <div class="horse-detail-item hidden" id="horse-detail-item-performance-figures" data-content="tab_performance_figures">
5973 @if (isApprovedStud)
5974 {
5975 var performanceFigures = horse.PerformancetestScores;
5976 if (performanceFigures != null && performanceFigures.Any())
5977 {
5978 var performanceFigureCounter = 0;
5979 <h2>@Translate("PerformanceFigures", "Performance test scores")</h2>
5980 <div class="performance-figures infotable">
5981 @CreateInfoTableRow(performanceFigureCounter, Translate("Description", "Description"), Translate("Value", "Value"), true)
5982 @foreach (var figure in performanceFigures)
5983 {
5984 //PerformancetestScoreModel
5985 @CreateInfoTableRow(performanceFigureCounter, figure.Description, figure.Value, false, false, false)
5986 performanceFigureCounter++;
5987 }
5988 </div>
5989 }
5990 else
5991 {
5992 <p>@Translate("NoPerformanceFigures", "No registered test scores")</p>
5993 }
5994 }
5995 </div>
5996 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
5997 <div class="horse-detail-item hidden" id="horse-detail-item-breeding-registration" data-content="tab_breeding_registration">
5998 @if (isApprovedStud)
5999 {
6000 var breedingRegistrations = horse.BreedingRegistrations;
6001 if (breedingRegistrations != null && breedingRegistrations.Any())
6002 {
6003 var breedingRegistrationCounter = 0;
6004 <div class="breedingRegistrations infotable">
6005 <h2>@Translate("BreedingRegistration", "Breeding registration")</h2>
6006 @foreach (var breedingRegistration in breedingRegistrations)
6007 {
6008 @CreateInfoTableRow(breedingRegistrationCounter, breedingRegistration.Description, breedingRegistration.Value, false, false, false)
6009 breedingRegistrationCounter++;
6010 }
6011 </div>
6012 }
6013 }
6014 </div>
6015 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
6016 @*note: variables like "showMemberContent/reports/language" are set in the parent: Paragraph/HorseDatabase.cshtml*@
6017 <div class="horse-detail-item hidden" id="horse-detail-item-descendant-report" data-content="tab_descendant_report">
6018 @if (isApprovedStud)
6019 {
6020 <h2>@Translate("DescendantsReport", "Descendants report")</h2>
6021 var descendantsReportText = "";
6022 if (reports != null)
6023 {
6024 var descendantsReport = reports.Where(
6025 r => r.Language.Equals(language, StringComparison.OrdinalIgnoreCase) &&
6026 r.Type.Equals(Kwpn.Models.Enumerations.ReportType.Afstammelingenrapport.ToString(), StringComparison.OrdinalIgnoreCase)
6027 ).FirstOrDefault();
6028
6029 if (descendantsReport != null)
6030 {
6031 descendantsReportText = Kwpn.Repository.Helpers.FormatHelpers.CleanEquisText(descendantsReport.Report);
6032 }
6033 }
6034
6035 if (!string.IsNullOrWhiteSpace(descendantsReportText))
6036 {
6037 @descendantsReportText
6038 }
6039 else
6040 {
6041 <p>@Translate("NoDescendantsReport", "No registered descendants report")</p>
6042 }
6043 }
6044 </div>
6045 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
6046 @*note: variables like "showMemberContent/reports/language" are set in the parent: Paragraph/HorseDatabase.cshtml*@
6047 <div class="horse-detail-item hidden" id="horse-detail-item-availability" data-content="tab_availability">
6048 @if (isApprovedStud)
6049 {
6050 <h2>@Translate("Availability", "Availability")</h2>
6051 var spermAvailables = horse.SpermAvailables;
6052 if (spermAvailables != null && spermAvailables.Any())
6053 {
6054 <div class="table-responsive">
6055 <table id="availability-sperm">
6056 <thead>
6057 <tr>
6058 <th>@Translate("Type", "Type")</th>
6059 <th>@Translate("StudStation", "Stud station")</th>
6060 <th>@Translate("TelephoneNumber", "Telephone number")</th>
6061 <th>@Translate("Website", "Website")</th>
6062 </tr>
6063 </thead>
6064
6065 @foreach (var spermAvailability in spermAvailables)
6066 {
6067 //SpermAvailableModel
6068 var telephone = spermAvailability.Telephone;
6069 if (!string.IsNullOrWhiteSpace(spermAvailability.Mobile))
6070 {
6071 if (!string.IsNullOrWhiteSpace(telephone) && !telephone.Equals(spermAvailability.Mobile))
6072 {
6073 telephone = string.Format("{0}, ", telephone);
6074 telephone = string.Format("{0}{1}", telephone, spermAvailability.Mobile);
6075 }
6076 else
6077 {
6078 telephone = spermAvailability.Mobile;
6079 }
6080 }
6081 if (string.IsNullOrWhiteSpace(telephone))
6082 {
6083 telephone = "-";
6084 }
6085
6086 var website = spermAvailability.Website;
6087 if (!string.IsNullOrWhiteSpace(website))
6088 {
6089 var websiteText = "";
6090 var websiteUrl = "";
6091 website = website.ToLower();
6092 if (website.Contains("://"))
6093 {
6094 websiteText = new Uri(website).PathAndQuery;
6095 websiteUrl = website;
6096 }
6097 else
6098 {
6099 websiteText = website;
6100 websiteUrl = string.Format("http://{0}", website);
6101 }
6102 website = string.Format("<a href=\"{0}\" target=\"blank\" title=\"{2}: {1}\">{2}</a>", websiteUrl, websiteText, Translate("GoToWebsite", "Go to website").JsEncode());
6103 }
6104 else
6105 {
6106 website = "-";
6107 }
6108 <tr>
6109 <td>@spermAvailability.Type</td>
6110 <td>@spermAvailability.StallionOwner</td>
6111 <td>@telephone</td>
6112 <td>@website</td>
6113 </tr>
6114 }
6115 </table>
6116 </div>
6117 }
6118 else
6119 {
6120 <p>@Translate("AvailabilityUnknown", "Availability unknown")</p>
6121 }
6122 }
6123 </div>
6124 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
6125 <div class="horse-detail-item hidden" id="horse-detail-item-breederinfo" data-content="tab_breeders_info" data-culture="@Dynamicweb.Frontend.PageView.Current().Area.Culture">
6126 <div class="breederinfo-panel hidden" id="breeder-data">
6127 <div class="row">
6128 <div class="col-xs-12">
6129 <h2>@Translate("BreederInfo_Title", "About") <span class="breeder-name"></span></h2>
6130 <table>
6131 <tr id="breeder-website-row" class="hidden">
6132 <td>@Translate("BreederInfo_Website", "Website"):</td>
6133 <td class="js-content" id="breeder-website"></td>
6134 </tr>
6135 </table>
6136 </div>
6137 </div>
6138 <div class="row">
6139 @{
6140 var currentUrl = System.Web.HttpContext.Current.Request.Url.PathAndQuery;
6141 }
6142 <div class="col-xs-12" id="quick-links">
6143 <i class="fa fa-spinner fa-spin" id="quick-links-loader"></i>
6144 <a class="hidden" href="#breeder-products">@Translate("BreederInfo_QuickLink_BreedingProducts", "Breeding products")</a>
6145 <a class="hidden" href="#breeder-horses">@Translate("BreederInfo_QuickLink_Horses", "Owned horses")</a>
6146 <a class="hidden" href="#breeder-horsesforsale">@Translate("BreederInfo_QuickLink_HorsesForSale", "Horses for sale")</a>
6147 <a class="hidden" href="#breeder-horsenews">@Translate("BreederInfo_QuickLink_HorsesNews", "Horses to name and breeding products in the news")</a>
6148 <a class="hidden" href="#breeder-performance">@Translate("BreederInfo_QuickLink_Performance", "")</a>
6149 <a class="hidden" href="#breeder-contact">@Translate("BreederInfo_QuickLink_Contact", "Contact this breeder")</a>
6150 </div>
6151 </div>
6152 </div>
6153 <div class="breederinfo-panel hidden" id="breeder-products" data-culture="@Dynamicweb.Frontend.PageView.Current().Area.Culture">
6154 <div class="background">
6155 <div class="row">
6156 <div class="col-xs-12">
6157 <h2>
6158 <a href="javascript:void(0);" class="breeder-products-toggler">
6159 @Translate("BreederInfo_BreedingProducts", "Breeding products") <span id="breeder-products-counter" class="js-content"></span>
6160 <i class="fa fa-chevron-down rotated"></i>
6161 </a>
6162 </h2>
6163 </div>
6164 </div>
6165 @{
6166 var productsIntro = Translate("BreederInfo_BreedingProductsIntro", "");
6167 if (!string.IsNullOrWhiteSpace(productsIntro))
6168 {
6169 <div class="row breeder-products-data">
6170 <div class="col-xs-12">
6171 @productsIntro
6172 </div>
6173 </div>
6174 }
6175 }
6176 <div class="row filter-row breeder-products-data">
6177 <div id="breeder-products-too-many-results" class="col-xs-12 hidden">
6178 <p>@Translate("BreederInfo_Products_TooManySearchResults", "Your search gave <span id='breeder-products-too-many-results2'></span> results, of which we show the first 100. Please use filtering and sorting to find what you are looking for.")</p>
6179 </div>
6180 <div class="col-xs-12 col-md-4">
6181 <div class="input-group">
6182 <input type="text" class="form-control" id="breeder-products-filter" placeholder='@Translate("FilterByAttributes", "Filter by attributes")' />
6183 <span class="input-group-addon" id="btn-breeder-products-filter"><i class="fa fa-search"></i></span>
6184 </div>
6185 </div>
6186 <div class="col-xs-12 col-md-4">
6187 <div class="input-group">
6188 <input type="checkbox" class="form-control" id="breeder-products-showdeadhorses" />
6189 <label for="breeder-products-showdeadhorses">@Translate("ShowDeadHorses", "Show dead horses")</label>
6190 </div>
6191 </div>
6192 </div>
6193 <div class="row breeder-products-data">
6194 <div class="col-xs-12">
6195 <div class="table-responsive" style="zoom: 0.9;">
6196 <table id="breeder-products-table">
6197 <thead>
6198 <tr>
6199 <th data-sortOn="Gender" data-sortBy="Asc"><span class="hidden-xs hidden-sm">@Translate("Gender", "Gender")<i class="fa"></i></span></th>
6200 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th>
6201 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th>
6202 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th>
6203 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th>
6204 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th>
6205 </tr>
6206 </thead>
6207 <tbody class="js-content"></tbody>
6208 </table>
6209 </div>
6210 </div>
6211 </div>
6212 </div>
6213 </div>
6214 <div class="breederinfo-panel hidden" id="breeder-horses" data-culture="@Dynamicweb.Frontend.PageView.Current().Area.Culture">
6215 <div class="background">
6216 <div class="row">
6217 <div class="col-xs-12">
6218 <h2>
6219 <a href="javascript:void(0);" class="breeder-horses-toggler">
6220 @Translate("BreederInfo_Horses", "Owned horses") <span id="breeder-horses-counter" class="js-content"></span>
6221 <i class="fa fa-chevron-down rotated"></i>
6222 </a>
6223 </h2>
6224 </div>
6225 </div>
6226 @{
6227 var horsesIntro = Translate("BreederInfo_HorsesIntro", "");
6228 if (!string.IsNullOrWhiteSpace(horsesIntro))
6229 {
6230 <div class="row breeder-horses-data">
6231 <div class="col-xs-12">
6232 @horsesIntro
6233 </div>
6234 </div>
6235 }
6236 }
6237 <div class="row filter-row breeder-horses-data">
6238 <div id="breeder-horses-too-many-results" class="col-xs-12 hidden">
6239 <p>@Translate("BreederInfo_Horses_TooManySearchResults", "Your search gave <span id='breeder-horses-too-many-results2'></span> results, of which we show the first 100. Please use filtering and sorting to find what you are looking for.")</p>
6240 </div>
6241 <div class="col-xs-12 col-md-4">
6242 <div class="input-group">
6243 <input type="text" class="form-control" id="breeder-horses-filter" placeholder='@Translate("FilterByAttributes", "Filter by attributes")' />
6244 <span class="input-group-addon" id="btn-breeder-horses-filter"><i class="fa fa-search"></i></span>
6245 </div>
6246 </div>
6247 <div class="col-xs-12 col-md-4">
6248 <div class="input-group">
6249 <input type="checkbox" class="form-control" id="breeder-horses-showdeadhorses" />
6250 <label for="breeder-horses-showdeadhorses">@Translate("ShowDeadHorses", "Show dead horses")</label>
6251 </div>
6252 </div>
6253 </div>
6254 <div class="row breeder-horses-data">
6255 <div class="col-xs-12">
6256 <div class="table-responsive" style="zoom: 0.9;">
6257 <table id="breeder-horses-table">
6258 <thead>
6259 <tr>
6260 <th data-sortOn="Gender" data-sortBy="Asc"><span class="hidden-xs hidden-sm">@Translate("Gender", "Gender")<i class="fa"></i></span></th>
6261 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th>
6262 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th>
6263 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th>
6264 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th>
6265 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th>
6266 </tr>
6267 </thead>
6268 <tbody class="js-content"></tbody>
6269 </table>
6270 </div>
6271 </div>
6272 </div>
6273 </div>
6274 </div>
6275 <div class="breederinfo-panel marketplace-topx hidden" id="breeder-horsesforsale">
6276 <div class="row">
6277 <div class="col-xs-12">
6278 <h2>
6279 <a href="javascript:void(0);" class="breeder-horsesforsale-toggler">
6280 @Translate("BreederInfo_HorsesForSale", "Horses for sale") <span id="breeder-horsesforsale-counter" class="js-content"></span>
6281 <i class="fa fa-chevron-down rotated"></i>
6282 </a>
6283 </h2>
6284 </div>
6285 </div>
6286 @{
6287 var forSaleIntro = Translate("BreederInfo_HorsesForSaleIntro", "");
6288 if (!string.IsNullOrWhiteSpace(forSaleIntro))
6289 {
6290 <div class="row breeder-horsesforsale-data">
6291 <div class="col-xs-12">
6292 @forSaleIntro
6293 </div>
6294 </div>
6295 }
6296 }
6297 <div class="row breeder-horsesforsale-data">
6298 <div class="col-xs-12 result-container js-content" id="breeder-horsesforsale-adverts">
6299 </div>
6300 </div>
6301 </div>
6302 <div class="breederinfo-panel hidden" id="breeder-horsenews">
6303 <div class="row">
6304 <div class="col-xs-12">
6305 <h2>
6306 <a href="javascript:void(0);" class="breeder-horsenews-toggler">
6307 @Translate("BreederInfo_HorsesNews", "Horses to name and breeding products in the news") <span id="breeder-horsenews-counter" class="js-content"></span>
6308 <i class="fa fa-chevron-down rotated"></i>
6309 </a>
6310 </h2>
6311 </div>
6312 </div>
6313 @{
6314 var newsIntro = Translate("BreederInfo_NewsIntro", "");
6315 if (!string.IsNullOrWhiteSpace(newsIntro))
6316 {
6317 <div class="row breeder-horsenews-data">
6318 <div class="col-xs-12">
6319 @newsIntro
6320 </div>
6321 </div>
6322 }
6323 }
6324 <div class="row breeder-horsenews-data">
6325 <div class="col-xs-12 js-content" id="breeder-horsenews-items">
6326
6327 </div>
6328 </div>
6329 </div>
6330 <div class="breederinfo-panel hidden" id="breeder-performance">
6331 <div class="row">
6332 <div class="col-xs-12">
6333 <h2>
6334 <a href="javascript:void(0);" class="breeder-performance-toggler">
6335 @Translate("BreederInfo_Performance", "Performance") <i class="fa fa-chevron-down rotated"></i>
6336 </a>
6337 </h2>
6338 </div>
6339 </div>
6340 @{
6341 var performanceIntro = Translate("BreederInfoPerformanceIntro", "");
6342 if (!string.IsNullOrWhiteSpace(performanceIntro))
6343 {
6344 <div class="row breeder-performance-data">
6345 <div class="col-xs-12">
6346 @performanceIntro
6347 </div>
6348 </div>
6349 }
6350 }
6351 <div class="row breeder-performance-data">
6352 <div class="col-xs-12 performance-item hidden" id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.PerformanceMares.ToString("g").ToLower()">
6353 <h3>@Translate($"BreederInfo_Performance_{Kwpn.Models.Enumerations.BreederPerformanceType.PerformanceMares.ToString("g")}", Kwpn.Models.Enumerations.BreederPerformanceType.PerformanceMares.ToString("g"))</h3>
6354 <div class="table-responsive" style="zoom: 0.9;">
6355 <table id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.PerformanceMares.ToString("g").ToLower()-table">
6356 <thead>
6357 <tr>
6358 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th>
6359 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th>
6360 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th>
6361 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th>
6362 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th>
6363 </tr>
6364 </thead>
6365 <tbody class="js-content"></tbody>
6366 </table>
6367 </div>
6368 </div>
6369 <div class="col-xs-12 performance-item hidden" id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.PreferredMares.ToString("g").ToLower()">
6370 <h3>@Translate($"BreederInfo_Performance_{Kwpn.Models.Enumerations.BreederPerformanceType.PreferredMares.ToString("g")}", Kwpn.Models.Enumerations.BreederPerformanceType.PreferredMares.ToString("g"))</h3>
6371 <div class="table-responsive" style="zoom: 0.9;">
6372 <table id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.PreferredMares.ToString("g").ToLower()-table">
6373 <thead>
6374 <tr>
6375 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th>
6376 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th>
6377 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th>
6378 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th>
6379 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th>
6380 </tr>
6381 </thead>
6382 <tbody class="js-content"></tbody>
6383 </table>
6384 </div>
6385 </div>
6386 <div class="col-xs-12 performance-item hidden" id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.EliteMares.ToString("g").ToLower()">
6387 <h3>@Translate($"BreederInfo_Performance_{Kwpn.Models.Enumerations.BreederPerformanceType.EliteMares.ToString("g")}", Kwpn.Models.Enumerations.BreederPerformanceType.EliteMares.ToString("g"))</h3>
6388 <div class="table-responsive" style="zoom: 0.9;">
6389 <table id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.EliteMares.ToString("g").ToLower()-table">
6390 <thead>
6391 <tr>
6392 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th>
6393 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th>
6394 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th>
6395 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th>
6396 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th>
6397 </tr>
6398 </thead>
6399 <tbody class="js-content"></tbody>
6400 </table>
6401 </div>
6402 </div>
6403 <div class="col-xs-12 performance-item hidden" id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.SportMares.ToString("g").ToLower()">
6404 <h3>@Translate($"BreederInfo_Performance_{Kwpn.Models.Enumerations.BreederPerformanceType.SportMares.ToString("g")}", Kwpn.Models.Enumerations.BreederPerformanceType.SportMares.ToString("g"))</h3>
6405 <div class="table-responsive" style="zoom: 0.9;">
6406 <table id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.SportMares.ToString("g").ToLower()-table">
6407 <thead>
6408 <tr>
6409 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th>
6410 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th>
6411 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th>
6412 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th>
6413 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th>
6414 </tr>
6415 </thead>
6416 <tbody class="js-content"></tbody>
6417 </table>
6418 </div>
6419 </div>
6420 <div class="col-xs-12 performance-item hidden" id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.ApprovedStallions.ToString("g").ToLower()">
6421 <h3>@Translate($"BreederInfo_Performance_{Kwpn.Models.Enumerations.BreederPerformanceType.ApprovedStallions.ToString("g")}", Kwpn.Models.Enumerations.BreederPerformanceType.ApprovedStallions.ToString("g"))</h3>
6422 <div class="table-responsive" style="zoom: 0.9;">
6423 <table id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.ApprovedStallions.ToString("g").ToLower()-table">
6424 <thead>
6425 <tr>
6426 <td></td>
6427 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th>
6428 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th>
6429 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th>
6430 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th>
6431 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th>
6432 </tr>
6433 </thead>
6434 <tbody class="js-content"></tbody>
6435 </table>
6436 </div>
6437 </div>
6438 <div class="col-xs-12 performance-item hidden" id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.GoodPerformanceMares.ToString("g").ToLower()">
6439 <h3>@Translate($"BreederInfo_Performance_{Kwpn.Models.Enumerations.BreederPerformanceType.GoodPerformanceMares.ToString("g")}", Kwpn.Models.Enumerations.BreederPerformanceType.GoodPerformanceMares.ToString("g"))</h3>
6440 <div class="table-responsive" style="zoom: 0.9;">
6441 <table id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.GoodPerformanceMares.ToString("g").ToLower()-table">
6442 <thead>
6443 <tr>
6444 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th>
6445 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th>
6446 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th>
6447 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th>
6448 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th>
6449 </tr>
6450 </thead>
6451 <tbody class="js-content"></tbody>
6452 </table>
6453 </div>
6454 </div>
6455 </div>
6456 </div>
6457 <div class="breederinfo-panel hidden" id="breeder-contact">
6458 <div class="row">
6459 <div class="col-xs-12">
6460 <h2>
6461 <a href="javascript:void(0);" class="breeder-contact-toggler">
6462 @Translate("BreederInfo_Contact", "Contact") <span class="breeder-name"></span>
6463 <i class="fa fa-chevron-down rotated"></i>
6464 </a>
6465 </h2>
6466 </div>
6467 </div>
6468 @{
6469 var contactIntro = Translate("BreederInfo_ContactIntro", "");
6470 if (!string.IsNullOrWhiteSpace(contactIntro))
6471 {
6472 <div class="row breeder-contact-data">
6473 <div class="col-xs-12">
6474 @contactIntro
6475 </div>
6476 </div>
6477 }
6478 }
6479 <div class="row breeder-contact-data form-body">
6480 <div class="col-xs-12">
6481 <div class="form-group">
6482
6483 @*NAME*@
6484 <div class="form-inline">
6485 <label class="control-label col-sm-3" for="Breeder_Contact_Name">@Translate("BreederInfo_Contact_Name", "Name") *</label>
6486 <input type="text" class="form-control hide-hints" id="Breeder_Contact_Name" name="Breeder_Contact_Name" value="" required />
6487 </div>
6488
6489 @*EMAIL*@
6490 <div class="form-inline">
6491 <label class="control-label col-sm-3" for="Breeder_Contact_EmailAddress">@Translate("BreederInfo_Contact_EmailAddress", "Email address") *</label>
6492 <input type="email" class="form-control hide-hints" id="Breeder_Contact_EmailAddress" name="Breeder_Contact_EmailAddress" value="" required />
6493 </div>
6494
6495 @*PHONE*@
6496 <div class="form-inline">
6497 <label class="control-label col-sm-3" for="Breeder_Contact_Phone">@Translate("BreederInfo_Contact_Phone", "Phone number")</label>
6498 <input type="text" class="form-control hide-hints" id="Breeder_Contact_Phone" name="Breeder_Contact_Phone" value="" />
6499 </div>
6500
6501 @*City*@
6502 <div class="form-inline">
6503 <label class="control-label col-sm-3" for="Breeder_Contact_City">@Translate("City", "City")</label>
6504 <input type="text" class="form-control hide-hints" id="Breeder_Contact_City" name="Breeder_Contact_City" value="" />
6505 </div>
6506
6507 @*QUESTION*@
6508 <div class="form-inline">
6509 <label class="control-label col-sm-3" for="Breeder_Contact_Question">@Translate("BreederInfo_Contact_Question", "Question") *</label>
6510 <textarea class="form-control hide-hints" id="Breeder_Contact_Question" name="Breeder_Contact_Question" placeholder="@Translate("BreederInfo_Contact_Question_Placeholder", "What's on your mind?")" cols="36" rows="5" required></textarea>
6511 </div>
6512
6513 <div class="form-inline">
6514 <div class="col-sm-offset-3 form-end">
6515
6516 @{
6517 var reCaptchaSiteKey = Kwpn.Models.Constants.StringConstants.ApplicationVariables.RecaptchaSiteKey;
6518 var useReCaptcha = !string.IsNullOrEmpty(reCaptchaSiteKey);
6519
6520 if (useReCaptcha)
6521 {
6522 <button class="submitBtn g-recaptcha"
6523 id="Breeder_Contact_Submit"
6524 name="Breeder_Contact_Submit"
6525 data-sitekey="@reCaptchaSiteKey"
6526 data-callback="breederContactCheckReCaptcha"
6527 data-action="submit"
6528 data-badge="inline"
6529 defaultText="@Translate("BreederInfo_Contact_Submit", "Submit").JsEncode()">
6530 @Translate("BreederInfo_Contact_Submit", "Submit")
6531 </button>
6532
6533 @SnippetStart("JavascriptsBottom")
6534 <script>
6535 function breederContactCheckReCaptcha(token) {
6536 BreederInfoHelper.SubmitContactForm(token);
6537 }
6538
6539 $(document).ready(function () {
6540
6541 // handle recaptcha terms
6542 $("input[type=text], input[type=email]", ".breeder-contact-data").focusin(function () {
6543 $("body > div > .grecaptcha-badge").css("visibility", "visible");
6544 });
6545 $("input[type=text], input[type=email]", ".breeder-contact-data").focusout(function () {
6546 $("body > div > .grecaptcha-badge").css("visibility", "hidden");
6547 });
6548 });
6549 </script>
6550 @SnippetEnd("JavascriptsBottom")
6551 }
6552 else
6553 {
6554 <button id="Breeder_Contact_Submit"
6555 class="g-recaptcha submitBtn"
6556 type="button"
6557 defaultText="@Translate("BreederInfo_Contact_Submit", "Submit").JsEncode()"
6558 onclick="BreederInfoHelper.SubmitContactForm();">
6559 @Translate("BreederInfo_Contact_Submit", "Submit")
6560 </button>
6561 }
6562
6563
6564 }
6565
6566
6567
6568 </div>
6569 </div>
6570
6571 <div class="error">
6572 <div class="col-sm-offset-3">
6573 <span class="all-required hidden">@Translate("BreederInfo_Contact_AllFieldsRequired", "All fields are required")</span>
6574 <span class="email-invalid hidden">@Translate("BreederInfo_Contact_EmailInvalid", "The emailaddress is invalid")</span>
6575 <span class="send-error hidden">@Translate("BreederInfo_Contact_SendError", "Something went wrong")</span>
6576 </div>
6577 </div>
6578 </div>
6579 <div class="confirm-text hidden">
6580 @Translate("BreederInfo_Contact_ConfirmationText", "Thanks. KWPN will send your question to this breeder.")
6581 </div>
6582 </div>
6583 </div>
6584 </div>
6585 <div class="breederinfo-panel hidden static" id="breeder-loadfailed">
6586 <p>@Translate("BreederInfo_LoadFailed", "Something went wrong while loading the breeder data.")</p>
6587 </div>
6588 @SnippetStart("JavascriptsBottom")
6589 <script id="breeder-horses-item-template" type="text/html">
6590 <tr class="${ClassName} clickable" onclick="document.location.href = '${DetailLink}';" data-horsecode="${HorseCode}">
6591 <td class="nowrap">
6592 <i class="fa ${GenderClass}"></i><span class="hidden-xs hidden-sm"> ${GenderAbbr}</span>
6593 {{if !IsAlive}}
6594 <div class="fa-death" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"></div>
6595 {{/if}}
6596 {{if IsApprovedStud}}
6597 <div class="fa-approved-stud" data-toggle="tooltip" title="@Translate("IsApprovedStud", "Is an approved stud").JsEncode().ToUpper()"></div>
6598 {{/if}}
6599 </td>
6600 <td>${AnimalName}{{if DateOfBirth != ""}}<br /><span class='small'>${GetDate(DateOfBirth)}</span>{{/if}}</td>
6601 <td>${Lifenumber}{{if LifenumberComplete != Lifenumber}}<br /><span class='small'>${LifenumberComplete}</span>{{/if}}</td>
6602 <td>${Register}</td>
6603 <td>${Color}</td>
6604 <td><span class="nowrap">${Father}</span> x <span class="nowrap">${MothersFather}</span></td>
6605 </tr>
6606 </script>
6607 <script id="breeder-advert-template" type="text/html">
6608 <div class="col-xs-12 col-sm-6 col-md-3">
6609 <a href="${advertLink}" data-horsecode="${animalCode}">
6610 <div class="advert {{if isTopAdvert}} topadvert {{/if}}">
6611 <div class="photo" style="background-image: url('{{if photo1 > ""}}${photo1}{{else}}/Files/Templates/Designs/Kwpn/Images/Marketplace_NoImg.jpg{{/if}}');">
6612 {{if isTopAdvert}}<div class="topadd">@Translate("Marketplace_TopAdvertIndicator", "Top add")</div>{{/if}}
6613 <div class="datesince">@Translate("Marketplace_Since", "Since") ${MarketplaceHelper.GetSinceDate(dateFrom, "@Dynamicweb.Frontend.PageView.Current().Area.Culture.ToLower()")} </div>
6614 </div>
6615 <div class="specs">
6616 <div class="row">
6617 <div class="col-xs-3 text-center">
6618 <div class="gender">
6619 {{if gender == '@Kwpn.Models.Enumerations.Gender.HENGST.ToString()'}}
6620 <i class="fa fa-mars" title="@Translate(Kwpn.Models.Enumerations.Gender.HENGST.ToString())"></i>
6621 {{/if}}
6622 {{if gender == '@Kwpn.Models.Enumerations.Gender.RUIN.ToString()'}}
6623 <i class="fa fa-mars" title="@Translate(Kwpn.Models.Enumerations.Gender.RUIN.ToString())"></i>
6624 {{/if}}
6625 {{if gender == '@Kwpn.Models.Enumerations.Gender.MERRIE.ToString()'}}
6626 <i class="fa fa-venus" title="@Translate(Kwpn.Models.Enumerations.Gender.MERRIE.ToString())"></i>
6627 {{/if}}
6628 </div>
6629 </div>
6630 <div class="col-xs-9 text-left" style="margin-left: -15px;">
6631 <div class="name">
6632 ${animalName}{{if age >= 0}}, ${age} @Translate("Marketplace_Years", "Years"){{/if}}
6633 </div>
6634 <div class="pedigree">
6635 ${fatherName} x ${mothersFatherName}
6636 </div>
6637 <div class="price">${priceLabel}</div>
6638 </div>
6639 </div>
6640 </div>
6641 </div>
6642 </a>
6643 </div>
6644 </script>
6645 <script id="breeder-horsenews-template" type="text/html">
6646 <div class="col-xs-12">
6647 <span class="date">${MarketplaceHelper.GetSinceDate(NewsDate, "@Dynamicweb.Frontend.PageView.Current().Area.Culture.ToLower()")}</span>
6648 <span class="horses">
6649 {{each(key, value) Horses}}
6650 <span class="horse"><a href="${key}">${value}</a></span>
6651 {{/each}}
6652 </span>
6653 <a href="${NewsLink}">
6654 <span class="title">${NewsTitle}</span>
6655 </a>
6656 </div>
6657 </script>
6658 <script id="breeder-performance-item-template" type="text/html">
6659 <tr class="${ClassName} clickable" onclick="document.location.href = '${DetailLink}';" data-horsecode="${HorseCode}">
6660 <td>${AnimalName}{{if DateOfBirth != ""}}<br /><span class='small'>${GetDate(DateOfBirth)}</span>{{/if}}</td>
6661 <td>${Lifenumber}{{if LifenumberComplete != Lifenumber}}<br /><span class='small'>${LifenumberComplete}</span>{{/if}}</td>
6662 <td>${Register}</td>
6663 <td>${Color}</td>
6664 <td><span class="nowrap">${Father}</span> x <span class="nowrap">${MothersFather}</span></td>
6665 </tr>
6666 </script>
6667 <script id="breeder-performance-item-@Kwpn.Models.Enumerations.BreederPerformanceType.ApprovedStallions.ToString("g").ToLower()-template" type="text/html">
6668 <tr class="${ClassName} clickable" onclick="document.location.href = '${DetailLink}';" data-horsecode="${HorseCode}">
6669 <td><img src="images/horseimage.ashx?pc=${HorseCode}" alt="${AnimalName}" /></td>
6670 <td>${AnimalName}{{if DateOfBirth != ""}}<br /><span class='small'>${GetDate(DateOfBirth)}</span>{{/if}}</td>
6671 <td>${Lifenumber}{{if LifenumberComplete != Lifenumber}}<br /><span class='small'>${LifenumberComplete}</span>{{/if}}</td>
6672 <td>${Register}</td>
6673 <td>${Color}</td>
6674 <td><span class="nowrap">${Father}</span> x <span class="nowrap">${MothersFather}</span></td>
6675 </tr>
6676 </script>
6677 @SnippetEnd("JavascriptsBottom")
6678 </div>
6679 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
6680
6681
6682 <div class="horse-detail-item hidden" id="horse-detail-item-videos" data-content="tab_videos">
6683 <div id="video-container">
6684
6685 @foreach (Kwpn.Models.Jump.VideoResponse video in collection)
6686 {
6687 <div class="row">
6688 <div class="col-xs-12 col-md-7">
6689
6690 @if (!string.IsNullOrEmpty(video.Title))
6691 {
6692 <h3>@video.Title</h3>
6693 }
6694
6695 <div class="embed-responsive embed-responsive-16by9">
6696 <iframe data-src="@video.EmbedUrl" class="embed-responsive-item" allowfullscreen></iframe>
6697 <div onclick="(function (elem) {const iframe = $(elem).prev('iframe');iframe.attr('src', iframe.attr('data-src'));$(elem).remove();})(this);">
6698 <img src="@Kwpn.Core.Helpers.VideoHelper.ValidateThumbnail(video.Thumbnail)" class="embed-responsive-item" />
6699 <i class="play-button"></i>
6700 </div>
6701 </div>
6702 <div class="videoProperties">
6703 <small>
6704
6705 @if (video.Duration != null && (int)video.Duration > 0)
6706 {
6707 <i>@Kwpn.Core.Helpers.TimeHelper.ConvertDuration((int)video.Duration)</i><br />
6708 }
6709
6710 </small>
6711 </div>
6712 <br />
6713 </div>
6714 </div>
6715 }
6716
6717
6718
6719 </div>
6720 </div>
6721
6722 // SEO VIRTUAL PAGE VIEW LOGGING: GENERALINFO
6723 <Text>
6724 <script>
6725 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_tab_general", "general-info").UrlEncode()).ToLower()");
6726 </script>
6727 </Text>
6728
6729 }
6730 </article>
6731 </div>
6732 <div class="row">
6733 <div class="col-xs-12 col-md-10 page-content print-disclaimer">
6734 @Translate("Print-Disclaimer", "<strong>KWPN Database - © 2017 - Content: KWPN</strong><br /><p>Niets uit de KWPN Database mag zonder uitdrukkelijke toestemming van het KWPN worden overgenomen, vermenigvuldigd en/of openbaar gemaakt, of gebruikt voor herberekening of onderzoek op welke wijze dan ook, met uitzondering van hetgeen in de Auteurswet bepaald is met betrekking tot het reprorecht.</p><p>Het KWPN aanvaardt geen aansprakelijkheid voor schade van welke aard dan ook, die het gevolg is van handelingen en/of beslissingen gebaseerd op informatie van deze site. De door het KWPN verstrekte informatie en berekende fokwaarden op deze website zijn eigendom van het KWPN. De informatie en de fokwaarden zijn bedoeld als voorlichtingsmateriaal en geadviseerd wordt om deze te gebruiken als één van de hulpmiddelen voor selectiedoeleinden. De onderliggende gegevens zijn verzameld in en/of ten behoeve van de KWPN-populatie en de fokwaarden die hieruit zijn voortgekomen zijn van toepassing op de KWPN-populatie. Het KWPN heeft uiterste zorgvuldigheid betracht bij de totstandkoming van de gepresenteerde informatie. De berekeningen hebben plaatsgevonden op basis van de beschikbare kennis van de populatiegenetica en de regels van uitvoering zijn vastgelegd in de reglementen en/of besluiten van bevoegde organen van het KWPN.</p>")
6735 </div>
6736 </div>
6737 </div>
6738 </div>
6739 </div>
6740
6741 if (isMyHorse)
6742 {
6743 <div class="break-grid content-container hidden" id="refreshcontainer">
6744 <div class="break-grid-background">
6745 <div class="in-grid">
6746 <div class="row">
6747 <div class="col-xs-12 col-md-7">
6748 <i class='fa fa-refresh fa-spin fa-3x fa-fw'></i><span class="reloading-text">@Translate("HorseDetailsReloading", "One moment please. We are fetching the horse data from our back-end system.")</span>
6749 </div>
6750 </div>
6751 </div>
6752 </div>
6753 </div>
6754 }
6755
6756 <script>
6757
6758 // We only want the menu interaction on Desktop, so we disable it on mobile screens
6759 // the breakpoint is 991 px.
6760 var pageId = '@Dynamicweb.Frontend.PageView.Current().Page.ID';
6761 var _mx = 991;
6762 var screenWidth = window.innerWidth;
6763 checkWidth();
6764
6765 $(window).on('resize', function () {
6766 screenWidth = window.innerWidth
6767 checkWidth();
6768 openAsideOnFirstPagevisit();
6769 });
6770
6771 function enable_menu_slide() {
6772 $(".aside-page").on('click', function () {
6773 $(this).find('.bg_aside').toggleClass("closed")
6774 $(this).find('.bg_aside').toggleClass("open")
6775 });
6776 }
6777
6778 function checkWidth() {
6779 if (screenWidth > _mx) {
6780 enable_menu_slide();
6781 } else {
6782 $(".aside-page").unbind();
6783 }
6784 }
6785
6786 function openAsideOnFirstPagevisit() {
6787 if (sessionStorage.getItem('popState' + pageId) != 'shown' && screenWidth > _mx && screenWidth <= '1346') {
6788 $(".bg_aside").delay(2000).toggleClass("closed open");
6789 sessionStorage.setItem('popState' + pageId, 'shown');
6790 }
6791 }
6792
6793 $(document).ready(function () {
6794
6795 // Open aside menu on first page visit
6796 openAsideOnFirstPagevisit();
6797
6798 // Open and close tabs
6799 $('i.fa-chevron-down').on('click', function () {
6800 $(this).toggleClass('fa-rotate-180');
6801 $(this).parent().next().toggleClass('open_tab');
6802 });
6803
6804 // Handle go back
6805 $(".go-back").click(function (event) {
6806 event.preventDefault();
6807 history.back(1);
6808 });
6809
6810 // Handle breeder click
6811 @if (hasBreeders) {
6812 <text>
6813 $(".breeder-link").off("click").on("click", function () {
6814 var breederPersonCode = $(this).data("personcode");
6815 BreederInfoHelper.InitializeBreeder(breederPersonCode, false);
6816 // SEO VIRTUAL PAGE VIEW LOGGING
6817 SEO.trackPageView("@seoPage.ToLower()/@Translate("SEO_TrackPageviewPage_Database_tab_breeders_info", "breeders-info").UrlEncode()");
6818 });
6819 $(".registered-link").off("click").on("click", function () {
6820 var registeredPersonCode = $(this).data("personcode");
6821 BreederInfoHelper.InitializeBreeder(registeredPersonCode, true);
6822 // SEO VIRTUAL PAGE VIEW LOGGING
6823 SEO.trackPageView("@seoPage.ToLower()/@Translate("SEO_TrackPageviewPage_Database_tab_registered_info", "registered-info").UrlEncode()");
6824 });
6825 </text>
6826 }
6827 });
6828 </script>
6829 }
6830 }
6831 }