KWPN Horses for Sale
KWPN Horses for Sale
Kies uw advertentie type
KWPN Horses for Sale
KWPN Horses for Sale
Advertentie plaatsen
Op deze pagina kunt u de advertentie maken. Door onderstaande contactgegevens in te vullen kunnen geïnteresseerden contact met u opnemen. De bemiddeling zélf gaat niet via KWPN Marktplaats. De fokker/eigenaar en ruiter of amazone moeten zelf contact met elkaar opnemen om een samenwerking te realiseren.
Error executing template "Designs/Kwpn/DataManagement/Forms/Form/FormMarketplaceSearch.cshtml" System.ArgumentNullException: Value cannot be null. Parameter name: source at System.Linq.OrderedEnumerable`2..ctor(IEnumerable`1 source, Func`2 keySelector, IComparer`1 comparer, Boolean descending) at System.Linq.Enumerable.OrderBy[TSource,TKey](IEnumerable`1 source, Func`2 keySelector) at CompiledRazorTemplates.Dynamic.RazorEngine_2f16f015f5574d33a1f4f5c659ff7cbc.Execute() in D:\inetpub\wwwroot\www.kwpn.nl\Files\Templates\Designs\Kwpn\DataManagement\Forms\Form\FormMarketplaceSearch.cshtml:line 256 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 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using Kwpn.Repository.Repositories 3 @using Dynamicweb.Ecommerce.Products 4 @using Kwpn.Models.Constants 5 @using Kwpn.Models.Enumerations 6 @using Kwpn.Repository.Helpers 7 @{ 8 var currentDateTime = DateTime.Now; 9 var productService = new ProductService(); 10 var ecomLanguageId = Dynamicweb.Frontend.PageView.Current().Area.EcomLanguageId; 11 var productMarketplaceHorseSearch = productService.GetProductByNumber(StringConstants.ProductNumbers.MarketplaceHorseSearch, ecomLanguageId); 12 13 // breeding directions 14 List<Tuple<string, string>> categories = new List<Tuple<string, string>>(); 15 categories.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplaceCategory.Allrounder.ToString("G"), Translate("MarketplaceCategory_Allrounder"))); 16 categories.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplaceCategory.DressageHorse.ToString("G"), Translate("MarketplaceCategory_DressageHorse"))); 17 categories.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplaceCategory.EventingHorse.ToString("G"), Translate("MarketplaceCategory_EventingHorse"))); 18 categories.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplaceCategory.BreedingMare.ToString("G"), Translate("MarketplaceCategory_BreedingMare"))); 19 categories.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplaceCategory.GelderHorse.ToString("G"), Translate("MarketplaceCategory_Gelderlander"))); 20 categories.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplaceCategory.Hunter.ToString("G"), Translate("MarketplaceCategory_Hunter"))); 21 categories.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplaceCategory.DrivingHorse.ToString("G"), Translate("MarketplaceCategory_DrivingHorse"))); 22 categories.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplaceCategory.RecreationHorse.ToString("G"), Translate("MarketplaceCategory_RecreationHorse"))); 23 categories.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplaceCategory.JumperHorse.ToString("G"), Translate("MarketplaceCategory_JumpingHorse"))); 24 categories.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplaceCategory.HarnessHorse.ToString("G"), Translate("MarketplaceCategory_HarnessHorse"))); 25 categories = categories.OrderBy(tuple => tuple.Item2).ToList(); 26 27 // purposes 28 List<Tuple<string, string>> purposes = new List<Tuple<string, string>>(); 29 purposes.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplacePurpose.Breeding.ToString("G"), Translate("MarketplacePurpose_Breeding"))); 30 purposes.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplacePurpose.Sport.ToString("G"), Translate("MarketplacePurpose_Sport"))); 31 purposes.Add(new Tuple<string, string>(Kwpn.Models.Enumerations.MarketplacePurpose.Recreation.ToString("G"), Translate("MarketplacePurpose_Recreation"))); 32 33 // user data 34 string membershipNumber = "", 35 userId = "", 36 userName = "", 37 userAddress = "", 38 userHouseNr = "", 39 userPostalCode = "", 40 userCity = "", 41 userPhone = "", 42 userEmail = "", 43 userCountryCode = ""; 44 45 if (Kwpn.Repository.Helpers.LoginHelper.IsFullMember()) 46 { 47 var dwUser = KwpnUsers.CurrentUser().DwUser; 48 membershipNumber = dwUser.UserName; 49 userId = dwUser.ID.ToString(); 50 userName = dwUser.Name; 51 userAddress = dwUser.Address; 52 userHouseNr = dwUser.HouseNumber; 53 userPostalCode = dwUser.Zip; 54 userCity = dwUser.City; 55 userPhone = dwUser.Phone; 56 userEmail = dwUser.Email; 57 userCountryCode = dwUser.CountryCode; 58 if (string.IsNullOrWhiteSpace(userCountryCode)) 59 { 60 userCountryCode = dwUser.Country; 61 } 62 } 63 64 List<string> dutchProvinces = new List<string>(); 65 dutchProvinces.Add(Translate("DutchProvince_Groningen")); 66 dutchProvinces.Add(Translate("DutchProvince_Friesland")); 67 dutchProvinces.Add(Translate("DutchProvince_Drenthe")); 68 dutchProvinces.Add(Translate("DutchProvince_Overijssel")); 69 dutchProvinces.Add(Translate("DutchProvince_Gelderland")); 70 dutchProvinces.Add(Translate("DutchProvince_Utrecht")); 71 dutchProvinces.Add(Translate("DutchProvince_NoordHolland")); 72 dutchProvinces.Add(Translate("DutchProvince_ZuidHolland")); 73 dutchProvinces.Add(Translate("DutchProvince_Flevoland")); 74 dutchProvinces.Add(Translate("DutchProvince_Zeeland")); 75 dutchProvinces.Add(Translate("DutchProvince_NoordBrabant")); 76 dutchProvinces.Add(Translate("DutchProvince_Limburg")); 77 78 // country data 79 var countries = Kwpn.Repository.EquisApi.Countries.GetCountries(); 80 81 var introAdvertAdd = (Kwpn.Repository.Helpers.LoginHelper.CurrentUserIsLoggedIn() ? Translate("Marketplace_AddAdvertIntro_Form_HorseSearch_Member", "") : Translate("Marketplace_AddAdvertIntro_Form_HorseSearch_Guest", "")).ToParagraph(); 82 if (!string.IsNullOrWhiteSpace(introAdvertAdd)) 83 { 84 <div class="row"> 85 <div class="col-xs-12"> 86 @introAdvertAdd 87 </div> 88 </div> 89 } 90 <div class="w-section inverse"> 91 <div class="w-box sign-in-wr bg-5"> 92 <div id="FormMarketplaceSearch" class="form-body"> 93 94 @GetValue("Form.Start") 95 @GetValue("Form.Hidden") 96 @*Hidden fields are filled with jquery*@ 97 98 @*ADVERT TITLE*@ 99 <div class="row"> 100 <div class="col-xs-12"> 101 <span id="title-chars-text" class="pull-right"><span id="title-chars"></span>/100</span><h3>1. @Translate("Marketplace_WriteTitle", "Write title")<i class="fa fa-asterisk"></i></h3> 102 <div class="form-group"> 103 <div class="form-inline"> 104 <input type="text" class="form-control hide-hints" id="Kwpn_Form_Marketplace_Search_Title" name="Kwpn_Form_Marketplace_Search_Title" maxlength="100" value="" style="width: 100%;" required /> 105 </div> 106 </div> 107 </div> 108 </div> 109 110 @*HORSE AGE CATEORY*@ 111 <div class="row"> 112 <div class="col-xs-12"> 113 <h3>2. @Translate("Marketplace_WriteAgeCategory", "Age category")<i class="fa fa-asterisk"></i></h3> 114 <div class="form-group"> 115 <div class="form-inline"> 116 <select class="form-control" id="Kwpn_Form_Marketplace_Search_AgeCategory" name="Kwpn_Form_Marketplace_Search_AgeCategory" required> 117 <option value="">@Translate("Select")</option> 118 <option value="0">@Translate("Marketplace_WriteAgeCategory_0", "0")</option> 119 <option value="1-3">@Translate("Marketplace_WriteAgeCategory_1-3", "1-3")</option> 120 <option value="4-7">@Translate("Marketplace_WriteAgeCategory_4-7", "4-7")</option> 121 <option value="8">@Translate("Marketplace_WriteAgeCategory_8+", "8 and older")</option> 122 </select> 123 </div> 124 </div> 125 </div> 126 </div> 127 128 @*HORSE BREEDING DIRECTION*@ 129 <div class="row"> 130 <div class="col-xs-12"> 131 <h3>3. @Translate("Marketplace_WriteBreedingDirection", "Breeding direction")<i class="fa fa-asterisk"></i></h3> 132 <div class="form-group"> 133 <div class="form-inline"> 134 <select class="form-control" id="Kwpn_Form_Marketplace_Search_BreedingDirection" name="Kwpn_Form_Marketplace_Search_BreedingDirection" required> 135 <option value="">@Translate("Select")</option> 136 @foreach (var category in categories) 137 { 138 <option value="@category.Item1">@category.Item2</option> 139 } 140 </select> 141 </div> 142 </div> 143 </div> 144 </div> 145 146 @*HORSE PURPOSE*@ 147 <div class="row"> 148 <div class="col-xs-12"> 149 <h3>4. @Translate("Marketplace_WritePurpose", "Purpose")<i class="fa fa-asterisk"></i></h3> 150 <div class="form-group"> 151 <div class="form-inline"> 152 <select class="form-control" id="Kwpn_Form_Marketplace_Search_Purpose" name="Kwpn_Form_Marketplace_Search_Purpose" required> 153 <option value="">@Translate("Select")</option> 154 @foreach (var purpose in purposes) 155 { 156 <option value="@purpose.Item1">@purpose.Item2</option> 157 } 158 </select> 159 </div> 160 </div> 161 </div> 162 </div> 163 164 @*ADVERT TEXT*@ 165 <div class="row"> 166 <div class="col-xs-12"> 167 <br /> 168 <span id="advert-chars-text" class="pull-right"><span id="advert-chars"></span>/1000</span><h3>5. @Translate("Marketplace_WriteAdvert", "Write advert")<i class="fa fa-asterisk"></i></h3> 169 <div class="form-group"> 170 171 <div class="form-inline"> 172 <textarea name="Kwpn_Form_Marketplace_Search_Advert" id="Kwpn_Form_Marketplace_Search_Advert" maxlength="1000" style="width: 100%; min-height: 200px;" class="form-control" required></textarea> 173 <br /> 174 175 </div> 176 </div> 177 </div> 178 </div> 179 180 @*PHOTOS*@ 181 <div class="row"> 182 <div class="col-xs-12"> 183 <br /> 184 185 <h3>6. @Translate("Marketplace_Upload8Photos", "Upload up to 8 photos")</h3> 186 187 <div class="form-group"> 188 189 <div class="form-inline col-xs-12 col-sm-8 fileSelect"> 190 <i class="fa fa-chevron-right" aria-hidden="true"></i> 191 <label class="control-label btn btn-default btn-file" for="Kwpn_Form_Marketplace_Search_Photo1" data-default="@Translate("CoverPhoto", "Cover photo")">@Translate("CoverPhoto", "Cover photo")<i class="fa fa-asterisk"></i></label> 192 <input class="form-control" id="Kwpn_Form_Marketplace_Search_Photo1" name="Kwpn_Form_Marketplace_Search_Photo1" type="file" accept="image/*" required> 193 <br /><span><small>@Translate("CoverPhotoWarning", "Choose a landscape photo here")</small></span> 194 </div> 195 196 @for (int i = 1; i <= 7; i++) 197 { 198 var photoId = string.Format("Kwpn_Form_Marketplace_Search_Photo{0}", i + 1); 199 var photoLabel = string.Format(Translate("ExtraPhoto{0}", "Extra photo {0}"), i); 200 <div class="form-inline col-xs-12 col-sm-8 fileSelect"> 201 <i class="fa fa-chevron-right" aria-hidden="true"></i> 202 <label class="control-label btn btn-default btn-file" for="@photoId">@photoLabel</label> 203 <input class="form-control" id="@photoId" name="@photoId" type="file" accept="image/*"> 204 </div> 205 } 206 </div> 207 </div> 208 </div> 209 210 @*VIDEOS*@ 211 <div class="row"> 212 <div class="col-xs-12"> 213 <br /> 214 215 <h3>7. @Translate("Marketplace_Link3Videos", "Link up to 3 videos")</h3> 216 217 <p>@Translate("Marketplace_Link3VideosIntro", "You can only add youtube video links. Copy the URL out of your browser address bar and past it here.<br /><small>It should be formatted like <i class='small'>https://www.youtube.com/watch?v=0000000000</i> or <i class='small'>https://youtu.be/0000000000</i></small>")</p> 218 219 <div class="form-group"> 220 @for (int i = 1; i <= 3; i++) 221 { 222 var videoId = string.Format("Kwpn_Form_Marketplace_Search_Video{0}", i); 223 var videoLabel = string.Format(Translate("Video{0}", "Youtube video {0}"), i); 224 <div class="form-inline"> 225 <label class="control-label col-sm-4" for="@videoId">@videoLabel</label> 226 <input type="text" class="form-control hide-hints" id="@videoId" name="@videoId" value="" placeholder="https://youtu.be/0000000000" /> 227 </div> 228 } 229 </div> 230 </div> 231 </div> 232 233 @*CONTACT DATA*@ 234 <div class="row"> 235 <div class="col-xs-12"> 236 <br /> 237 <h3>8. @Translate("ContactData", "Contact data")</h3> 238 <p>@Translate("ContactDataExtraInfo", "This data will be published in the advert")</p> 239 <div class="form-group"> 240 <div class="form-inline"> 241 <label class="control-label col-sm-4" for="Kwpn_Form_Marketplace_Search_Name">@Translate("InitialsAndName")</label> 242 <input type="text" class="form-control hide-hints" id="Kwpn_Form_Marketplace_Search_Name" name="Kwpn_Form_Marketplace_Search_Name" value="@userName" required /> 243 </div> 244 <div class="form-inline"> 245 <label class="control-label col-sm-4" for="Kwpn_Form_Marketplace_Search_Telephone">@Translate("Phone")</label> 246 <input type="text" class="form-control hide-hints" id="Kwpn_Form_Marketplace_Search_Telephone" name="Kwpn_Form_Marketplace_Search_Telephone" value="@userPhone" /> 247 </div> 248 <div class="form-inline"> 249 <label class="control-label col-sm-4" for="Kwpn_Form_Marketplace_Search_Email">@Translate("Email")</label> 250 <input type="text" class="form-control hide-hints" id="Kwpn_Form_Marketplace_Search_Email" name="Kwpn_Form_Marketplace_Search_Email" value="@userEmail" required /> 251 </div> 252 <div class="form-inline"> 253 <label class="control-label col-sm-4" for="Kwpn_Form_Marketplace_Search_Country">@Translate("Country")</label> 254 <select class="form-control capitalize" id="Kwpn_Form_Marketplace_Search_Country" name="Kwpn_Form_Marketplace_Search_Country" required> 255 <option value="" data-code="" @(string.IsNullOrWhiteSpace(userCountryCode) ? "selected" : "")>@Translate("Select")</option> 256 @foreach (var country in countries.OrderBy(c => c.CountryName)) 257 { 258 <option value="@country.CountryName" data-code="@country.CountryCode" class="capitalize" @(userCountryCode.Equals(country.CountryCode, StringComparison.InvariantCultureIgnoreCase) ? "selected" : "")>@country.CountryName.ToLower()</option> 259 } 260 </select> 261 </div> 262 <div class="form-inline"> 263 <label class="control-label col-sm-4" for="Kwpn_Form_Marketplace_Search_Province">@Translate("Province")</label> 264 <select class="form-control" id="Kwpn_Form_Marketplace_Search_Province" name="Kwpn_Form_Marketplace_Search_Province" disabled> 265 <option value="">@Translate("Select")</option> 266 @foreach (var province in dutchProvinces.OrderBy(p => p)) 267 { 268 <option value="@province" class="capitalize">@province</option> 269 } 270 </select> 271 </div> 272 </div> 273 </div> 274 </div> 275 276 <button class="hidden" type="submit" id="form-submitter">@Translate("Pay")</button> 277 <div class="row"> 278 <br /> 279 <div class="col-xs-12 form-order-overview"> 280 <h2>@Translate("OrderOverview", "Order overview")</h2> 281 <table> 282 <colgroup> 283 <col width="30" /> 284 <col /> 285 </colgroup> 286 <tr class="head"> 287 <th><i class="fa fa-info"></i></th> 288 <th>@Translate("Product", "Product")</th> 289 </tr> 290 <tr> 291 <td> </td> 292 <td><span class="product-name"></span></td> 293 </tr> 294 <tr class="head paymentInfo hidden"> 295 <th><i class="fa fa-cc"></i></th> 296 <th>@Translate("PaymentMethod", "Payment method")</th> 297 </tr> 298 <tr class="paymentInfo hidden"> 299 <td> </td> 300 <td>@Translate("PaymentMethod_Text_Online", "Pay directly online")</td> 301 </tr> 302 <tr class="head"> 303 <th><i class="fa fa-eur"></i></th> 304 <th>@Translate("Price", "Price")</th> 305 </tr> 306 <tr> 307 <td> </td> 308 <td><span class="product-price"></span> (@Translate("VatIncluded", "VAT included"))</td> 309 </tr> 310 <tr class="conditions"> 311 <td><input type="checkbox" class="form-control agreement-checkbox" id="Kwpn_Form_Marketplace_Search_AgreedWithConditions" name="Kwpn_Form_Marketplace_Search_AgreedWithConditions" required /></td> 312 <td><label for="Kwpn_Form_Marketplace_Search_AgreedWithConditions">@FormHelper.GetAgreeWithConditionsText(Kwpn.Models.Enumerations.FormType.MarketPlaceSearch)</label></td> 313 </tr> 314 <tr class="conditions"> 315 <td><input type="checkbox" class="form-control agreement-checkbox" id="Kwpn_Form_Marketplace_Search_AgreedWithPrivacy" name="Kwpn_Form_Marketplace_Search_AgreedWithPrivacy" required /></td> 316 <td><label for="Kwpn_Form_Marketplace_Search_AgreedWithPrivacy">@Translate("AgreeWithPrivacyStatement", "I agree with the conditions stated in the privacy statement page")</label></td> 317 </tr> 318 <tr> 319 <td colspan="2"><button class="submitBtn" type="button" defaultText="@Translate("Pay").JsEncode()">@Translate("Pay")</button></td> 320 </tr> 321 </table> 322 </div> 323 </div> 324 @GetValue("Form.End") 325 </div> 326 </div> 327 </div> 328 @SnippetStart("JavascriptsBottom") 329 <script> 330 // check if form is valid 331 function FormIsHtml5Valid() { 332 return $("#FormMarketplaceSearch .form-control:invalid").length == 0; 333 } 334 335 $(document).ready(function () { 336 337 FillHiddenFields(); 338 339 //place asterisks after required labels 340 $('input,textarea,select') 341 .filter('[required]:visible') 342 .closest(".form-inline") 343 .children("label") 344 .append("<i class=\"fa fa-asterisk\" aria-hidden=\"true\" style=\"position:absolute\"></i>"); 345 346 // force orange borders 347 $(".hide-hints").change(function () { 348 $(this).removeClass("hide-hints"); 349 }); 350 351 // form submit 352 $("#form-submitter").click(function () { 353 354 var coverImageIsFilled = ($("#Kwpn_Form_Marketplace_Search_Photo1").val() != ""); 355 if (!coverImageIsFilled) { 356 FormHelper.SubmitButtonReset(".submitBtn"); 357 alert("@Translate("SelectAlbumCover", "You must select an image as album cover.")"); 358 $("#Kwpn_Form_Marketplace_Search_Photo1").focus(); 359 return false; 360 } 361 362 for (var i = 1; i <= 8; i++) { 363 var filename = $("#Kwpn_Form_Marketplace_Search_Photo" + i).val(); 364 if (filename.trim()) { 365 // Use a regular expression to trim everything before final dot 366 var extension = filename.replace(/^.*\./, ''); 367 368 // If there is no dot anywhere in filename, we would have extension == filename, 369 // so we account for this possibility now 370 if (extension == filename) { 371 extension = ''; 372 } else { 373 // if there is an extension, we convert to lower case 374 // (N.B. this conversion will not effect the value of the extension 375 // on the file upload.) 376 extension = extension.toLowerCase(); 377 } 378 379 switch (extension) { 380 case 'jpg': 381 case 'jpeg': 382 case 'png': 383 break; 384 385 default: 386 FormHelper.SubmitButtonReset(".submitBtn"); 387 alert("@Translate("MarketPlace_ExtensionAlert", "Only JPG/JPEG/PNG images are allowed to be uploaded.")"); 388 return false; 389 } 390 } 391 } 392 393 $(".hide-hints").removeClass("hide-hints"); 394 395 if (!FormIsHtml5Valid()) { 396 FormHelper.SubmitButtonReset(".submitBtn"); 397 } 398 399 }); 400 401 // submit button click 402 $(".submitBtn").off("click").on("click", function () { 403 FormHelper.SubmitButtonClick(".submitBtn"); 404 $("#form-submitter").click(); 405 }); 406 407 // try to set country default to user country 408 if ("@userCountryCode" != "") { 409 var defaultValue = $("#Kwpn_Form_Marketplace_Search_Country").find("[data-code=@userCountryCode]").val(); 410 $("#Kwpn_Form_Marketplace_Search_Country").val(defaultValue); 411 $("#Kwpn_Form_Marketplace_Search_CountryCode").val("@userCountryCode"); 412 if ("@userCountryCode" == "NL") { 413 $("#Kwpn_Form_Marketplace_Search_Province").prop('required', true); 414 $("#Kwpn_Form_Marketplace_Search_Province").prop('disabled', false); 415 } else { 416 $("#Kwpn_Form_Marketplace_Search_Province").val(""); 417 $("#Kwpn_Form_Marketplace_Search_Province").prop('required', false); 418 $("#Kwpn_Form_Marketplace_Search_Province").prop('disabled', true); 419 } 420 } 421 422 $("#Kwpn_Form_Marketplace_Search_Country").change(function () { 423 var selectedCountryCode = $("#Kwpn_Form_Marketplace_Search_Country").find(':selected').attr("data-code"); 424 $("#Kwpn_Form_Marketplace_Search_CountryCode").val(selectedCountryCode); 425 if (selectedCountryCode.toUpperCase() == "NL") { 426 $("#Kwpn_Form_Marketplace_Search_Province").prop('required', true); 427 $("#Kwpn_Form_Marketplace_Search_Province").prop('disabled', false); 428 } else { 429 $("#Kwpn_Form_Marketplace_Search_Province").val(""); 430 $("#Kwpn_Form_Marketplace_Search_Province").prop('required', false); 431 $("#Kwpn_Form_Marketplace_Search_Province").prop('disabled', true); 432 } 433 }); 434 435 $("#Kwpn_Form_Marketplace_Search_ProductName").change(function () { 436 ReCalculate(); 437 }); 438 439 //title length 440 $("#Kwpn_Form_Marketplace_Search_Title").keyup(function () { 441 CheckTitleLength(); 442 }); 443 444 //advert length 445 $("#Kwpn_Form_Marketplace_Search_Advert").keyup(function () { 446 CheckAdvertLength(); 447 }); 448 449 CheckTitleLength(); 450 CheckAdvertLength(); 451 ReCalculate(); 452 453 function CheckTitleLength() { 454 var maxTitleLength = 100; 455 var length = $("#Kwpn_Form_Marketplace_Search_Title").val().length; 456 var length = maxTitleLength - length; 457 $("#title-chars").text(length); 458 } 459 460 function CheckAdvertLength() { 461 var maxAdvertLength = 1000; 462 var length = $("#Kwpn_Form_Marketplace_Search_Advert").val().length; 463 var length = maxAdvertLength - length; 464 $("#advert-chars").text(length); 465 } 466 467 function FillHiddenFields() { 468 // set hidden field values 469 $("#Kwpn_Form_Marketplace_Search_AccessUserID").val("@userId"); 470 $("#Kwpn_Form_Marketplace_Search_AccessUserUserName").val("@membershipNumber"); 471 $("#Kwpn_Form_Marketplace_Search_SubmitDateTime").val("@currentDateTime"); 472 $("#Kwpn_Form_Marketplace_Search_OrderStatus").val("@FormOrderStatus.FormSubmitted.ToString()"); 473 $("#Kwpn_Form_Marketplace_Search_OrderStatusLastChanged").val("@currentDateTime"); 474 $("#Kwpn_Form_Marketplace_Search_Culture").val("@GetGlobalValue("Global:Area.LongLang")"); 475 } 476 477 478 479 }); 480 481 function ReCalculate() { 482 $("#Kwpn_Form_Marketplace_SellHorse_ProductPrice").val("@ProductHelper.GetProductPrice(productMarketplaceHorseSearch)"); 483 $(".product-name").html("@productMarketplaceHorseSearch.Name"); 484 $(".product-price").html("@ProductHelper.FormatPrice(ProductHelper.GetProductPrice(productMarketplaceHorseSearch))"); 485 if (@ProductHelper.GetProductPrice(productMarketplaceHorseSearch) > 0) { 486 $(".paymentInfo").removeClass("hidden"); 487 } else { 488 $(".paymentInfo").addClass("hidden"); 489 } 490 } 491 492 $(function ($) { 493 var $inputs = $('input[name=Kwpn_Form_Marketplace_Search_Telephone],input[name=Kwpn_Form_Marketplace_Search_Email]'); 494 $inputs.on('input', function () { 495 // Sets the required property of the other input to false if this input is not empty. 496 $inputs.not(this).prop('required', !$(this).val().length); 497 }); 498 }); 499 500 // Replace labeltext file input with filename 501 $(document) 502 .on('change', 503 ':file', 504 function () { 505 var input = $(this); 506 var numFiles = input.get(0).files ? input.get(0).files.length : 1; 507 var label = input.val().replace(/\\/g, '/').replace(/.*\//, ''); 508 input.trigger('fileselect', [numFiles, label]); 509 $(this).closest(".form-inline").children("label").html(label); 510 }); 511 512 513 </script> 514 @SnippetEnd("JavascriptsBottom") 515 } 516