1(function ($) { 2 $(function () { 3 var lang = null, forms = [], baseUrl = ""; 4 $.initJSNForm = function (formname) { 5 6 var self = this; 7 8 if ($(formname).width() <= 480 && $(formname).width() > 0) { 9 $(formname).addClass("jsn-narrow"); 10 } 11 $(".form-captcha").hide(); 12 13 var sessionLifeTime = $(formname).find('input[name$=form_post_session_lifetime]').val(); 14 var pathRoot = $(formname).find('input[name$=form_post_path_root]').val(); 15 setInterval(function () { 16 JSNUFKeepSessionAlive(pathRoot) 17 }, parseFloat(sessionLifeTime)); 18 19 //refresh captcha 20 $(formname).find(".jsn-refresh-captcha").click(function () { 21 var $this = $(this); 22 var token = $this.attr('data-token'); 23 var namespace = $this.attr('data-namespace'); 24 $.ajax({ 25 type: "GET", 26 url: baseUrl + "/index.php?option=com_uniform&view=form&task=form.refreshCaptcha&namespace=" + namespace + '&' + token + '=1', 27 success: function (src) { 28 $this.parent().find('img.jsn-captcha-image').attr('src', src); 29 return; 30 } 31 }); 32 }); 33 34 function calculateTotal() { 35 var number = 0, 36 checkboxes = 0, 37 dropdown = 0, 38 list = 0, 39 choices = 0, 40 moneyPayment = 0; 41 42 var numberElements = $(formname).find("input.number"), 43 numberDecimal = $(formname).find("input.number-decimal"); 44 numberElements.each(function () { 45 if (!$(this).closest('.control-group').hasClass('hide') || $(this).closest('.control-group').hasClass('useField')) { 46 if ($(this).hasClass('payment-active')) { 47 if ($(this).val() == '') { 48 if (numberDecimal) { 49 number += parseFloat(0 + '.' + numberDecimal.val()); 50 } 51 else { 52 number += 0; 53 } 54 } 55 else { 56 if (numberDecimal) { 57 number += parseFloat($(this).val() + '.' + numberDecimal.val()); 58 } 59 else { 60 number += parseFloat($(this).val()); 61 } 62 } 63 } 64 } 65 }); 66 67 var currencyElement = $(formname).find("input.input-medium.currency"); 68 var currency = 0; 69 currencyElement.each(function () { 70 if (!$(this).closest('.control-group').hasClass('hide') || $(this).closest('.control-group').hasClass('useField')) { 71 if ($(this).hasClass('payment-active')) { 72 if ($(this).val() == '') { 73 currency += 0; 74 } 75 else { 76 currency += parseFloat($(this).val()); 77 } 78 } 79 } 80 }); 81 82 var currencyCent = $(formname).find(".currency-cents input.input-mini.currency"); 83 var cents = 0; 84 currencyCent.each(function () { 85 if (!$(this).closest('.control-group').hasClass('hide') || $(this).closest('.control-group').hasClass('useField')) { 86 if ($(this).hasClass('payment-active')) { 87 if ($(this).val() == '') { 88 cents += 0; 89 } 90 else { 91 cents += parseFloat($(this).val()); 92 } 93 } 94 } 95 }); 96 if (cents >= 100) { 97 var hundred = (cents / 100), hundredUnit = (100 * hundred); 98 cents = parseFloat(hundred + '.' + (cents - hundredUnit)); 99 } 100 else { 101 cents = parseFloat(0 + '.' + cents); 102 } 103 moneyPayment = parseFloat(currency + cents); 104 105 var checkboxesElements = $(formname).find("div.checkboxes"); 106 checkboxesElements.each(function () { 107 if (!$(this).closest('.control-group').hasClass('hide')) { 108 if ($(this).hasClass('payment-active')) { 109 $(this).find("input:checked").each(function () { 110 if ($(this).prop('checked')) { 111 checkboxes += parseFloat($(this).attr('data-jsnUfPrice') * $(this).attr('data-jsnUfQty')); 112 } 113 }); 114 } 115 } 116 }); 117 var dropdownElements = $(formname).find("select.dropdown"); 118 119 /*if ($("select.jsn-uf-select2-dropdown").length > 0) { 120 121 $("select.jsn-uf-select2-dropdown").select2(); 122 $("select.jsn-uf-select2-dropdown").css({'position':'absolute'}) 123 }*/ 124 dropdownElements.each(function () { 125 if (!$(this).closest('.control-group').hasClass('hide')) { 126 if ($(this).hasClass('payment-active')) { 127 if (typeof $(this).find('option:selected').attr('data-jsnUfPrice') != 'undefined') { 128 if ($(this).find('option:selected').attr('data-jsnUfPrice') == '') { 129 dropdown += 0; 130 } 131 else { 132 dropdown += parseFloat($(this).find('option:selected').attr('data-jsnUfPrice') * $(this).find('option:selected').attr('data-jsnUfQty')); 133 } 134 } 135 } 136 } 137 }); 138 var choicesElements = $(formname).find("div.choices"); 139 choicesElements.each(function () { 140 if (!$(this).closest('.control-group').hasClass('hide')) { 141 if ($(this).hasClass('payment-active')) {
142 $(this).find('input:checked').each(function () { 143 choices += parseFloat($(this).attr('data-jsnUfPrice') * $(this).attr('data-jsnUfQty')); 144 }); 145 } 146 else { 147 choices += 0; 148 } 149 } 150 }); 151 var listElements = $(formname).find("select.list"); 152 listElements.each(function () { 153 if (!$(this).closest('.control-group').hasClass('hide')) { 154 if ($(this).hasClass('payment-active')) { 155 $(this).find('option:selected').each(function () { 156 list += parseFloat($(this).attr('data-jsnUfPrice') * $(this).attr('data-jsnUfQty')); 157 }); 158 } 159 } 160 }); 161 var total = [number, moneyPayment, choices, checkboxes, dropdown, list].reduce(function (previousValue, currentValue, index, array) { 162 return previousValue + currentValue; 163 }); 164 165 $(formname).find(".form-payments .total-money").text(total.toFixed(2)); 166 $(formname).find(".form-payments .payment-total-money input#jform_form_payment_money_value").val(total.toFixed(2)); 167 } 168 169 function formActionField() { 170 var id = []; 171 var fieldId = []; 172 $(formname).find('.control-group').each(function () { 173 if ($(this).hasClass('hide')) { 174 } 175 else { 176 fieldId = $(this).attr('data-id'); 177 fieldId = parseFloat(fieldId); 178 } 179 if ($.isNumeric(fieldId)) { 180 id.push(fieldId); 181 } 182 183 }); 184 var val = $.toJSON(id); 185 $(formname).find('input#list_choosen_field').val(val.toString()) 186 } 187 188 if ($('.jsn-uniform .icon-question-sign').length) { 189 $('.jsn-uniform .icon-question-sign').tipsy({ 190 gravity: 'w', 191 fade: true 192 }); 193 } 194 $(formname).find('input,button.btn,textarea,select').focus(function () { 195 var form = $(this).parents('form:first'); 196 $(form).find(".ui-state-highlight").removeClass("ui-state-highlight"); 197 $(this).parents(".control-group").addClass("ui-state-highlight"); 198 self.captcha(form); 199 }).click(function (e) { 200 var form = $(this).parents('form:first'); 201 $(form).find(".ui-state-highlight").removeClass("ui-state-highlight"); 202 $(this).parents(".control-group").addClass("ui-state-highlight"); 203 e.stopPropagation(); 204 }); 205 $(formname).find("input").keypress(function (e) { 206 if (e.which == 13 && $(".jsn-modal-overlay").size() < 1) { 207 if ($(formname).find("button.next").hasClass("hide")) { 208 $(formname).find("button.jsn-form-submit").click(); 209 } else { 210 $(formname).find("button.next").click(); 211 } 212 return false; 213 } 214 }); 215 $(formname).find(" .form-actions .jsn-form-submit").click(function () { 216 $('.jsn-uniform-others').each(function () { 217 $(this).find('.jsn-value-Others').each(function () { 218 $(this).removeAttr('disabled'); 219 }) 220 }) 221 $(formname).submit(); 222 return false; 223 }); 224 225 $(document).click(function () { 226 $(".ui-state-highlight").removeClass("ui-state-highlight"); 227 }); 228 var formDefaultCaptcha = $('.form-captcha')[0]; 229 230 //if ($(formDefaultCaptcha).size()) { 231 //$($(formDefaultCaptcha).parents('form:first').find("input,textarea,select")[0]).focus(); 232 //} 233 var randomizeListGroups = $(formname).find('select.list'); 234 randomizeListGroups.each(function () { 235 if ($(this).hasClass("list-randomize")) { 236 self.randomValueItems(this); 237 } 238 }); 239 var randomizeDropdownGroups = $(formname).find('select.dropdown'); 240 randomizeDropdownGroups.each(function () { 241 var selfDropdown = this; 242 if ($(this).hasClass("dropdown-randomize")) { 243 self.randomValueItems(this); 244 $(this).find("option").each(function () { 245 if ($(this).attr("data-selectdefault") == "true") { 246 $(this).prop("selected", true); 247 } 248 }); 249 $(this).css({'position': 'inherit'}) 250 } 251 $(this).change(function () { 252 if ($(this).val() == "Others" || $(this).val() == "others") { 253 $(selfDropdown).parent().find("textarea.jsn-dropdown-Others").removeClass("hide"); 254 } else { 255 $(selfDropdown).parent().find("textarea.jsn-dropdown-Others").addClass("hide"); 256 } 257 }); 258 }); 259 var randomizeChoiceGroups = $(formname).find('div.choices'); 260 randomizeChoiceGroups.each(function () { 261 var selfChoices = this; 262 if ($(this).hasClass("choices-randomize")) { 263 self.randomValueItems(this); 264 } 265 $(this).find("input[type=radio]").click(function () { 266 if ($(this).val() == "Others" || $(this).val() == "others") { 267 $(selfChoices).find("textarea.jsn-value-Others").removeAttr("disabled"); 268 } else { 269 $(selfChoices).find("textarea.jsn-value-Others").attr("disabled", "true"); 270 } 271 }); 272 }); 273 var randomizeCheckboxGroups = $(formname).find('div.checkboxes'); 274 randomizeCheckboxGroups.each(function () { 275 var selfChexbox = this; 276 if ($(this).hasClass("checkbox-randomize")) { 277 self.randomValueItems(this); 278 } 279 $(this).find(".lbl-allowOther input[type=checkbox]").click(function () { 280 281 282 if ($(this).is(':checked')) { 283 $(selfChexbox).find("textarea.jsn-value-Others").removeAttr("disabled"); 284 } else { 285 $(selfChexbox).find("textarea.jsn-value-Others").attr("disabled", "true"); 286 } 287 }); 288 }); 289 $(formname).find("input.number,input.phone,input.currency").each(function () { 290 $(this).keypress(function (e) { 291 if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) { 292 return false;
293 } 294 }); 295 $(this).attr('onpaste', 'return false'); 296 }); 297 298 $(formname).find("input.number").change(calculateTotal); 299 $(formname).find("input.currency").change(calculateTotal); 300 $(formname).find("select.dropdown").change(calculateTotal); 301 $(formname).find("select.list").change(calculateTotal); 302 $(formname).find("div.checkboxes").change(calculateTotal); 303 $(formname).find("div.choices").change(calculateTotal); 304 $(formname).find("input.number").trigger("change"); 305 306 $(formname).find("div.choices .jsn-column-item input").each(function () { 307 308 if ($(this).is(':checked')) { 309 var idField = $(this).parents(".jsn-columns-container").attr("id"); 310 $(formname).find("div.control-group." + idField).removeAttr("style"); 311 self.getActionField(formname, $(this), idField); 312 } 313 formActionField(); 314 }); 315 316 $(formname).find("div.choices .jsn-column-item input").change(function () { 317 318 if ($(this).is(':checked')) { 319 var idField = $(this).parents(".jsn-columns-container").attr("id"); 320 $(formname).find("div.control-group." + idField).removeAttr("style"); 321 self.getActionField(formname, $(this), idField); 322 } 323 formActionField(); 324 self.removeRedundantMarginLeft(formname); 325 }); 326 327 $(formname).find("div.checkboxes .jsn-column-item input").each(function () { 328 var idField = $(this).parents(".jsn-columns-container").attr("id"); 329 var litmiChoises = $(this).parents(".jsn-columns-container").attr('data-limit') 330 var checkboxesInput = $(formname).find("div.checkboxes#" + idField + " .jsn-column-item input"); 331 var countChecked = $(formname).find("div.checkboxes#" + idField + " .jsn-column-item input:checked"); 332 if (litmiChoises > 0) { 333 if (countChecked.length >= litmiChoises) { 334 $(checkboxesInput).attr("disabled", "disabled"); 335 $(countChecked).removeAttr("disabled"); 336 } 337 else { 338 $(checkboxesInput).removeAttr("disabled"); 339 } 340 } 341 $(formname).find("div.control-group." + idField).removeAttr("style"); 342 $(this).parents(".jsn-columns-container").find("input").each(function () { 343 344 if ($(this).is(':checked')) { 345 self.getActionFieldCheckboxes(formname, $(this), idField); 346 } 347 if (!$(this).is(':checked')) { 348 self.getActionCheckboxesUnchecked(formname, $(this), idField); 349 } 350 }); 351 formActionField(); 352 }); 353 354 $(formname).find("div.checkboxes .jsn-column-item input").change(function () { 355 var idField = $(this).parents(".jsn-columns-container").attr("id"); 356 var litmiChoises = $(this).parents(".jsn-columns-container").attr('data-limit') 357 var checkboxesInput = $(formname).find("div.checkboxes#" + idField + " .jsn-column-item input"); 358 var countChecked = $(formname).find("div.checkboxes#" + idField + " .jsn-column-item input:checked"); 359 if (litmiChoises > 0) { 360 if (countChecked.length >= litmiChoises) { 361 $(checkboxesInput).attr("disabled", "disabled"); 362 $(countChecked).removeAttr("disabled"); 363 } 364 else { 365 $(checkboxesInput).removeAttr("disabled"); 366 } 367 } 368 $(formname).find("div.control-group." + idField).removeAttr("style"); 369 $(this).parents(".jsn-columns-container").find("input").each(function () { 370 371 if ($(this).is(':checked')) { 372 self.getActionFieldCheckboxes(formname, $(this), idField); 373 } 374 if (!$(this).is(':checked')) { 375 self.getActionCheckboxesUnchecked(formname, $(this), idField); 376 } 377 }); 378 formActionField(); 379 self.removeRedundantMarginLeft(formname); 380 }); 381 382 $(formname).find("select.dropdown").each(function () { 383 var idField = $(this).attr("id"); 384 $(formname).find("div.control-group." + idField).removeAttr("style"); 385 self.getActionField(formname, $(this), idField); 386 formActionField(); 387 }); 388 389 if ($("select.jsn-uf-select2-dropdown").length > 0) { 390 391 $("select.jsn-uf-select2-dropdown").select2(); 392 $("select.jsn-uf-select2-dropdown").css({'position': 'absolute'}) 393 } 394 395 $(formname).find("select.dropdown").change(function () { 396 var idField = $(this).attr("id"); 397 398 $(formname).find("div.control-group." + idField).removeAttr("style"); 399 self.getActionField(formname, $(this), idField); 400 formActionField(); 401 self.removeRedundantMarginLeft(formname); 402 }); 403 404 $(formname).find("select.list").change(function () { 405 }); 406 407 $(formname).find("input.limit-required,textarea.limit-required").each(function () { 408 var fieldId = $(this).attr('id'); 409 var settings = $(this).attr('data-limit'); 410 var limitSettings = $.evalJSON(settings); 411 if (limitSettings.limitType == 'Characters') { 412 var newClass = 'characters_' + fieldId; 413 $(this).addClass('characters'); 414 $(this).after( 415 $("<div/>", {"class": "characters-limit", "id": "characters-limit_" + fieldId}).append( 416 $("<div/>", {"class": "pull-right"}).append( 417 $("<span/>", {"class": newClass, "style": "font-weight:bold; color:#bbb"}) 418 ) 419 ) 420 ) 421 } 422 else { 423 var newClass = 'words_' + fieldId; 424 $(this).addClass('words'); 425 $(this).after( 426 $("<div/>", {"class": "words-limit", "id": "words-limit_" + fieldId}).append( 427 $("<div/>", {"class": "pull-right"}).append( 428 $("<span/>", {"class": newClass, "style": "font-weight:bold; color:#bbb"}) 429 ) 430 ) 431 ) 432 } 433 }); 434 435 $(formname).find("input.limit-required,textarea.limit-required").each(function () { 436 var settings = $(this).attr("data-limit"); 437 var limitSettings = $.evalJSON(settings); 438 if (limitSettings) { 439 $(this).keypress(function (e) { 440
441 if (e.which != 27 && e.which != 13 && e.which != 8 && e.which != 118) { 442 if (limitSettings.limitType == "Characters") { 443 var maxLength = parseInt(limitSettings.limitMax, 10); 444 var lengthValue = $(this).val().length + 1; 445 var charLeft = maxLength - lengthValue; 446 if (charLeft >= 0) { 447 var msg = charLeft + ' ' + lang['JSN_UNIFORM_CHARACTERS_LEFT']; 448 var id = $(this).attr('id'); 449 $('.characters_' + id).text(msg); 450 } 451 else { 452 return false; 453 } 454 } 455 456 if (limitSettings.limitType == "Words") { 457 var maxLength = parseInt(limitSettings.limitMax, 10); 458 459 var lengthValue = $.trim($(this).val() + String.fromCharCode(e.which)).split(/[\s]+/); 460 var charLeft = maxLength - lengthValue.length; 461 462 if (charLeft >= 0) { 463 var msg = charLeft + ' ' + lang['JSN_UNIFORM_WORDS_LEFT']; 464 var id = $(this).attr('id'); 465 $('.words_' + id).text(msg); 466 } 467 else { 468 return false; 469 } 470 } 471 } 472 } 473 ); 474 475 try { 476 if (limitSettings.limitType == "Words") { 477 $(this).bind('paste', function (e) { 478 var tmpTextArea = $(this); 479 setTimeout(function(){ tmpTextArea.val($.trim(tmpTextArea.val())); tmpTextArea.trigger('keypress') }, 100); 480 }); 481 } 482 } 483 catch(err) { 484 485 } 486 } 487 }); 488 $(formname).find("input,textarea,select").bind('change', function () { 489 self.checkValidateForm($(this).parents(".control-group"), "detailInput", $(this), "onchange"); 490 }); 491 492 function executeAjaxUploadFile(option) 493 { 494 var iform = $("<form method='POST' enctype='multipart/form-data''></form>"); 495 iform.ajaxForm(option); 496 iform.submit(); 497 } 498 499 $(formname).submit(function () { 500 501 if ($(formname).find('.control-group').hasClass('useField') && $(formname).find('.control-group').hasClass('hide')) { 502 $(formname).find('.control-group').removeClass('hide'); 503 } 504 505 formActionField(); 506 507 var inputFiles = $(formname).find('.input-file'); 508 //Check if using ajax upload. Disable all input-file to don't send them 509 if ($(formname).attr('data-ajaxupload') != '0') 510 { 511 var totalOfFileField = 0; 512 inputFiles.each(function (index, node) 513 { 514 if ($(this).val() != '') 515 { 516 totalOfFileField++; 517 } 518 }); 519 520 if (totalOfFileField > 0) 521 { 522 inputFiles.prop('disabled', true); 523 } 524 525 } 526 527 var $selectHide = $('.jsn-row-container.row-fluid').find(".control-group"); 528 $selectHide.each(function () { 529 if ($(this).css("display") === "none") { 530 var dropdown = $(this).find(".dropdown-required"); 531 if (dropdown.length != '1') { 532 $(this).find('select').each(function () { 533 $(this).attr('disabled', 'disabled'); 534 }) 535 } 536 } 537 }) 538 if ($(formname).find('input[name$=use_payment_gateway]').val() == '0') { 539 $(".jsn-modal-overlay,.jsn-modal-indicator").remove(); 540 } 541 $(this).find(".help-block").remove(); 542 var selfsubmit = this; 543 if (self.checkValidateForm($(this))) { 544 $("body").append($("<div/>", { 545 "class": "jsn-modal-overlay", 546 "style": "z-index: 1000; display: inline;" 547 })).append($("<div/>", { 548 "class": "jsn-modal-indicator", 549 "style": "display:block" 550 })).addClass("jsn-loading-page"); 551 $("#jsn-form-target").remove(); 552 $(selfsubmit).find('.message-uniform').html(""); 553 var iframe = $('<iframe/>', { 554 name: 'jsn-form-target', 555 id: 'jsn-form-target' 556 }); 557 iframe.appendTo($('body')); 558 iframe.css({ 559 display: 'none' 560 }); 561 var publickey = $(this).find(".form-captcha").attr("data-jnsUfpublickey"); 562 iframe.load(function () { 563 var inputFile = $(formname).find('.input-file'); 564 var formID = formname.find("input[name='form_id']").val(); 565 var message = iframe.contents().find("input[name$=message]").val(); 566 var error = iframe.contents().find("input[name$=error]").val(); 567 var redirect = iframe.contents().find("input[name$=redirect]").val(); 568 var use_payment_gateway = $(formname).find('input[name$=use_payment_gateway]').val(); 569 570 //Check if using ajax upload. Disable all input-file to don't send them 571 572 if ($(formname).attr('data-ajaxupload') != '0' && typeof error === 'undefined' && inputFile.length) 573 { 574 575 //Enable all input-file to send by ajax 576 //Count total field file 577 578 579 inputFile.removeAttr('disabled', true); 580 581 if (inputFile.length) 582 { 583 //Remove current progress bar 584 $(formname).find('.jsn-uf-progress-container').remove(); 585 586 var token = $(formname).attr("data-token"); 587 var done = 0; 588 var totalFileField = 0; 589 590 inputFile.each(function (index, node) 591 { 592 if ($(this).val() != '') 593 { 594 totalFileField++; 595 } 596 }); 597 598 599 var options = []; 600 var findex = 0; 601 inputFile.each(function (index, node) 602 { 603 if ($(this).val() != '') { 604 605 var isLast = 'no'; 606 607 //Create a new progress bar 608 $(this).parent().append('<div class="jsn-uf-progress-container progress" id="' + formname.attr('id') + '_' + node.id + '"><div class="progress-bar jsn-progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0%;"></div></div>'); 609 //Create new form, form data 610 var fdata = new FormData(); 611 // fdata.append('form_id', formname.find("input[name='form_id']").val()); 612 //Get files from input field 613 var fileSelect = document.getElementById(node.id); 614 var files = fileSelect.files; 615 616 //Error on IE, Edgle 617 //fdata.delete('files[]'); 618 619 //Add field_id to form data 620 // fdata.append('field_id', $(this).attr('id')); 621 622 623 for (var i = 0; i < files.length; i++) 624 { 625 var file = files[i]; 626 // Add the files to the form data. 627 // We can upload multiple file, but progress bar display not good 628 // Edit Model JSNUniformModelSubmission::uploadFile to allow this 629 fdata.append('files[]', file); 630 } 631 632 //Check if is last file 633 if (findex == totalFileField - 1) 634 { 635 isLast = 'yes'; 636 } 637 638 //Error on IE, Edgle 639 //fdata.delete('field_id'); 640 641 options[findex] = ({ 642 url: baseUrl + "/index.php?option=com_uniform&view=submission&task=form.uploadFile&" + token + "=1&index=" + findex + "&field_id=" + $(this).attr('id') + '&is_last=' + isLast + '&form_id=' + formID + '&rand=' + Math.random(), 643 type: 'POST', 644 formData: fdata, 645 dataType: 'JSON', 646 contentType: false, 647 processData: false, 648 beforeSubmit: function () { 649 650 }, 651 uploadProgress: function (event, position, total, percentComplete) { 652 if (percentComplete == 100) 653 { 654 percentComplete = 99; 655 } 656 var percentVal = percentComplete + '%'; 657 $('#' + formname.attr("id") + '_' + node.id + ' .jsn-progress-bar').animate({width: percentVal}, 50).text(percentVal).attr('aria-valuenow', percentComplete); 658 }, 659 success: function (data) { 660 done ++; 661 //Done, no error 662 $('#' + formname.attr("id") + '_' + node.id + ' .jsn-progress-bar').attr('aria-valuenow', 100).animate({width: '100%'}, 50); 663 if (data.status == 'success') 664 { 665 $('#' + formname.attr("id") + '_' + node.id + ' .jsn-progress-bar').text('100%'); 666 $('#' + formname.attr("id") + ' #' + node.id + '').attr('disabled', true); 667 $('#' + formname.attr("id") + '_' + node.id + ' .jsn-progress-bar').addClass('jsn-progress-bar-success'); 668 // $('#' + formname.attr("id") + ' #' + node.id + '').val(''); 669 var next = data.index + 1; 670 671 if (typeof options[next] != 'undefined') 672 { 673 executeAjaxUploadFile(options[next]); 674 } 675 else if (done == totalFileField) 676 { 677 afterSubmit(); 678 } 679 } 680 else 681 { 682 $(formname).find('.jsn-uf-progress-container').remove(); 683 $('#' + formname.attr("id") + '_' + node.id + ' .jsn-progress-bar').removeClass('jsn-progress-bar-success').addClass('jsn-progress-bar-danger'); 684 $('#' + formname.attr("id") + ' #' + node.id + '').attr('disabled', false); 685 $('#' + formname.attr("id") + ' .jsn-form-submit').attr('disabled', false); 686 error = '{"'+d
686ata.field_id+'":"'+data.message+'"}'; 687 afterSubmit(); 688 } 689 } 690 }); 691 findex ++; 692 } 693 }); 694 } 695 696 if (totalFileField != 0) 697 { 698 //End Enable all input-file to send by ajax 699 executeAjaxUploadFile(options[0]); 700 } 701 else 702 { 703 afterSubmit(); 704 } 705 } 706 else { 707 afterSubmit(); 708 } 709 710 function afterSubmit() { 711 if (error) { 712 error = $.evalJSON(error); 713 self.callMessageError(formname, error); 714 $(formname).find('.input-file').removeAttr('disabled', true); 715 $(formname).find('.jsn-progress-bar').remove(); 716 $(formname).find('.input-file').removeAttr('disabled', true); 717 $(".jsn-modal-overlay,.jsn-modal-indicator").remove(); 718 } else if (redirect && use_payment_gateway != '1') { 719 window.location = redirect; 720 } else if (message && use_payment_gateway != '1') { 721 $.ajax({ 722 type: "GET", 723 async: true, 724 encoding: "UTF-8", 725 scriptCharset: "utf-8", 726 cache: false, 727 contentType: "text/plain; charset=UTF-8", 728 url: baseUrl + "/index.php?option=com_uniform&view=form&task=form.getHtmlForm&tmpl=component&form_id=" + $(selfsubmit).find("input[name=form_id]").val(), 729 success: function (htmlForm) { 730 $(selfsubmit).find(".jsn-row-container").empty(); 731 $(selfsubmit).find(".jsn-row-container").html(htmlForm); 732 if (message) { 733 $(selfsubmit).find('.message-uniform').html( 734 $("<div/>", { 735 "class": "success-uniform alert alert-success clearfix" 736 }).append( 737 $("<button/>", { 738 "class": "close", 739 "onclick": "return false;", 740 "data-dismiss": "alert", 741 text: "x" 742 })).append(message)); 743 } 744 self.initJSNForm(formname); 745 var messagesFocus = $(formname).find(".message-uniform")[0]; 746 $(window).scrollTop($(messagesFocus).offset().top - 50); 747 $(".jsn-modal-overlay,.jsn-modal-indicator").remove(); 748 } 749 }); 750 751 } else { 752 if (use_payment_gateway != '1') { 753 $.ajax({ 754 type: "GET", 755 async: true, 756 cache: false, 757 encoding: "UTF-8", 758 scriptCharset: "utf-8", 759 contentType: "text/plain; charset=UTF-8", 760 url: baseUrl + "/index.php?option=com_uniform&view=form&task=form.getHtmlForm&tmpl=component&form_id=" + $(selfsubmit).find("input[name=form_id]").val(), 761 success: function (htmlForm) { 762 $(selfsubmit).find(".jsn-row-container").empty(); 763 $(selfsubmit).find(".jsn-row-container").html(htmlForm); 764 self.initJSNForm(formname); 765 var messagesFocus = $(formname).find(".message-uniform")[0]; 766 $(window).scrollTop($(messagesFocus).offset().top - 50); 767 768 if ($(formname).find('input[name$=use_payment_gateway]').val() == '0') { 769 $(".jsn-modal-overlay,.jsn-modal-indicator").remove(); 770 } 771 //$(".jsn-modal-overlay,.jsn-modal-indicator").remove(); 772 } 773 }); 774 } 775 } 776 var idcaptcha; 777 var idcaptcha2; 778 idcaptcha = $(selfsubmit).find(".form-captcha").attr("id"); 779 idcaptcha2 = $(selfsubmit).find(".g-recaptcha").attr("id"); 780 if (idcaptcha) { 781 Recaptcha.destroy(); 782 Recaptcha.create(publickey, idcaptcha, { 783 theme: 'white', 784 tabindex: 0, 785 callback: function () { 786 $(selfsubmit).find(".form-captcha").removeClass("error"); 787 $(selfsubmit).find(".form-captcha #recaptcha_area").addClass("controls"); 788 $(selfsubmit).find("#recaptcha_response_field").keypress(function (e) { 789 if (e.which == 13) { 790 if ($(formname).find("button.next").hasClass("hide")) { 791 $(formname).find("button.jsn-form-submit").click(); 792 } else { 793 $(formname).find("button.next").click(); 794 } 795 return false;
796 } 797 }); 798 if (error) { 799 if (error.captcha) { 800 $(selfsubmit).find(".form-captcha").addClass("error"); 801 $(selfsubmit).find(".form-captcha #recaptcha_area").append( 802 $("<span/>", { 803 "class": "help-block" 804 }).append( 805 $("<span/>", { 806 "class": "validation-result label label-important", 807 text: error.captcha 808 }))); 809 $(selfsubmit).find("#recaptcha_response_field").focus(); 810 } 811 } 812 } 813 }); 814 } 815 816 if (idcaptcha2) { 817 //grecaptcha.reset() 818 try { 819 if (grecaptcha.getResponse() == '') { 820 $(formname).find(".validation-result").remove(); 821 $(selfsubmit).find(".g-recaptcha").addClass("error"); 822 $(selfsubmit).find(".g-recaptcha").append( 823 $("<span/>", { 824 "class": "help-block" 825 }).append( 826 $("<span/>", { 827 "class": "validation-result label label-important", 828 text: error.captcha 829 }))); 830 } 831 else 832 { 833 grecaptcha.reset(); 834 } 835 } 836 catch (err) { 837 838 try { 839 //var rd = Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 10); 840 var rd = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15); 841 var oldCaptchaElement = $(formname).find('.g-recaptcha'); 842 843 var newCaptchaElement = $( "<div id='" + rd + "' data-sitekey='" + oldCaptchaElement.attr('data-sitekey') + "' data-theme='" + oldCaptchaElement.attr('data-theme') + "' data-timeout='" + oldCaptchaElement.attr('data-timeout') + "' class='" + oldCaptchaElement.attr('class') + "'></div>").insertAfter(oldCaptchaElement); 844 var newErrorMessage = oldCaptchaElement.find('span.help-block'); 845 oldCaptchaElement.remove(); 846 847 grecaptcha.render(rd, {sitekey: oldCaptchaElement.attr('data-sitekey'), theme: oldCaptchaElement.attr('data-theme'), timeout:oldCaptchaElement.attr('data-timeout')}); 848 849 if (error) 850 { 851 newCaptchaElement.append(newErrorMessage); 852 853 } 854 } 855 catch(err) 856 { 857 858 } 859 } 860 861 } 862 } 863 }); 864 865 //if($(formname).find('input[name$=use_payment_gateway]').val() != '1'){ 866 $(this).attr('target', 'jsn-form-target'); 867 //} 868 869 } else { 870 $(formname).find('.input-file').removeAttr('disabled', true); 871 return false;
872 } 873 874 }); 875 $(formname).find("input.jsn-daterangepicker").each(function () { 876 var dateSettings = $.evalJSON($(this).attr("data-jsnUf-date-settings")); 877 if (dateSettings) { 878 var yearRangeList = []; 879 if (dateSettings.yearRangeMin && dateSettings.yearRangeMax) { 880 yearRangeList.push(dateSettings.yearRangeMin); 881 yearRangeList.push(dateSettings.yearRangeMax); 882 } else if (dateSettings.yearRangeMin) { 883 yearRangeList.push(dateSettings.yearRangeMin); 884 yearRangeList.push((new Date).getFullYear()); 885 } else if (dateSettings.yearRangeMax) { 886 yearRangeList.push(dateSettings.yearRangeMax); 887 yearRangeList.push((new Date).getFullYear()); 888 } 889 var yearRange = "1930:+0"; 890 if (yearRangeList.length) { 891 yearRange = yearRangeList.join(":"); 892 } 893 var dateOptionFormat = ""; 894 if (dateSettings.dateOptionFormat == "custom") { 895 dateOptionFormat = dateSettings.customFormatDate; 896 } else { 897 dateOptionFormat = dateSettings.dateOptionFormat; 898 } 899 if (dateSettings.dateFormat == "1" && dateSettings.timeFormat == "1") { 900 $(this).datetimepicker({ 901 changeMonth: true, 902 changeYear: true, 903 showOn: "button", 904 yearRange: yearRange, 905 dateFormat: dateOptionFormat, 906 timeFormat: dateSettings.timeOptionFormat, 907 timeText: "", 908 hourText: lang['JSN_UNIFORM_DATE_HOUR_TEXT'], 909 minuteText: lang['JSN_UNIFORM_DATE_MINUTE_TEXT'], 910 closeText: lang['JSN_UNIFORM_DATE_CLOSE_TEXT'], 911 prevText: lang['JSN_UNIFORM_DATE_PREV_TEXT'], 912 nextText: lang['JSN_UNIFORM_DATE_NEXT_TEXT'], 913 currentText: lang['JSN_UNIFORM_DATE_CURRENT_TEXT'], 914 monthNames: [lang['JSN_UNIFORM_DATE_MONTH_JANUARY'], 915 lang['JSN_UNIFORM_DATE_MONTH_FEBRUARY'], 916 lang['JSN_UNIFORM_DATE_MONTH_MARCH'], 917 lang['JSN_UNIFORM_DATE_MONTH_APRIL'], 918 lang['JSN_UNIFORM_DATE_MONTH_MAY'], 919 lang['JSN_UNIFORM_DATE_MONTH_JUNE'], 920 lang['JSN_UNIFORM_DATE_MONTH_JULY'], 921 lang['JSN_UNIFORM_DATE_MONTH_AUGUST'], 922 lang['JSN_UNIFORM_DATE_MONTH_SEPTEMBER'], 923 lang['JSN_UNIFORM_DATE_MONTH_OCTOBER'], 924 lang['JSN_UNIFORM_DATE_MONTH_NOVEMBER'], 925 lang['JSN_UNIFORM_DATE_MONTH_DECEMBER']], 926 monthNamesShort: [lang['JSN_UNIFORM_DATE_MONTH_JANUARY_SHORT'], 927 lang['JSN_UNIFORM_DATE_MONTH_FEBRUARY_SHORT'], 928 lang['JSN_UNIFORM_DATE_MONTH_MARCH_SHORT'], 929 lang['JSN_UNIFORM_DATE_MONTH_APRIL_SHORT'], 930 lang['JSN_UNIFORM_DATE_MONTH_MAY_SHORT'], 931 lang['JSN_UNIFORM_DATE_MONTH_JUNE_SHORT'], 932 lang['JSN_UNIFORM_DATE_MONTH_JULY_SHORT'], 933 lang['JSN_UNIFORM_DATE_MONTH_AUGUST_SHORT'], 934 lang['JSN_UNIFORM_DATE_MONTH_SEPTEMBER_SHORT'], 935 lang['JSN_UNIFORM_DATE_MONTH_OCTOBER_SHORT'], 936 lang['JSN_UNIFORM_DATE_MONTH_NOVEMBER_SHORT'], 937 lang['JSN_UNIFORM_DATE_MONTH_DECEMBER_SHORT']], 938 dayNames: [lang['JSN_UNIFORM_DATE_DAY_SUNDAY'], 939 lang['JSN_UNIFORM_DATE_DAY_MONDAY'], 940 lang['JSN_UNIFORM_DATE_DAY_TUESDAY'], 941 lang['JSN_UNIFORM_DATE_DAY_WEDNESDAY'], 942 lang['JSN_UNIFORM_DATE_DAY_THURSDAY'], 943 lang['JSN_UNIFORM_DATE_DAY_FRIDAY'], 944 lang['JSN_UNIFORM_DATE_DAY_SATURDAY']], 945 dayNamesShort: [lang['JSN_UNIFORM_DATE_DAY_SUNDAY_SHORT'], 946 lang['JSN_UNIFORM_DATE_DAY_MONDAY_SHORT'], 947 lang['JSN_UNIFORM_DATE_DAY_TUESDAY_SHORT'], 948 lang['JSN_UNIFORM_DATE_DAY_WEDNESDAY_SHORT'], 949 lang['JSN_UNIFORM_DATE_DAY_THURSDAY_SHORT'], 950 lang['JSN_UNIFORM_DATE_DAY_FRIDAY_SHORT'], 951 lang['JSN_UNIFORM_DATE_DAY_SATURDAY_SHORT']], 952 dayNamesMin: [lang['JSN_UNIFORM_DATE_DAY_SUNDAY_MIN'], 953 lang['JSN_UNIFORM_DATE_DAY_MONDAY_MIN'], 954 lang['JSN_UNIFORM_DATE_DAY_TUESDAY_MIN'], 955 lang['JSN_UNIFORM_DATE_DAY_WEDNESDAY_MIN'], 956 lang['JSN_UNIFORM_DATE_DAY_THURSDAY_MIN'], 957 lang['JSN_UNIFORM_DATE_DAY_FRIDAY_MIN'], 958 lang['JSN_UNIFORM_DATE_DAY_SATURDAY_MIN']], 959 weekHeader: lang['JSN_UNIFORM_DATE_DAY_WEEK_HEADER'] 960 }); 961 } else if (dateSettings.dateFormat == "1") { 962 $(this).datepicker({ 963 changeMonth: true, 964 changeYear: true, 965 showOn: "button", 966 yearRange: yearRange, 967 dateFormat: dateOptionFormat, 968 hourText: lang['JSN_UNIFORM_DATE_HOUR_TEXT'], 969 minuteText: lang['JSN_UNIFORM_DATE_MINUTE_TEXT'], 970 closeText: lang['JSN_UNIFORM_DATE_CLOSE_TEXT'], 971 prevText: lang['JSN_UNIFORM_DATE_PREV_TEXT'], 972 nextText: lang['JSN_UNIFORM_DATE_NEXT_TEXT'], 973 currentText: lang['JSN_UNIFORM_DATE_CURRENT_TEXT'], 974 monthNames: [lang['JSN_UNIFORM_DATE_MONTH_JANUARY'], 975 lang['JSN_UNIFORM_DATE_MONTH_FEBRUARY'], 976 lang['JSN_UNIFORM_DATE_MONTH_MARCH'], 977 lang['JSN_UNIFORM_DATE_MONTH_APRIL'], 978 lang['JSN_UNIFORM_DATE_MONTH_MAY'],
979 lang['JSN_UNIFORM_DATE_MONTH_JUNE'], 980 lang['JSN_UNIFORM_DATE_MONTH_JULY'], 981 lang['JSN_UNIFORM_DATE_MONTH_AUGUST'], 982 lang['JSN_UNIFORM_DATE_MONTH_SEPTEMBER'], 983 lang['JSN_UNIFORM_DATE_MONTH_OCTOBER'], 984 lang['JSN_UNIFORM_DATE_MONTH_NOVEMBER'], 985 lang['JSN_UNIFORM_DATE_MONTH_DECEMBER']], 986 monthNamesShort: [lang['JSN_UNIFORM_DATE_MONTH_JANUARY_SHORT'], 987 lang['JSN_UNIFORM_DATE_MONTH_FEBRUARY_SHORT'], 988 lang['JSN_UNIFORM_DATE_MONTH_MARCH_SHORT'], 989 lang['JSN_UNIFORM_DATE_MONTH_APRIL_SHORT'], 990 lang['JSN_UNIFORM_DATE_MONTH_MAY_SHORT'], 991 lang['JSN_UNIFORM_DATE_MONTH_JUNE_SHORT'], 992 lang['JSN_UNIFORM_DATE_MONTH_JULY_SHORT'], 993 lang['JSN_UNIFORM_DATE_MONTH_AUGUST_SHORT'], 994 lang['JSN_UNIFORM_DATE_MONTH_SEPTEMBER_SHORT'], 995 lang['JSN_UNIFORM_DATE_MONTH_OCTOBER_SHORT'], 996 lang['JSN_UNIFORM_DATE_MONTH_NOVEMBER_SHORT'], 997 lang['JSN_UNIFORM_DATE_MONTH_DECEMBER_SHORT']], 998 dayNames: [lang['JSN_UNIFORM_DATE_DAY_SUNDAY'], 999 lang['JSN_UNIFORM_DATE_DAY_MONDAY'], 1000 lang['JSN_UNIFORM_DATE_DAY_TUESDAY'], 1001 lang['JSN_UNIFORM_DATE_DAY_WEDNESDAY'], 1002 lang['JSN_UNIFORM_DATE_DAY_THURSDAY'], 1003 lang['JSN_UNIFORM_DATE_DAY_FRIDAY'], 1004 lang['JSN_UNIFORM_DATE_DAY_SATURDAY']], 1005 dayNamesShort: [lang['JSN_UNIFORM_DATE_DAY_SUNDAY_SHORT'], 1006 lang['JSN_UNIFORM_DATE_DAY_MONDAY_SHORT'], 1007 lang['JSN_UNIFORM_DATE_DAY_TUESDAY_SHORT'], 1008 lang['JSN_UNIFORM_DATE_DAY_WEDNESDAY_SHORT'], 1009 lang['JSN_UNIFORM_DATE_DAY_THURSDAY_SHORT'], 1010 lang['JSN_UNIFORM_DATE_DAY_FRIDAY_SHORT'], 1011 lang['JSN_UNIFORM_DATE_DAY_SATURDAY_SHORT']], 1012 dayNamesMin: [lang['JSN_UNIFORM_DATE_DAY_SUNDAY_MIN'], 1013 lang['JSN_UNIFORM_DATE_DAY_MONDAY_MIN'], 1014 lang['JSN_UNIFORM_DATE_DAY_TUESDAY_MIN'], 1015 lang['JSN_UNIFORM_DATE_DAY_WEDNESDAY_MIN'], 1016 lang['JSN_UNIFORM_DATE_DAY_THURSDAY_MIN'], 1017 lang['JSN_UNIFORM_DATE_DAY_FRIDAY_MIN'], 1018 lang['JSN_UNIFORM_DATE_DAY_SATURDAY_MIN']], 1019 weekHeader: lang['JSN_UNIFORM_DATE_DAY_WEEK_HEADER'] 1020 }); 1021 } else if (dateSettings.timeFormat == "1") { 1022 $(this).timepicker({ 1023 showOn: "button", 1024 timeText: "", 1025 timeFormat: dateSettings.timeOptionFormat, 1026 hourText: lang['JSN_UNIFORM_DATE_HOUR_TEXT'], 1027 minuteText: lang['JSN_UNIFORM_DATE_MINUTE_TEXT'], 1028 closeText: lang['JSN_UNIFORM_DATE_CLOSE_TEXT'], 1029 prevText: lang['JSN_UNIFORM_DATE_PREV_TEXT'], 1030 nextText: lang['JSN_UNIFORM_DATE_NEXT_TEXT'], 1031 currentText: lang['JSN_UNIFORM_DATE_CURRENT_TEXT'], 1032 monthNames: [lang['JSN_UNIFORM_DATE_MONTH_JANUARY'], 1033 lang['JSN_UNIFORM_DATE_MONTH_FEBRUARY'], 1034 lang['JSN_UNIFORM_DATE_MONTH_MARCH'], 1035 lang['JSN_UNIFORM_DATE_MONTH_APRIL'], 1036 lang['JSN_UNIFORM_DATE_MONTH_MAY'],
1037 lang['JSN_UNIFORM_DATE_MONTH_JUNE'], 1038 lang['JSN_UNIFORM_DATE_MONTH_JULY'], 1039 lang['JSN_UNIFORM_DATE_MONTH_AUGUST'], 1040 lang['JSN_UNIFORM_DATE_MONTH_SEPTEMBER'], 1041 lang['JSN_UNIFORM_DATE_MONTH_OCTOBER'], 1042 lang['JSN_UNIFORM_DATE_MONTH_NOVEMBER'], 1043 lang['JSN_UNIFORM_DATE_MONTH_DECEMBER']], 1044 monthNamesShort: [lang['JSN_UNIFORM_DATE_MONTH_JANUARY_SHORT'], 1045 lang['JSN_UNIFORM_DATE_MONTH_FEBRUARY_SHORT'], 1046 lang['JSN_UNIFORM_DATE_MONTH_MARCH_SHORT'], 1047 lang['JSN_UNIFORM_DATE_MONTH_APRIL_SHORT'], 1048 lang['JSN_UNIFORM_DATE_MONTH_MAY_SHORT'], 1049 lang['JSN_UNIFORM_DATE_MONTH_JUNE_SHORT'], 1050 lang['JSN_UNIFORM_DATE_MONTH_JULY_SHORT'], 1051 lang['JSN_UNIFORM_DATE_MONTH_AUGUST_SHORT'], 1052 lang['JSN_UNIFORM_DATE_MONTH_SEPTEMBER_SHORT'], 1053 lang['JSN_UNIFORM_DATE_MONTH_OCTOBER_SHORT'], 1054 lang['JSN_UNIFORM_DATE_MONTH_NOVEMBER_SHORT'], 1055 lang['JSN_UNIFORM_DATE_MONTH_DECEMBER_SHORT']], 1056 dayNames: [lang['JSN_UNIFORM_DATE_DAY_SUNDAY'], 1057 lang['JSN_UNIFORM_DATE_DAY_MONDAY'], 1058 lang['JSN_UNIFORM_DATE_DAY_TUESDAY'], 1059 lang['JSN_UNIFORM_DATE_DAY_WEDNESDAY'], 1060 lang['JSN_UNIFORM_DATE_DAY_THURSDAY'], 1061 lang['JSN_UNIFORM_DATE_DAY_FRIDAY'], 1062 lang['JSN_UNIFORM_DATE_DAY_SATURDAY']], 1063 dayNamesShort: [lang['JSN_UNIFORM_DATE_DAY_SUNDAY_SHORT'], 1064 lang['JSN_UNIFORM_DATE_DAY_MONDAY_SHORT'], 1065 lang['JSN_UNIFORM_DATE_DAY_TUESDAY_SHORT'], 1066 lang['JSN_UNIFORM_DATE_DAY_WEDNESDAY_SHORT'], 1067 lang['JSN_UNIFORM_DATE_DAY_THURSDAY_SHORT'], 1068 lang['JSN_UNIFORM_DATE_DAY_FRIDAY_SHORT'], 1069 lang['JSN_UNIFORM_DATE_DAY_SATURDAY_SHORT']], 1070 dayNamesMin: [lang['JSN_UNIFORM_DATE_DAY_SUNDAY_MIN'], 1071 lang['JSN_UNIFORM_DATE_DAY_MONDAY_MIN'], 1072 lang['JSN_UNIFORM_DATE_DAY_TUESDAY_MIN'], 1073 lang['JSN_UNIFORM_DATE_DAY_WEDNESDAY_MIN'], 1074 lang['JSN_UNIFORM_DATE_DAY_THURSDAY_MIN'], 1075 lang['JSN_UNIFORM_DATE_DAY_FRIDAY_MIN'], 1076 lang['JSN_UNIFORM_DATE_DAY_SATURDAY_MIN']], 1077 weekHeader: lang['JSN_UNIFORM_DATE_DAY_WEEK_HEADER'] 1078 }); 1079 } else { 1080 $(this).datepicker({ 1081 changeMonth: true, 1082 changeYear: true, 1083 yearRange: yearRange, 1084 showOn: "button", 1085 hourText: lang['JSN_UNIFORM_DATE_HOUR_TEXT'], 1086 minuteText: lang['JSN_UNIFORM_DATE_MINUTE_TEXT'], 1087 closeText: lang['JSN_UNIFORM_DATE_CLOSE_TEXT'], 1088 prevText: lang['JSN_UNIFORM_DATE_PREV_TEXT'], 1089 nextText: lang['JSN_UNIFORM_DATE_NEXT_TEXT'], 1090 currentText: lang['JSN_UNIFORM_DATE_CURRENT_TEXT'], 1091 monthNames: [lang['JSN_UNIFORM_DATE_MONTH_JANUARY'], 1092 lang['JSN_UNIFORM_DATE_MONTH_FEBRUARY'], 1093 lang['JSN_UNIFORM_DATE_MONTH_MARCH'], 1094 lang['JSN_UNIFORM_DATE_MONTH_APRIL'], 1095 lang['JSN_UNIFORM_DATE_MONTH_MAY'],
1096 lang['JSN_UNIFORM_DATE_MONTH_JUNE'], 1097 lang['JSN_UNIFORM_DATE_MONTH_JULY'], 1098 lang['JSN_UNIFORM_DATE_MONTH_AUGUST'], 1099 lang['JSN_UNIFORM_DATE_MONTH_SEPTEMBER'], 1100 lang['JSN_UNIFORM_DATE_MONTH_OCTOBER'], 1101 lang['JSN_UNIFORM_DATE_MONTH_NOVEMBER'], 1102 lang['JSN_UNIFORM_DATE_MONTH_DECEMBER']], 1103 monthNamesShort: [lang['JSN_UNIFORM_DATE_MONTH_JANUARY_SHORT'], 1104 lang['JSN_UNIFORM_DATE_MONTH_FEBRUARY_SHORT'], 1105 lang['JSN_UNIFORM_DATE_MONTH_MARCH_SHORT'], 1106 lang['JSN_UNIFORM_DATE_MONTH_APRIL_SHORT'], 1107 lang['JSN_UNIFORM_DATE_MONTH_MAY_SHORT'], 1108 lang['JSN_UNIFORM_DATE_MONTH_JUNE_SHORT'], 1109 lang['JSN_UNIFORM_DATE_MONTH_JULY_SHORT'], 1110 lang['JSN_UNIFORM_DATE_MONTH_AUGUST_SHORT'], 1111 lang['JSN_UNIFORM_DATE_MONTH_SEPTEMBER_SHORT'], 1112 lang['JSN_UNIFORM_DATE_MONTH_OCTOBER_SHORT'], 1113 lang['JSN_UNIFORM_DATE_MONTH_NOVEMBER_SHORT'], 1114 lang['JSN_UNIFORM_DATE_MONTH_DECEMBER_SHORT']], 1115 dayNames: [lang['JSN_UNIFORM_DATE_DAY_SUNDAY'], 1116 lang['JSN_UNIFORM_DATE_DAY_MONDAY'], 1117 lang['JSN_UNIFORM_DATE_DAY_TUESDAY'], 1118 lang['JSN_UNIFORM_DATE_DAY_WEDNESDAY'], 1119 lang['JSN_UNIFORM_DATE_DAY_THURSDAY'], 1120 lang['JSN_UNIFORM_DATE_DAY_FRIDAY'], 1121 lang['JSN_UNIFORM_DATE_DAY_SATURDAY']], 1122 dayNamesShort: [lang['JSN_UNIFORM_DATE_DAY_SUNDAY_SHORT'], 1123 lang['JSN_UNIFORM_DATE_DAY_MONDAY_SHORT'], 1124 lang['JSN_UNIFORM_DATE_DAY_TUESDAY_SHORT'], 1125 lang['JSN_UNIFORM_DATE_DAY_WEDNESDAY_SHORT'], 1126 lang['JSN_UNIFORM_DATE_DAY_THURSDAY_SHORT'], 1127 lang['JSN_UNIFORM_DATE_DAY_FRIDAY_SHORT'], 1128 lang['JSN_UNIFORM_DATE_DAY_SATURDAY_SHORT']], 1129 dayNamesMin: [lang['JSN_UNIFORM_DATE_DAY_SUNDAY_MIN'], 1130 lang['JSN_UNIFORM_DATE_DAY_MONDAY_MIN'], 1131 lang['JSN_UNIFORM_DATE_DAY_TUESDAY_MIN'], 1132 lang['JSN_UNIFORM_DATE_DAY_WEDNESDAY_MIN'], 1133 lang['JSN_UNIFORM_DATE_DAY_THURSDAY_MIN'], 1134 lang['JSN_UNIFORM_DATE_DAY_FRIDAY_MIN'], 1135 lang['JSN_UNIFORM_DATE_DAY_SATURDAY_MIN']], 1136 weekHeader: lang['JSN_UNIFORM_DATE_DAY_WEEK_HEADER'] 1137 }); 1138 } 1139 $("button.ui-datepicker-trigger").addClass("btn btn-icon").html($("<i/>", { 1140 "class": "icon-calendar" 1141 })); 1142 } 1143 }); 1144 1145 $(formname).find(".form-actions .prev").click(function () { 1146 $(formname).find('div.jsn-form-content').each(function (i) { 1147 if (!$(this).is(':hidden')) { 1148// if (self.checkValidateForm($(this))) { 1149 self.prevpaginationPage(formname); 1150// } 1151 return false; 1152 } 1153 }); 1154 }); 1155 $(formname).find(".form-actions .next").click(function () { 1156 1157 $(formname).find('div.jsn-form-content').each(function (i) { 1158 if (!$(this).is(':hidden')) { 1159 if (self.checkValidateForm($(this))) { 1160 self.nextpaginationPage(formname); 1161 } 1162 return false;
1163 } 1164 }); 1165 }); 1166 1167 $(formname).find(".form-actions .reset").click(function () { 1168 // $(formname).trigger("reset"); 1169 if ($notHideContainer = $(formname).find('.jsn-form-content').not('.hide')) { 1170 1171 $notHideContainer.find('input:text, input:password, input:file, textarea').val(''); 1172 $notHideContainer.find('select option:selected').removeAttr('selected'); 1173 $notHideContainer.find('input:checkbox, input:radio').removeAttr('checked'); 1174 try 1175 { 1176 $notHideContainer.find("select.jsn-uf-select2-dropdown").select2(); 1177 } 1178 catch(err) 1179 { 1180 1181 } 1182 $notHideContainer.find('.error').removeClass("error").find(".help-block").remove(); 1183// $(formname).find('.jsn-form-content').addClass("hide"); 1184// $(formname).find('.jsn-form-content').each(function (i, _formContent) { 1185// if (i == 0) { 1186// $(_formContent).removeClass("hide"); 1187// } 1188// }); 1189 1190 self.checkPage(formname); 1191 1192 $notHideContainer.find("div.choices .jsn-column-item input").each(function () { 1193 1194 if ($(this).is(':checked')) { 1195 var idField = $(this).parents(".jsn-columns-container").attr("id"); 1196 $notHideContainer.find("div.control-group." + idField).removeAttr("style"); 1197 self.getActionField(formname, $(this), idField); 1198 } 1199 formActionField(); 1200 }); 1201 1202 $notHideContainer.find("div.checkboxes .jsn-column-item input").each(function () { 1203 var idField = $(this).parents(".jsn-columns-container").attr("id"); 1204 var litmiChoises = $(this).parents(".jsn-columns-container").attr('data-limit') 1205 var checkboxesInput = $notHideContainer.find("div.checkboxes#" + idField + " .jsn-column-item input"); 1206 var countChecked = $notHideContainer.find("div.checkboxes#" + idField + " .jsn-column-item input:checked"); 1207 if (litmiChoises > 0) { 1208 if (countChecked.length >= litmiChoises) { 1209 $(checkboxesInput).attr("disabled", "disabled"); 1210 $(countChecked).removeAttr("disabled"); 1211 } 1212 else { 1213 $(checkboxesInput).removeAttr("disabled"); 1214 } 1215 } 1216 $notHideContainer.find("div.control-group." + idField).removeAttr("style"); 1217 $(this).parents(".jsn-columns-container").find("input").each(function () { 1218 1219 if ($(this).is(':checked')) { 1220 self.getActionFieldCheckboxes(formname, $(this), idField); 1221 } 1222 if (!$(this).is(':checked')) { 1223 self.getActionCheckboxesUnchecked(formname, $(this), idField); 1224 } 1225 }); 1226 formActionField(); 1227 }); 1228 1229 $notHideContainer.find("select.dropdown").each(function () { 1230 var idField = $(this).attr("id"); 1231 $notHideContainer.find("div.control-group." + idField).removeAttr("style"); 1232 self.getActionField(formname, $(this), idField); 1233 formActionField(); 1234 }); 1235 calculateTotal(); 1236 self.removeRedundantMarginLeft(formname); 1237 } 1238 }); 1239 1240 //Event click preview button 1241 $(formname).find("button.preview").click(function(){ 1242 $('#jsn_uniform_modal_'+formname.attr('id')+' .modal-body').html(''); 1243 var token = formname.attr('data-token'); 1244 var url = baseUrl + "/index.php?option=com_uniform&view=preview&task=preview.preview&tmpl=component&"+token+"=1";
1245 var values = $(formname).serializeArray(); 1246 $(formname).find('.input-file').each(function(){ 1247 values.push({ 1248 name: $(this).attr('name'), 1249 value: $(this).val() 1250 }); 1251 }); 1252 values.push({ 1253 name: "task", 1254 value: 'preview.preview' 1255 }); 1256 values = $.param(values); 1257 $.ajax({ 1258 type: "POST", 1259 url: url, 1260 data: values, 1261 success: function(modalHtml) 1262 { 1263 $('#jsn_uniform_modal_'+formname.attr('id')+' .modal-body').html(modalHtml); 1264 $('#jsn_uniform_modal_'+formname.attr('id')).modal('show'); 1265 $('.modal-backdrop').addClass('jsn-uniform-modal-backdrop'); 1266 } 1267 }); 1268 }); 1269 $('#jsn_uniform_modal_'+formname.attr('id')+' .jsn_close_modal').click(function(){ 1270 $('#jsn_uniform_modal_'+formname.attr('id')).modal('hide'); 1271 $('#jsn_uniform_modal_'+formname.attr('id')+' .modal-body').html(''); 1272 }); 1273 //End event click preview button 1274 1275 this.defaultPage(formname); 1276 $('input, textarea').placeholder(); 1277 //end 1278 calculateTotal(); 1279 self.removeRedundantMarginLeft(formname); 1280 }; 1281 /*--------------------------*/ 1282 $.removeRedundantMarginLeft = function (formname) { 1283 var JSNUFRowContainer = $(formname).find('.jsn-uf-row-container'); 1284 if (JSNUFRowContainer.length) { 1285 JSNUFRowContainer.each(function () { 1286 var children = $(this).children(); 1287 1288 var totalChildren = children.length; 1289 if (totalChildren) { 1290 var hideIndex = null; 1291 children.each(function (subIndex) { 1292 1293 var subChildren = $(this).children(); 1294 var totalsubChildren = subChildren.length; 1295 if (totalsubChildren) { 1296 var totalSubHideChildren = $(this).find('.hide').length; 1297 if (totalSubHideChildren == totalsubChildren && subIndex == 0) { 1298 if ($(this).next().length) { 1299 hideIndex = 0; 1300 $(this).next().css('margin-left', '0'); 1301 } 1302 } 1303 else if (totalSubHideChildren == totalsubChildren && subIndex == 1) { 1304 1305 if (hideIndex == 0) { 1306 if ($(this).next().length) { 1307 hideIndex = 1; 1308 $(this).next().css('margin-left', '0'); 1309 } 1310 } 1311 } 1312 else if (totalSubHideChildren == totalsubChildren && subIndex == 2) { 1313 1314 if (hideIndex == 1) { 1315 if ($(this).next().length) { 1316 hideIndex = 2; 1317 $(this).next().css('margin-left', '0'); 1318 } 1319 } 1320 } 1321 else { 1322 if ($(this).next().length) { 1323 $(this).next().removeAttr('style'); 1324 } 1325 } 1326 } 1327 }); 1328 } 1329 }); 1330 } 1331 }, 1332 /*--------------------------*/ 1333 $.getActionField = function (formname, selfInput, idField) { 1334 1335 var dataSettings = $(selfInput).parents(".control-group").attr("data-settings"); 1336 if (dataSettings) { 1337 dataSettings = $.evalJSON(dataSettings); 1338 } 1339 1340 if (dataSettings) { 1341 1342 var classShowField = []; 1343 var classHideField = []; 1344 var classShowField2 = []; 1345 var classHideField2 = []; 1346 $.each(dataSettings, function (i, item) { 1347 i = i.trim(); 1348 if ($(selfInput).val() == i) { 1349 if (item.showField) { 1350 $.each(item.showField, function (j, actionField) { 1351 if (actionField) { 1352 classShowField.push(".control-group." + actionField); 1353 } 1354 var showChild = $(".control-group." + actionField).attr("data-settings") 1355 if (showChild) { 1356 showChild = $.evalJSON(showChild); 1357 $.each(showChild, function (v, itemChild) { 1358 if ($(".control-group." + actionField).find('input
1358:checked, select option:selected').val() == v) { 1359 if ($.type(itemChild) == 'object') { 1360 $.each(itemChild.showField, function (k, child) { 1361 if ($.inArray(".control-group." + child, classShowField2) == -1) { 1362 classShowField2.push(".control-group." + child); 1363 } 1364 }) 1365 } 1366 } 1367 }); 1368 } 1369 }); 1370 $(formname).find(classShowField.join(",")).addClass(idField).show().removeClass('hide'); 1371 $(formname).find(classShowField2.join(",")).addClass(idField).show().removeClass('hide'); 1372 } 1373 if (item.hideField) { 1374 $.each(item.hideField, function (j, actionField) { 1375 if (actionField) { 1376 classHideField.push("div.control-group." + actionField); 1377 } 1378 var hideChild = $(".control-group." + actionField).attr("data-settings") 1379 if (hideChild) { 1380 hideChild = $.evalJSON(hideChild); 1381 $.each(hideChild, function (v, itemChild) { 1382 if ($(".control-group." + actionField).find('input:checked, select option:selected').val() == v) { 1383 if (itemChild) { 1384 $.each(itemChild.hideField, function (k, child) { 1385 if ($.inArray(".control-group." + child, classHideField2) == -1) { 1386 classHideField2.push(".control-group." + child); 1387 } 1388 }) 1389 } 1390 } 1391 }); 1392 } 1393 }); 1394 $(formname).find(classHideField.join(",")).addClass(idField).hide().addClass('hide'); 1395 $(formname).find(classHideField2.join(",")).addClass(idField).hide().addClass('hide'); 1396 1397 } 1398 } 1399 else { 1400 if (item.showField) { 1401 var classShow = []; 1402 var classShow2 = []; 1403 $.each(item.showField, function (j, actionField) { 1404 1405 if (actionField) { 1406 if ($.inArray(".control-group." + actionField, classShowField) == -1) { 1407 classShow.push(".control-group." + actionField); 1408 } 1409 } 1410 var showChild = $(".control-group." + actionField).attr("data-settings") 1411 1412 if (showChild) { 1413 showChild = $.evalJSON(showChild); 1414 $.each(showChild, function (v, itemChild) { 1415 if (itemChild) { 1416 if (typeof (itemChild.showField) != 'undefined') { 1417 $.each(itemChild.showField, function (k, child) { 1418 if ($.inArray(".control-group." + child, classShowField) == -1) { 1419 classShow2.push(".control-group." + child); 1420 } 1421 }) 1422 } 1423 } 1424 }); 1425 } 1426 }); 1427 $(formname).find(classShow.join(",")).addClass(idField).hide().addClass('hide'); 1428 $(formname).find(classShow2.join(",")).addClass(idField).hide().addClass('hide'); 1429 } 1430 if (item.hideField) { 1431 var classHide = []; 1432 var classHide2 = []; 1433 $.each(item.hideField, function (j, actionField) { 1434 if (actionField) { 1435 if ($.inArray("div.control-group." + actionField, classHideField) == -1) {
1436 classHide.push("div.control-group." + actionField); 1437 } 1438 } 1439 var hideChild = $(".control-group." + actionField).attr("data-settings") 1440 1441 if (hideChild) { 1442 hideChild = $.evalJSON(hideChild); 1443 $.each(hideChild, function (v, itemChild) { 1444 if (hideChild) { 1445 if (typeof (itemChild.hideField) != 'undefined') { 1446 $.each(itemChild.hideField, function (k, child) { 1447 if ($.inArray(".control-group." + child, classHideField) == -1) { 1448 classHide2.push(".control-group." + child); 1449 } 1450 }) 1451 } 1452 } 1453 }); 1454 } 1455 }); 1456 $(formname).find(classHide.join(",")).addClass(idField).show().removeClass('hide'); 1457 $(formname).find(classHide2.join(",")).addClass(idField).show().removeClass('hide'); 1458 } 1459 } 1460 }); 1461 } 1462 }; 1463 $.getActionFieldCheckboxes = function (formname, selfInput, idField) { 1464 var dataSettings = $(selfInput).parents(".control-group").attr("data-settings"); 1465 if (dataSettings) { 1466 dataSettings = $.evalJSON(dataSettings); 1467 } 1468 if (dataSettings) { 1469 var classShowField = []; 1470 var classShowField2 = []; 1471 var classHideField = []; 1472 var classHideField2 = []; 1473 1474 $.each(dataSettings, function (i, item) { 1475 i = i.trim(); 1476 if ($(selfInput).val() == i) { 1477 if (item.showField) { 1478 $.each(item.showField, function (j, actionField) { 1479 if (actionField) { 1480 classShowField.push(".control-group." + actionField); 1481 } 1482 var showChild = $(".control-group." + actionField).attr("data-settings") 1483 if (showChild) { 1484 showChild = $.evalJSON(showChild); 1485 $.each(showChild, function (v, itemChild) { 1486 var selectItem = $(".control-group." + actionField).find('input:checked, select option:selected') 1487 $.each(selectItem, function (a, selectChild) { 1488 if ($(selectChild).val() == v) { 1489 if (typeof (itemChild.showField) != 'undefined') { 1490 $.each(itemChild.showField, function (k, child) { 1491 if ($.inArray(".control-group." + child, classShowField2) == -1) { 1492 classShowField2.push(".control-group." + child); 1493 } 1494 }) 1495 } 1496 } 1497 }) 1498 }); 1499 } 1500 }); 1501 $(formname).find(classShowField.join(",")).addClass(idField).show().addClass('useField').removeClass('hide'); 1502 $(formname).find(classShowField2.join(",")).addClass(idField).show().addClass('useField').removeClass('hide').css({'display': 'block'}); 1503 } 1504 if (typeof (item.hideField) != 'undefined' && item.hideField != '' && item.hideField != 'undefined') { 1505 $.each(item.hideField, function (j, actionField) { 1506 if (actionField) { 1507 classHideField.push("div.control-group." + actionField); 1508 } 1509 var hideChild = $(".control-group." + actionField).attr("data-settings") 1510 if (hideChild) { 1511 hideChild = $.evalJSON(hideChild); 1512 1513 $.each(hideChild, function (v, itemChild) { 1514 if ($(".control-group." + actionField).find('input
1514:checked, select option:selected').val() == v) { 1515 if (itemChild) { 1516 $.each(itemChild.hideField, function (k, child) { 1517 if ($.inArray(".control-group." + child, classHideField2) == -1) { 1518 classHideField2.push(".control-group." + child); 1519 } 1520 }) 1521 } 1522 } 1523 }); 1524 } 1525 }); 1526 $(formname).find(classHideField.join(",")).addClass(idField).hide().removeClass('useField').addClass('hide').css({'display': 'none'}); 1527 $(formname).find(classHideField2.join(",")).addClass(idField).show().removeClass('useField').addClass('hide').css({'display': 'none'}); 1528 } 1529 } 1530 }); 1531 } 1532 }; 1533 $.getActionCheckboxesUnchecked = function (formname, selfInput, idField) { 1534 var dataSettings = $(selfInput).parents(".control-group").attr("data-settings"); 1535 if (dataSettings) { 1536 dataSettings = $.evalJSON(dataSettings); 1537 } 1538 if (dataSettings) { 1539 var classShowField = []; 1540 var classShowField2 = []; 1541 var classHideField = []; 1542 var classHideField2 = []; 1543 $.each(dataSettings, function (i, item) { 1544 1545 i = i.trim(); 1546 if ($(selfInput).val() == i) { 1547 if (typeof (item.showField) != 'undefined') { 1548 $.each(item.showField, function (j, actionField) { 1549 if (actionField) { 1550 classShowField.push(".control-group." + actionField); 1551 } 1552 var showChild = $(".control-group." + actionField).attr("data-settings") 1553 1554 if (showChild) { 1555 showChild = $.evalJSON(showChild); 1556 1557 $.each(showChild, function (v, itemChild) { 1558 if (typeof (itemChild.showField) != 'undefined') { 1559 $.each(itemChild.showField, function (k, child) { 1560 if ($.inArray(".control-group." + child, classShowField2) == -1) { 1561 classShowField2.push(".control-group." + child); 1562 } 1563 }) 1564 } 1565 }); 1566 } 1567 }); 1568 $(formname).find(classShowField.join(",")).addClass(idField).hide().removeClass('useField').addClass('hide').css({'display': 'none'}); 1569 $(formname).find(classShowField2.join(",")).addClass(idField).hide().removeClass('useField').addClass('hide').css({'display': 'none'}); 1570 } 1571 if (typeof (item.hideField) != 'undefined') { 1572 $.each(item.hideField, function (j, actionField) { 1573 if (actionField) { 1574 classHideField.push("div.control-group." + actionField); 1575 } 1576 var hideChild = $(".control-group." + actionField).attr("data-settings") 1577 if (hideChild) { 1578 hideChild = $.evalJSON(hideChild); 1579 1580 $.each(hideChild, function (v, itemChild) { 1581 if ($(".control-group." + actionField).find('input
1581:checked, select option:selected').val() == v) { 1582 if (itemChild) { 1583 if (typeof (itemChild.hideField) != 'undefined') { 1584 $.each(itemChild.hideField, function (k, child) { 1585 if ($.inArray(".control-group." + child, classHideField2) == -1) { 1586 classHideField2.push(".control-group." + child); 1587 } 1588 }) 1589 } 1590 } 1591 } 1592 }); 1593 } 1594 }); 1595 $(formname).find(classHideField.join(",")).addClass(idField).show().addClass('useField').addClass('hide').css({'display': 'block'}); 1596 $(formname).find(classHideField2.join(",")).addClass(idField).hide().addClass('hide').removeClass('useField').css({'display': 'none'}); 1597 } 1598 } 1599 }); 1600 } 1601 }; 1602 1603 $.randomValueItems = function (_this) { 1604 var group = $(_this), 1605 choices = group.find('.jsn-column-item'), 1606 otherItem = choices.filter(function () { 1607 return $('label.lbl-allowOther', this).size() > 0; 1608 }), 1609 randomItems = choices.not(otherItem); 1610 randomItems.detach(); 1611 otherItem.detach(); 1612 while (randomItems.length > 0) { 1613 var index = Math.floor(Math.random() * choices.length), 1614 choice = randomItems[index]; 1615 1616 if (group.find(".lbl-allowOther").size()) { 1617 group.find(".lbl-allowOther").before(choice); 1618 } else { 1619 group.append(choice); 1620 } 1621 delete(randomItems[index]); 1622 var newList = []; 1623 $(randomItems).each(function (index, element) { 1624 if (element !== undefined) { 1625 newList.push(element); 1626 } 1627 }); 1628 randomItems = newList; 1629 } 1630 delete(randomItems[0]); 1631 if (group.find(".lbl-allowOther").size()) { 1632 group.find(".lbl-allowOther").before(otherItem); 1633 } else { 1634 group.append(otherItem); 1635 } 1636 return true; 1637 }; 1638 $.captcha = function (form) { 1639 var self = this; 1640 var idcaptcha = ""; 1641 var idcaptcha = form.find(".form-captcha").attr("id"); 1642 var publickey = form.find(".form-captcha").attr("data-jnsUfpublickey"); 1643 if (form.find(".form-captcha").length > 0 && form.find(".form-captcha").is(':hidden') && idcaptcha) { 1644 $(".form-captcha").hide(); 1645 form.find(".form-captcha").show(); 1646 Recaptcha.create(publickey, idcaptcha, { 1647 theme: 'white', 1648 tabindex: 0, 1649 callback: function () { 1650 $(form).find(".form-captcha").removeClass("error"); 1651 $(form).find(".form-captcha #recaptcha_area").addClass("controls"); 1652 $(form).find("#recaptcha_response_field").keypress(function (e) { 1653 if (e.which == 13) { 1654 if ($(form).find("button.next").hasClass("hide")) { 1655 $(form).find("button.jsn-form-submit").click(); 1656 } else { 1657 $(form).find("button.next").click(); 1658 } 1659 return false; 1660 } 1661 }); 1662 } 1663 }); 1664 } 1665 }; 1666 $.callMessageError = function (formname, messageError) { 1667 1668 var self = this; 1669 $.each(messageError, function (key, value) { 1670 1671 if (key != "captcha") {
1672 if (key == "name" || key == "address" || key == "date" || key == "phone" || key == "currency" || key == "password") { 1673 $.each(value, function (i, item) { 1674 $(formname).find("input[name=password\\[" + i + "\\]\\[\\]], input[name=currency\\[" + i + "\\]\\[value\\]], input[name=phone\\[" + i + "\\]\\[default\\]], input[name=phone\\[" + i + "\\]\\[one\\]], input[name=date\\[" + i + "\\]\\[date\\]],input[name=name\\[" + i + "\\]\\[first\\]],input[name=address\\[" + i + "\\]\\[street\\]]").parents(".control-group").addClass("error").find(".controls").append($("<span/>", { 1675 "class": "help-block" 1676 }).append( 1677 $("<span/>", { 1678 "class": "validation-result label label-important", 1679 text: item 1680 }))); 1681 }); 1682 } else if (key != "max-upload") { 1683 if (key == "captcha_2") { 1684 $(formname).find("#jsn-captcha").parents(".control-group").addClass("error").find(".controls").append($("<span/>", { 1685 "class": "help-block" 1686 }).append( 1687 $("<span/>", { 1688 "class": "validation-result label label-important", 1689 text: value 1690 }))); 1691 } else { 1692 if ($(formname).find("#" + key).size()) { 1693 $(formname).find("#" + key).parents(".control-group").addClass("error").find(".controls").append($("<span/>", { 1694 "class": "help-block" 1695 }).append( 1696 $("<span/>", { 1697 "class": "validation-result label label-important", 1698 text: value 1699 }))); 1700 } 1701 } 1702 } else if (key == "max-upload") { 1703 $(formname).find(".message-uniform").html($("<div/>", { 1704 "class": "alert alert-error" 1705 }).append(value)); 1706 } 1707 } 1708 else { 1709 $(formname).find(".validation-result").remove(); 1710 1711 $(formname).find(".jsn-uf-grecaptchav2").addClass("error").append($("<span/>", { 1712 "class": "help-block" 1713 }).append( 1714 $("<span/>", { 1715 "class": "validation-result label label-important", 1716 text: value 1717 }))); 1718 } 1719 }); 1720 1721 setTimeout(function () { 1722 var formError = $(formname).find('.error')[0]; 1723 if ($(formError).parents('.jsn-form-content').attr("data-value")) { 1724 $(formname).find('.jsn-form-content').addClass("hide"); 1725 $(formError).parents('.jsn-form-content').removeClass("hide"); 1726 self.checkPage(formname); 1727 } else { 1728 var countPage = $(formname).find('div.jsn-form-content').length; 1729 $(formname).find('div.jsn-form-content')[countPage - 1].removeClass("hide"); 1730 $(formname).find('input, button,textarea').focus(); 1731 } 1732 if ($(formname).find(".error input,.error textarea,.error select").length) { 1733 var fieldFocus = $(formname).find(".error")[0]; 1734 if ($(fieldFocus).find(".blank-required").size()) { 1735 $(fieldFocus).find("input,select,textarea").each(function () { 1736 var val = $(this).val(); 1737 var val2 = val.replace(' ', ''); 1738 if (val2 == '' || val2 == 0) { 1739 $(window).scrollTop($(this).offset().top - 50); 1740 $(this).click(); 1741 return false;
1742 } 1743 }); 1744 } else { 1745 var fieldFocus = $(formname).find(".error input,.error textarea,.error select")[0]; 1746 $(window).scrollTop($(fieldFocus).offset().top - 50); 1747 fieldFocus.click(); 1748 } 1749 } 1750 }, 800); 1751 }; 1752 $.defaultPage = function (formname) { 1753 if (forms.length < 1) { 1754 this.captcha($(formname)); 1755 } 1756 $($(formname).find('div.jsn-form-content')[0]).removeClass("hide"); 1757 this.checkPage(formname); 1758 $(formname).find("#page-loading").addClass("hide"); 1759 forms.push(formname); 1760 }; 1761 $.checkPage = function (formname) { 1762 if ($(formname).width() > 0 && $(formname).size() > 0) { 1763 $(formname).find('div.jsn-form-content').each(function (i) { 1764 if (!$(this).hasClass("hide")) { 1765 if ($(this).next().attr("data-value")) { 1766 $(formname).find(".form-actions .next").removeClass("hide"); 1767 } else { 1768 $(formname).find(".form-actions .next").addClass("hide"); 1769 } 1770 if ($(this).prev().attr("data-value")) { 1771 $(formname).find(".form-actions .prev").removeClass("hide"); 1772 } else { 1773 $(formname).find(".form-actions .prev").addClass("hide"); 1774 } 1775 if (i + 1 == $(formname).find('div.jsn-form-content').length) { 1776 $(formname).find(".form-actions .next").addClass("hide"); 1777 $(formname).find(".form-actions .jsn-form-submit").removeClass("hide"); 1778 $(formname).find(".form-actions .reset").removeClass("hide"); 1779 1780 } else { 1781 $(formname).find(".form-actions .next").removeClass("hide"); 1782 $(formname).find(".form-actions .jsn-form-submit").addClass("hide"); 1783 $(formname).find(".form-actions .reset").addClass("hide"); 1784 } 1785 $(this).find(".content-google-maps").each(function () { 1786 $(this).find('.google_maps').width($(this).attr("data-width")); 1787 $(this).find('.google_maps').height($(this).attr("data-height")); 1788 var dataValue = $(this).attr("data-value"); 1789 var dataMarker = $(this).attr("data-marker"); 1790 if (dataValue) { 1791 var gmapOptions = $.evalJSON(dataValue); 1792 if (dataMarker) { 1793 var gmapMarker = $.evalJSON(dataMarker); 1794 } 1795 if (!gmapOptions.center.nb && gmapOptions.center.lat) { 1796 gmapOptions.center.nb = gmapOptions.center.lat; 1797 } 1798 if (!gmapOptions.center.ob && gmapOptions.center.lng) { 1799 gmapOptions.center.ob = gmapOptions.center.lng; 1800 } 1801 $(this).find('.google_maps').gmap({ 1802 'zoom': gmapOptions.zoom, 1803 'mapTypeId': gmapOptions.mapTypeId, 1804 'center': gmapOptions.center.nb + ',' + gmapOptions.center.ob, 1805 'disableDefaultUI': false, 1806 'callback': function (map) { 1807 var self = this; 1808 self.set('inforWindow', function (marker, val) { 1809 var descriptions = val.descriptions; 1810 var content = '<div class="thumbnail">'; 1811 if (val.images) { 1812 content += '<img src="' + val.images + '">'; 1813 } 1814 content += '<div class="caption">'; 1815 if (val.title) { 1816 content += '<h4>' + val.title + '</h4>'; 1817 } 1818 if (descriptions) { 1819 content += '<p>' + descriptions.replace(new RegExp('\n', 'g'), "<br/>") + '</p>'; 1820 } 1821 if (val.link) { 1822 content += '<p><a target="_blank" href="' + val.link + '">more info</a></p>'; 1823 } 1824 content += '</div></div>'; 1825 self.openInfoWindow({'content': content}, marker); 1826 }); 1827 self.get('map').setOptions({streetViewControl: false}); 1828 if (gmapMarker) { 1829 $.each(gmapMarker, function (i, val) { 1830 1831 var position = $.evalJSON(val.position); 1832 if (position) { 1833 if (!position.nb && position.lb) { 1834 position.nb = position.lb; 1835 } 1836 if (!position.ob && position.mb) { 1837 position.ob = position.mb; 1838 } 1839 self.addMarker({ 1840 'position': position.nb + "," + position.ob, 1841 'draggable': false, 1842 'bounds': false 1843 }, function (map, marker) { 1844 if (val.open == "true") { 1845 self.get('inforWindow')(marker, val); 1846 } 1847 if (val.title) { 1848 marker.setTitle(val.title); 1849 } 1850 }).xclick(function (event) { 1851 self.get('inforWindow')(this, val); 1852 }) 1853 } 1854 }); 1855 } 1856 setTimeout(function () { 1857 1858 self.get('map').setCenter(self._latLng(gmapOptions.center.nb + ',' + gmapOptions.center.ob)); 1859 self.get('map').setZoom(gmapOptions.zoom); 1860 self.get('map').setMapTypeId(gmapOptions.mapTypeId); 1861 }, 1000); 1862 } 1863 }); 1864 1865 } 1866 }); 1867 } 1868 }); 1869 } 1870 1871 }; 1872 $.actionPage = function (formname) { 1873 var self = this; 1874 $(formname).find('div.jsn-form-content').each(function () { 1875 if (!$(this).hasClass("hide")) { 1876 $('html, body').animate({scrollTop: $(this).offset().top - 0}, 200); 1877 $(this).find('input').each(function () { 1878 $(this).first().focus(); 1879 return false;
1880 }); 1881 self.checkPage(formname); 1882 } 1883 }); 1884 }, 1885 $.nextpaginationPage = function (formname) { 1886 var self = this; 1887 $(formname).find('div.jsn-form-content').each(function () { 1888 if (!$(this).hasClass("hide")) { 1889 $(this).addClass("hide"); 1890 $(this).next().removeClass("hide"); 1891 return false; 1892 } 1893 }); 1894 self.actionPage(formname); 1895 }; 1896 $.prevpaginationPage = function (formname) { 1897 var self = this; 1898 $(formname).find('div.jsn-form-content').each(function () { 1899 if (!$(this).hasClass("hide")) { 1900 $(this).addClass("hide"); 1901 $(this).prev().removeClass("hide"); 1902 return false; 1903 } 1904 }); 1905 self.actionPage(formname); 1906 }; 1907 $.checkValidateForm = function (_this, type, element, onchange) { 1908 1909 try { 1910 if ($("#select2-drop-mask").length) { 1911 $("#select2-drop-mask").hide(); 1912 } 1913 } 1914 catch (err) { 1915 1916 } 1917 var check = 0; 1918 var $inputBlank = $(_this).find(".blank-required"); 1919 var self = this; 1920 $inputBlank.each(function () { 1921 if ($(this).parents(".control-group").css("display") != "none") { 1922 var checkBlank = true; 1923 $(this).find(".help-blank").remove(); 1924 $(this).parent().removeClass("error"); 1925 $(this).find("input,select,textarea").each(function () { 1926 var val = $(this).val(); 1927 var val2 = val.replace(' ', ''); 1928 if ($(this).attr("type") == "text") { 1929 if (val2 == '') { 1930 checkBlank = false; 1931 } 1932 } else { 1933 if (val2 == '') { 1934 checkBlank = false; 1935 } 1936 } 1937 }); 1938 if (!checkBlank) { 1939 $(this).parent().addClass("error"); 1940 $(this).append( 1941 $("<span/>", { 1942 "class": "help-block help-blank" 1943 }).append( 1944 $("<span/>", { 1945 "class": "validation-result label label-important", 1946 text: lang['JSN_UNIFORM_CONFIRM_FIELD_CANNOT_EMPTY'] 1947 }))); 1948 check++; 1949 } 1950 } else { 1951 $(this).removeClass('blank-required'); 1952 $(this).find("input,select,textarea").each(function () { 1953 $(this).prop('disabled', true); 1954 }); 1955 } 1956 }); 1957 var groupBlank = $(_this).find(".group-blank-required"); 1958 groupBlank.each(function () { 1959 if ($(this).parents(".control-group").css("display") != "none") { 1960 var checkGroupBlank = false; 1961 $(this).find(".help-blank").remove(); 1962 $(this).parent().removeClass("error"); 1963 $(this).find("input").each(function () { 1964 var val = $(this).val(); 1965 var val2 = val.replace(' ', ''); 1966 if (val2 != '') { 1967 checkGroupBlank = true; 1968 } 1969 }); 1970 if (!checkGroupBlank) { 1971 $(this).parents(".control-group").addClass("error"); 1972 $(this).append( 1973 $("<span/>", { 1974 "class": "help-block help-blank" 1975 }).append( 1976 $("<span/>", { 1977 "class": "validation-result label label-important", 1978 text: lang['JSN_UNIFORM_CONFIRM_FIELD_CANNOT_EMPTY'] 1979 }))); 1980 check++; 1981 } 1982 } 1983 }); 1984 var $dropdown = $(_this).find(".dropdown-required"); 1985 $dropdown.each(function () { 1986 if ($(this).parents(".control-group").css("display") != "none") { 1987 $(this).find(".help-dropdown").remove(); 1988 $(this).parent().removeClass("error"); 1989 if ($(this).find("select").val() == "") { 1990 $(this).parent().addClass("error"); 1991 $(this).append( 1992 $("<span/>", { 1993 "class": "help-block help-dropdown" 1994 }).append( 1995 $("<span/>", { 1996 "class": "validation-result label label-important", 1997 text: lang['JSN_UNIFORM_CONFIRM_FIELD_CANNOT_EMPTY'] 1998 }))) 1999 check++; 2000 } else if ($(this).find("select option:selected").hasClass('lbl-allowOther')) { 2001 var selfRadio = this; 2002 2003 $(this).find(".jsn-dropdown-Others").focusout(function () { 2004 var checkRadio = false;
2005 var valchoices = $(selfRadio).find(".jsn-dropdown-Others").val(); 2006 var valchoices2 = valchoices.replace(' ', ''); 2007 if (valchoices2 == '') { 2008 checkRadio = true; 2009 } 2010 if (checkRadio) { 2011 $(selfRadio).find(".help-dropdown").remove(); 2012 $(selfRadio).parent().addClass("error"); 2013 $(selfRadio).append( 2014 $("<span/>", { 2015 "class": "help-block help-dropdown" 2016 }).append( 2017 $("<span/>", { 2018 "class": "validation-result label label-important", 2019 text: lang['JSN_UNIFORM_CONFIRM_FIELD_CANNOT_EMPTY'] 2020 }))) 2021 check++; 2022 } 2023 }); 2024 if (type != "detailInput") { 2025 $(this).find(".jsn-dropdown-Others").trigger("focusout"); 2026 } 2027 } 2028 } 2029 }); 2030 var $inputEmailNull = $(_this).find("input.email"); 2031 $inputEmailNull.each(function () { 2032 if ($(this).parents(".control-group").css("display") != "none") { 2033 var parentEmail = $(this).parents(".control-group"); 2034 $(parentEmail).find(".help-email").remove(); 2035 $(parentEmail).removeClass("error"); 2036 var val = $(this).val(); 2037 var filter = /^(([a-zA-Z0-9\+_\-]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/; 2038 2039 if (!filter.test(val) && $(this).hasClass("email-required")) { 2040 $(parentEmail).addClass("error"); 2041 $(this).parents(".controls").append( 2042 $("<span/>", { 2043 "class": "help-block help-email" 2044 }).append( 2045 $("<span/>", { 2046 "class": "validation-result label label-important", 2047 text: lang['JSN_UNIFORM_CONFIRM_FIELD_INVALID'] 2048 }))); 2049 check++; 2050 } else if (!$(this).hasClass("email-required") && val && !filter.test(val)) { 2051 $(parentEmail).addClass("error"); 2052 $(this).parents(".controls").append( 2053 $("<span/>", { 2054 "class": "help-block help-email" 2055 }).append( 2056 $("<span/>", { 2057 "class": "validation-result label label-important", 2058 text: lang['JSN_UNIFORM_CONFIRM_FIELD_INVALID'] 2059 }))); 2060 check++; 2061 } 2062 if (val && filter.test(val) && $(parentEmail).find(".jsn-email-confirm").hasClass("jsn-email-confirm") && ($(element).hasClass("jsn-email-confirm") || !$(parentEmail).hasClass("ui-state-highlight"))) { 2063 if ($(parentEmail).find(".jsn-email-confirm").val() != $(this).val()) { 2064 $(parentEmail).addClass("error"); 2065 $(this).parents(".controls").append( 2066 $("<span/>", { 2067 "class": "help-block help-email" 2068 }).append( 2069 $("<span/>", { 2070 "class": "validation-result label label-important", 2071 text: lang['JSN_UNIFORM_CONFIRM_FIELD_EMAIL_CONFIRM'] 2072 }))); 2073 check++; 2074 } 2075 } 2076 } 2077 }); 2078 var $inputWebsite = $(_this).find("input.website"); 2079 $inputWebsite.each(function () { 2080 if ($(this).parents(".control-group").css("display") != "none") { 2081 $(this).parent().find(".help-website").remove(); 2082 $(this).parent().parent().removeClass("error"); 2083 var val = $(this).val(); 2084 var regexp = /^(https?:\/\/|ftp:\/\/|www([0-9]{0,9})?\.)?(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i; 2085 if ((!regexp.test(val) && $(this).hasClass("website-required")) || (val != "" && val != "http://" && val != "https://" && !$(this).hasClass("website-required") && !regexp.test(val))) { 2086 $(this).parent().parent().addClass("error"); 2087 $(this).after( 2088 $("<span/>", { 2089 "class": "help-block help-website" 2090 }).append( 2091 $("<span/>", { 2092 "class": "validation-result label label-important", 2093 text: lang['JSN_UNIFORM_CONFIRM_FIELD_INVALID'] 2094 }))); 2095 check++; 2096 } 2097 } 2098 }); 2099 var $inputInteger = $(_this).find("input.integer-required"); 2100 $inputInteger.each(function () { 2101 if ($(this).parents(".control-group").css("display") != "none") { 2102 $(this).parent().find(".help-integer").remove(); 2103 $(this).parent().parent().removeClass("error"); 2104 var val = $(this).val(); 2105 var regexp = /^[0-9]+$/; 2106 if (!regexp.test(val)) { 2107 $(this).parent().parent().addClass("error"); 2108 $(this).parent().append( 2109 $("<span/>", { 2110 "class": "help-block help-integer" 2111 }).append( 2112 $("<span/>", { 2113 "class": "validation-result label label-important", 2114 text: lang['JSN_UNIFORM_CONFIRM_FIELD_INVALID'] 2115 }))); 2116 check++; 2117 } 2118 } 2119 }); 2120 if (onchange != "onchange") { 2121 var $valueLimitPassword = $(_this).find(".limit-password-required"); 2122 $valueLimitPassword.each(function () { 2123 if ($(this).parents(".control-group").css("display") != "none") { 2124 var checkval = false;
2125 if ($(this).hasClass("group-blank-required")) { 2126 $(this).find("input").each(function () { 2127 var val = $(this).val(); 2128 var val2 = val.replace(' ', ''); 2129 if (val2 == '') { 2130 checkval = true; 2131 } 2132 }); 2133 } 2134 if (!checkval) { 2135 var inputPassword = $(this).find("input"); 2136 var limitSettings = $.evalJSON($(inputPassword).attr("data-limit")); 2137 var checkPassword = false; 2138 if ($(this).find("input").length > 1) { 2139 $(this).parent().removeClass("error"); 2140 $(this).find(".help-limit").remove(); 2141 $(this).find("input").each(function () { 2142 if ($(this).val().length < limitSettings.limitMin) { 2143 checkPassword = true; 2144 } else if ($(this).val().length > limitSettings.limitMax) { 2145 checkPassword = true; 2146 } 2147 }); 2148 } else { 2149 if ($(inputPassword).val() != '' || $(inputPassword).val() != 0) { 2150 $(inputPassword).parent().find(".help-limit").remove(); 2151 $(inputPassword).parent().parent().removeClass("error"); 2152 if ($(inputPassword).val().length < limitSettings.limitMin) { 2153 checkPassword = true; 2154 } else if ($(inputPassword).val().length > limitSettings.limitMax) { 2155 checkPassword = true; 2156 } 2157 } 2158 } 2159 2160 if (checkPassword) { 2161 check++; 2162 var textLang = lang['JSN_UNIFORM_CONFIRM_FIELD_PASSWORD_MIN_MAX_CHARACTER']; 2163 textLang = textLang.replace("%mi%", limitSettings.limitMin); 2164 textLang = textLang.replace("%mx%", limitSettings.limitMax); 2165 $(this).parent().addClass("error"); 2166 $(this).append( 2167 $("<span/>", { 2168 "class": "help-block help-limit" 2169 }).append( 2170 $("<span/>", { 2171 "class": "validation-result label label-important", 2172 text: textLang 2173 }))); 2174 } 2175 } 2176 } 2177 }); 2178 } 2179 var $valueLimit = $(_this).find(".limit-required"); 2180 $valueLimit.each(function () { 2181 if ($(this).parents(".control-group").css("display") != "none") { 2182 var limitSettings = $.evalJSON($(this).attr("data-limit")); 2183 var checkval = false; 2184 if ($(this).parent().hasClass("group-blank-required")) { 2185 $(this).find("input").each(function () { 2186 var val = $(this).val(); 2187 var val2 = val.replace(' ', ''); 2188 if (val2 == '') { 2189 checkval = true; 2190 } 2191 }); 2192 } 2193 if ($(this).parent().hasClass("blank-required")) { 2194 var val = $(this).val(); 2195 var val2 = val.replace(' ', ''); 2196 if ($(this).attr("type") == "text") { 2197 if (val2 == '') { 2198 checkval = true; 2199 } 2200 } else { 2201 if (val2 == '' || val2 == 0) { 2202 checkval = true; 2203 } 2204 } 2205 } 2206 if (!checkval) { 2207 $(this).parent().find(".help-limit").remove(); 2208 $(this).parent().parent().removeClass("error"); 2209 var id = $(this).attr('id') 2210 if (limitSettings.limitType == "Words") { 2211 var lengthValue = $.trim($(this).val()).split(/[\s]+/); 2212 if (lengthValue.length < limitSettings.limitMin) { 2213 check++; 2214 $(this).parent().parent().addClass("error"); 2215 $('#words-limit_' + id).append( 2216 $("<div />", {"class": "pull-left"}).append( 2217 $("<span/>", { 2218 "class": "help-block help-limit" 2219 }).append( 2220 $("<span/>", { 2221 "class": "validation-result label label-important", 2222 text: lang['JSN_UNIFORM_CONFIRM_FIELD_MIN_LENGTH'] + " " + limitSettings.limitMin + " " + lang['JSN_UNIFORM_WORDS'] 2223 })))); 2224 } else if (lengthValue.length > limitSettings.limitMax) { 2225 check++; 2226 $(this).parent().parent().addClass("error"); 2227 $('#words-limit_' + id).append( 2228 $("<div />", {"class": "pull-left"}).append( 2229 $("<span/>", { 2230 "class": "help-block help-limit" 2231 }).append( 2232 $("<span/>", { 2233 "class": "validation-result label label-important", 2234 text: lang['JSN_UNIFORM_CONFIRM_FIELD_MAX_LENGTH'] + " " + limitSettings.limitMax + " " + lang['JSN_UNIFORM_WORDS'] 2235 })))); 2236 } 2237 } else { 2238 if ($(this).val().length < limitSettings.limitMin) { 2239 check++; 2240 $(this).parent().parent().addClass("error"); 2241 $('#characters-limit_' + id).append( 2242 $("<div />", {"class": "pull-left"}).append( 2243 $("<span/>", { 2244 "class": "help-block help-limit" 2245 }).append( 2246 $("<span/>", { 2247 "class": "validation-result label label-important", 2248 text: lang['JSN_UNIFORM_CONFIRM_FIELD_MIN_LENGTH'] + " " + limitSettings.limitMin + " " + lang['JSN_UNIFORM_CHARACTERS'] 2249 })))); 2250 } else if ($(this).val().length > limitSettings.limitMax) { 2251 check++; 2252 $(this).parent().parent().addClass("error"); 2253 $('#characters-limit_' + id).append( 2254 $("<div />", {"class": "pull-left"}).append( 2255 $("<span/>", { 2256 "class": "help-block help-limit" 2257 }).append( 2258 $("<span/>", { 2259 "class": "validation-result label label-important", 2260 text: lang['JSN_UNIFORM_CONFIRM_FIELD_MAX_LENGTH'] + " " + limitSettings.limitMax + " " + lang['JSN_UNIFORM_CHARACTERS'] 2261 })))); 2262 } 2263 } 2264 2265 } 2266 } 2267 }); 2268 2269 var $valueNumberLimit = $(_this).find(".number-limit-required"); 2270 $valueNumberLimit.each(function () { 2271 if ($(this).parents(".control-group").css("display") != "none") { 2272 var checkval = false;
2273 if ($(this).hasClass("integer-required")) { 2274 var val = $(this).val(); 2275 var regexp = /^[0-9]+$/; 2276 if (!regexp.test(val)) { 2277 checkval = true; 2278 } 2279 } 2280 if (!checkval) { 2281 var limitNumberSettings = $.evalJSON($(this).attr("data-limit")); 2282 $(this).parent().find(".help-limit").remove(); 2283 $(this).parent().parent().removeClass("error"); 2284 if ($(this).val() != '' || $(this).val() != 0) { 2285 if (parseInt($(this).val(), 10) < limitNumberSettings.limitMin) { 2286 check++; 2287 $(this).parent().parent().addClass("error"); 2288 $(this).parent().append( 2289 $("<span/>", { 2290 "class": "help-block help-limit" 2291 }).append( 2292 $("<span/>", { 2293 "class": "validation-result label label-important", 2294 text: lang['JSN_UNIFORM_CONFIRM_FIELD_MIN_NUMBER'] + " " + limitNumberSettings.limitMin 2295 }))); 2296 } else if (parseInt($(this).val(), 10) > limitNumberSettings.limitMax) { 2297 check++; 2298 $(this).parent().parent().addClass("error"); 2299 $(this).parent().append( 2300 $("<span/>", { 2301 "class": "help-block help-limit" 2302 }).append( 2303 $("<span/>", { 2304 "class": "validation-result label label-important", 2305 text: lang['JSN_UNIFORM_CONFIRM_FIELD_MAX_NUMBER'] + " " + limitNumberSettings.limitMax 2306 }))); 2307 } 2308 else if (parseInt($(this).val(), 10) == limitNumberSettings.limitMax) { 2309 if (parseInt($('.number-decimal').val(), 10) > 0) { 2310 check++; 2311 $(this).parent().parent().addClass("error"); 2312 $(this).parent().append( 2313 $("<span/>", { 2314 "class": "help-block help-limit" 2315 }).append( 2316 $("<span/>", { 2317 "class": "validation-result label label-important", 2318 text: lang['JSN_UNIFORM_CONFIRM_FIELD_MAX_NUMBER'] + " " + limitNumberSettings.limitMax 2319 }))); 2320 } 2321 } 2322 } 2323 2324 } 2325 } 2326 }); 2327 2328 var $list = $(_this).find(".list-required"); 2329 $list.each(function () { 2330 if ($(this).parents(".control-group").css("display") != "none") { 2331 $(this).parent().find(".help-list").remove(); 2332 $(this).parent().removeClass("error"); 2333 if (!$(this).find("select").val()) { 2334 $(this).parent().addClass("error"); 2335 $(this).find("select").after( 2336 $("<span/>", { 2337 "class": "help-block help-list" 2338 }).append( 2339 $("<span/>", { 2340 "class": "validation-result label label-important", 2341 text: lang['JSN_UNIFORM_CONFIRM_FIELD_INVALID'] 2342 }))); 2343 check++; 2344 } 2345 } 2346 }); 2347 var $inputchoices = $(_this).find(".choices-required"); 2348 $inputchoices.each(function () { 2349 if ($(this).parents(".control-group").css("display") != "none") { 2350 $(this).find(".help-choices").remove(); 2351 $(this).parent().removeClass("error"); 2352 if ($(this).find("input[type=radio]:checked").length < 1) { 2353 $(this).parent().addClass("error"); 2354 $(this).append( 2355 $("<span/>", { 2356 "class": "help-block help-choices" 2357 }).append( 2358 $("<span/>", { 2359 "class": "validation-result label label-important", 2360 text: lang['JSN_UNIFORM_CONFIRM_FIELD_CANNOT_EMPTY'] 2361 }))) 2362 check++; 2363 } else if ($(this).find("input[type=radio]:checked").hasClass('allowOther') && $(this).find("input[type=radio]:checked").length == 1) { 2364 var selfRadio = this; 2365 $(this).find(".jsn-value-Others").focusout(function () { 2366 var checkRadio = false;
2367 var valchoices = $(selfRadio).find(".jsn-value-Others").val(); 2368 var valchoices2 = valchoices.replace(' ', ''); 2369 if (valchoices2 == '') { 2370 checkRadio = true; 2371 } 2372 if (checkRadio) { 2373 $(selfRadio).find(".help-choices").remove(); 2374 $(selfRadio).parent().addClass("error"); 2375 $(selfRadio).append( 2376 $("<span/>", { 2377 "class": "help-block help-choices" 2378 }).append( 2379 $("<span/>", { 2380 "class": "validation-result label label-important", 2381 text: lang['JSN_UNIFORM_CONFIRM_FIELD_CANNOT_EMPTY'] 2382 }))) 2383 check++; 2384 } 2385 }); 2386 if (type != "detailInput") { 2387 $(this).find(".jsn-value-Others").trigger("focusout"); 2388 } 2389 } 2390 } 2391 }); 2392 2393 //if (onchange != "onchange") { 2394 var $inputlikert = $(_this).find(".likert-required"); 2395 $inputlikert.each(function () { 2396 var $column = $(this).find("td.likert_data_hidden input[type=hidden]").val(); 2397 var likertRequiredCheck = 1; 2398 if ($column) { 2399 $column = $.evalJSON($column); 2400 likertRequiredCheck = $column.rows.length; 2401 } 2402 if ($(this).parents(".control-group").css("display") != "none") { 2403 $(this).find(".help-likert").remove(); 2404 $(this).parents(".control-group").removeClass("error"); 2405 //$(this).find("tbody tr").each(function () { 2406 if ($(this).find("input[type=radio]:checked").length < likertRequiredCheck) { 2407 $(this).parents(".control-group").addClass("error"); 2408 if (!$(this).parents(".controls").find(".help-likert").size()) { 2409 $(this).parents(".controls").append( 2410 $("<span/>", { 2411 "class": "help-block help-likert" 2412 }).append( 2413 $("<span/>", { 2414 "class": "validation-result label label-important", 2415 text: lang['JSN_UNIFORM_CONFIRM_FIELD_CANNOT_EMPTY'] 2416 }))) 2417 } 2418 check++; 2419 } 2420 else { 2421 $(this).parents(".control-group").removeClass("error"); 2422 $(this).parents(".control-group").find(".help-likert").remove() 2423 } 2424 //}) 2425 } 2426 }); 2427 //} 2428 2429 var $inputCheckbox = $(_this).find(".checkbox-required"); 2430 $inputCheckbox.each(function () { 2431 if ($(this).parents(".control-group").css("display") != "none") { 2432 $(this).find(".help-checkbox").remove(); 2433 $(this).parent().parent().removeClass("error"); 2434 if ($(this).find("input[type=checkbox]:checked").length < 1) { 2435 $(this).parent().parent().addClass("error"); 2436 $(this).append( 2437 $("<span/>", { 2438 "class": "help-block help-checkbox" 2439 }).append( 2440 $("<span/>", { 2441 "class": "validation-result label label-important", 2442 text: lang['JSN_UNIFORM_CONFIRM_FIELD_CANNOT_EMPTY'] 2443 }))) 2444 check++; 2445 } else if ($(this).find("input[type=checkbox]:checked").length == 1 && $(this).find("input[type=checkbox]:checked").hasClass('allowOther')) { 2446 var selfCheckbox = this; 2447 $(this).find(".jsn-value-Others").focusout(function () { 2448 var checkCheckbox = false;
2449 var valchoices = $(selfCheckbox).find(".jsn-value-Others").val(); 2450 var valchoices2 = valchoices.replace(' ', ''); 2451 if (valchoices2 == '') { 2452 checkCheckbox = true; 2453 } 2454 if (checkCheckbox) { 2455 $(selfCheckbox).find(".help-checkbox").remove(); 2456 $(selfCheckbox).parent().parent().addClass("error"); 2457 $(selfCheckbox).append( 2458 $("<span/>", { 2459 "class": "help-block help-checkbox" 2460 }).append( 2461 $("<span/>", { 2462 "class": "validation-result label label-important", 2463 text: lang['JSN_UNIFORM_CONFIRM_FIELD_CANNOT_EMPTY'] 2464 }))) 2465 check++; 2466 } 2467 }); 2468 if (type != "detailInput") { 2469 $(this).find(".jsn-value-Others").trigger("focusout"); 2470 } 2471 } 2472 } 2473 }); 2474 if (check > 0 && type != "detailInput") { 2475 var fieldFocus = $(_this).find(".error")[0]; 2476 if ($(fieldFocus).find(".blank-required").size()) { 2477 $(fieldFocus).find("input,select,textarea").each(function () { 2478 var val = $(this).val(); 2479 var val2 = val.replace(' ', ''); 2480 if (val2 == '' || val2 == 0) { 2481 $(window).scrollTop($(this).offset().top - 50); 2482 $(this).focus(); 2483 if ($(this).attr('type') != 'file') { 2484 $(this).click(); 2485 } 2486 return false; 2487 } 2488 }) 2489 } 2490 else if ($(fieldFocus).find(".likert-required").size()) { 2491 var fieldFocus = $(_this).find(".error input")[1]; 2492 $(fieldFocus).focus(); 2493 } 2494 else { 2495 var fieldFocus = $(_this).find(".error input,.error textarea,.error select")[0]; 2496 $(window).scrollTop($(fieldFocus).offset().top - 50); 2497 $(fieldFocus).focus(); 2498 } 2499 return false; 2500 } 2501 if (check > 0 && type == "detailInput") { 2502 return false; 2503 } 2504 return true; 2505 }; 2506 $.getBoxStyle = function (element) { 2507 2508 var style = { 2509 width: element.width(), 2510 height: element.height(), 2511 outerHeight: element.outerHeight(), 2512 outerWidth: element.outerWidth(), 2513 offset: element.offset(), 2514 margin: { 2515 left: parseInt(element.css('margin-left')), 2516 right: parseInt(element.css('margin-right')), 2517 top: parseInt(element.css('margin-top')), 2518 bottom: parseInt(element.css('margin-bottom')) 2519 }, 2520 padding: { 2521 left: parseInt(element.css('padding-left')), 2522 right: parseInt(element.css('padding-right')), 2523 top: parseInt(element.css('padding-top')), 2524 bottom: parseInt(element.css('padding-bottom')) 2525 } 2526 }; 2527 return style; 2528 }; 2529 2530 function jsnLoadForm($) { 2531 $(".jsn-uniform").each(function () { 2532 if ($(this).attr("data-form-name")) { 2533 var getLang = $(this).find("span.jsn-language").attr("data-value"); 2534 baseUrl = $(this).find("span.jsn-base-url").attr("data-value"); 2535 if (getLang) { 2536 lang = $.evalJSON(getLang); 2537 } 2538 $.initJSNForm($(this).find("form")); 2539 } 2540 }); 2541 } 2542 2543 function JSNUFKeepSessionAlive(path) { 2544 var req = false;
2545 if (window.XMLHttpRequest && !(window.ActiveXObject)) { 2546 try { 2547 req = new XMLHttpRequest(); 2548 } 2549 catch (e) { 2550 req = false; 2551 } 2552 } 2553 else if (window.ActiveXObject) { 2554 try { 2555 req = new ActiveXObject("Msxml2.XMLHTTP"); 2556 } 2557 catch (e) { 2558 try { 2559 req = ActiveXObject("Microsoft.XMLHTTP"); 2560 } 2561 catch (e) { 2562 req = false 2563 } 2564 } 2565 } 2566 if (req) { 2567 req.onreadystatechange = function () { 2568 // only if req show loaded 2569 if (req.readyState == 4) { 2570 // only if OK 2571 if (req.status == 200) { 2572 2573 } else { 2574 2575 } 2576 } 2577 } 2578 req.open("HEAD", path, true); 2579 req.send(); 2580 } 2581 } 2582 jQuery(document).ready(jsnLoadForm($)); 2583 }); 2584})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.