Guest User

Untitled

a guest
Oct 5th, 2013
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.12 KB | None | 0 0
  1.  
  2. var FormField = {
  3. 'GetField':
  4. function(fieldId)
  5. {
  6. if (isNaN(fieldId) && typeof(fieldId) == 'object') {
  7. fieldId = parseInt(($(fieldId).attr('id')).substr(10));
  8. }
  9.  
  10. if (fieldId == '' || isNaN(fieldId)) {
  11. return false;
  12. }
  13.  
  14. var field = $('#FormField_' + fieldId);
  15. var length = $(field).length;
  16.  
  17. if (length == 0) {
  18. return false;
  19. } else if (length > 1) {
  20. field = $(field).get(length-1);
  21. }
  22.  
  23. return $(field);
  24. },
  25.  
  26. 'GetFieldByPrivateId':
  27. function(formId, privateId)
  28. {
  29. if (isNaN(formId) || formId < 1 || privateId == '') {
  30. return false;
  31. }
  32.  
  33. var field = $('.FormFieldPrivateId[value=' + privateId + ']').parent('*:has(.FormFieldFormId[value=' + formId + '])').find('.FormField');
  34. if (!field.length) {
  35. return false;
  36. }
  37.  
  38. return field[0];
  39. },
  40.  
  41. 'GetFieldByLabel':
  42. function(formId, label)
  43. {
  44. if (isNaN(formId) || formId < 1 || label == '') {
  45. return false;
  46. }
  47.  
  48. var formfield = false;
  49.  
  50. $('.FormField').each(
  51. function()
  52. {
  53. if (FormField.GetFieldFormId(this) == formId && FormField.GetLabel(this) == label) {
  54. formfield = $(this);
  55. }
  56. }
  57. );
  58.  
  59. return formfield;
  60. },
  61.  
  62. 'GetFieldType':
  63. function(field)
  64. {
  65. var dd = FormField.GetFieldDefinitionData(field);
  66.  
  67. if (!dd) {
  68. return '';
  69. }
  70.  
  71. return $('.FormFieldType', dd).val();
  72. },
  73.  
  74. 'GetFieldId':
  75. function(field)
  76. {
  77. var dd = FormField.GetFieldDefinitionData(field);
  78.  
  79. if (!dd) {
  80. return '';
  81. }
  82.  
  83. return $('.FormFieldId', dd).val();
  84. },
  85.  
  86. 'GetFieldFormId':
  87. function(field)
  88. {
  89. var dd = FormField.GetFieldDefinitionData(field);
  90.  
  91. if (!dd) {
  92. return '';
  93. }
  94.  
  95. return $('.FormFieldFormId', dd).val();
  96. },
  97.  
  98. 'GetSelectorChoosePrefix':
  99. function(field)
  100. {
  101. var dd = FormField.GetFieldDefinitionData(field);
  102.  
  103. if (!dd) {
  104. return '';
  105. }
  106.  
  107. if ($('.FormFieldChoosePrefix', dd).length) {
  108. return $('.FormFieldChoosePrefix', dd).val();
  109. }
  110.  
  111. return '';
  112. },
  113.  
  114. 'GetFieldPrivateId':
  115. function(field)
  116. {
  117. var dd = FormField.GetFieldDefinitionData(field);
  118.  
  119. if (!dd) {
  120. return '';
  121. }
  122.  
  123. return $('.FormFieldPrivateId', dd).val();
  124. },
  125.  
  126. 'GetFieldDefinitionData':
  127. function(field)
  128. {
  129. // Try by definition data first
  130. var dd = $(field).parent('dd');
  131.  
  132. // If nothing, fall back to the new form layout
  133. if (!dd.length) {
  134. dd = $(field).parent('div.value');
  135. }
  136.  
  137. if (!dd.length) {
  138. return false;
  139. }
  140.  
  141. return dd;
  142. },
  143.  
  144. 'GetFieldDefinitionTag':
  145. function(field)
  146. {
  147. var dd = FormField.GetFieldDefinitionData(field);
  148. if (!dd) {
  149. return false;
  150. }
  151.  
  152. var dt = dd.prev('dt');
  153.  
  154. // Could be a new form style?
  155. if (!dt.length) {
  156. dt = dd.prev('label');
  157. }
  158.  
  159. if(!dt) {
  160. return false;
  161. }
  162.  
  163. return dt;
  164. },
  165.  
  166. 'GetValue':
  167. function(fieldId)
  168. {
  169. var field = FormField.GetField(fieldId);
  170.  
  171. if (!field) {
  172. return '';
  173. }
  174.  
  175. switch (FormField.GetFieldType(field).toLowerCase()) {
  176. case 'radioselect':
  177. case 'checkboxselect':
  178. var options = [];
  179. $('.FormFieldOption:checked', field).each(function() {
  180. options[options.length] = $(this).val();
  181. });
  182.  
  183. if (options.length == 0) {
  184. if (FormField.GetFieldType(field).toLowerCase() == 'radioselect') {
  185. return '';
  186. } else {
  187. return [];
  188. }
  189. }
  190.  
  191. if (FormField.GetFieldType(field).toLowerCase() == 'radioselect') {
  192. options = options[0];
  193. }
  194.  
  195. return options;
  196. break;
  197.  
  198. case 'datechooser':
  199. var day = $('.FormFieldDay', field).val();
  200. var month = $('.FormFieldMonth', field).val();
  201. var year = $('.FormFieldYear', field).val();
  202.  
  203. if (day == '' || month == '' || year == '') {
  204. return '';
  205. }
  206.  
  207. if (day.length == 1) {
  208. day = '0' + day;
  209. }
  210.  
  211. if (month.length == 1) {
  212. month = '0' + month;
  213. }
  214.  
  215. return year + '-' + month + '-' + day;
  216. break;
  217.  
  218. default:
  219. return $(field).val();
  220. break;
  221. }
  222. },
  223.  
  224. 'GetValues':
  225. function(formIdx, privateOnly)
  226. {
  227. var values = [];
  228.  
  229. if (typeof(privateOnly) == 'undefined' || privateOnly !== true) {
  230. privateOnly = false;
  231. }
  232.  
  233. if (!isNaN(formIdx)) {
  234. formIdx = [formIdx];
  235. }
  236.  
  237. for (var i = formIdx.length; i--;) {
  238. var fieldFormId = formIdx[i];
  239.  
  240. $('.FormFieldFormId[value=' + fieldFormId + ']').parent('dd, div.value').find('.FormField').each(
  241. function()
  242. {
  243. if (privateOnly && FormField.GetFieldPrivateId(this) == '') {
  244. return;
  245. }
  246.  
  247. for (var i=0; i<formIdx.length; i++) {
  248. values[values.length] = {
  249. 'field': $(this),
  250. 'fieldId': FormField.GetFieldId(this),
  251. 'formId': fieldFormId,
  252. 'privateId': FormField.GetFieldPrivateId(this),
  253. 'label': FormField.GetLabel(this),
  254. 'value': FormField.GetValue(this)
  255. };
  256. }
  257. }
  258. );
  259. }
  260.  
  261. return values;
  262. },
  263.  
  264. 'SetValue':
  265. function(fieldId, val, options)
  266. {
  267. var field = FormField.GetField(fieldId);
  268.  
  269. if (!field) {
  270. return false;
  271. }
  272.  
  273. if (typeof(options) == 'undefined') {
  274. options = {};
  275. }
  276.  
  277. switch (FormField.GetFieldType(field).toLowerCase()) {
  278. case 'selectortext':
  279. if (typeof(options.display) == 'undefined') {
  280. options.display = 'select';
  281. }
  282. if (options.display != field.get(0).tagName.toLowerCase()) {
  283. if (options.display == 'select') {
  284. var input = $('<select />');
  285. } else {
  286. var input = $('<input type="text" />');
  287. }
  288.  
  289. $(input).attr('name', $(field).attr('name'));
  290. $(input).attr('class', $(field).attr('class'));
  291. $(input).attr('id', $(field).attr('id'));
  292. $(input).attr('style', $(field).attr('style'));
  293. $(field).replaceWith(input);
  294.  
  295. if (options.display !== 'select') {
  296. var fieldId = FormField.GetFieldId(fieldId);
  297. var formId = FormField.GetFieldFormId(fieldId);
  298.  
  299. $(input).after('<input type="hidden" name="FormFieldIsText[' + formId + '][' + fieldId + ']" value="1" />');
  300. }
  301. }
  302. else {
  303. var input = field;
  304. }
  305.  
  306. if (typeof(options.options) !== 'undefined') {
  307. FormField.SetOptions(fieldId, options.options);
  308. }
  309.  
  310. $(input).val(val);
  311.  
  312. break;
  313.  
  314. case 'radioselect':
  315. case 'checkboxselect':
  316. if (typeof(options.options) !== 'undefined') {
  317. FormField.SetOptions(fieldId, options.options);
  318. }
  319.  
  320. if (typeof(val) == 'string') {
  321. val = [val];
  322. } else if (FormField.GetFieldType(field).toLowerCase() == 'radioselect' && val.length > 1) {
  323. val.length = 1;
  324. }
  325.  
  326. $('.FormFieldOption', field).each(
  327. function()
  328. {
  329. var checked = false;
  330.  
  331. for (var i=0; i<val.length; i++) {
  332. if ($(this).attr('value') == val[i]) {
  333. checked = true;
  334. break;
  335. }
  336. }
  337. $(this).attr('checked', checked);
  338. }
  339. );
  340.  
  341. break;
  342.  
  343. case 'datechooser':
  344. if (val.indexOf('-') == -1) {
  345. return false;
  346. }
  347.  
  348. var tmpDate = val.split('-');
  349.  
  350. if (tmpDate.length !== 3) {
  351. return false;
  352. }
  353.  
  354. var year = parseInt(tmpDate[0], 10);
  355. var month = parseInt(tmpDate[1], 10);
  356. var day = parseInt(tmpDate[2], 10);
  357.  
  358. if (isNaN(day) || isNaN(month) || isNaN(year)) {
  359. return false;
  360. }
  361.  
  362. $('.FormFieldYear', field).val(year);
  363. $('.FormFieldMonth', field).val(month);
  364. $('.FormFieldDay', field).val(day);
  365.  
  366. break;
  367.  
  368. default:
  369. if (FormField.GetFieldType(field).toLowerCase() == 'singleselect' && typeof(options.options) !== 'undefined') {
  370. FormField.SetOptions(fieldId, options.options);
  371. }
  372.  
  373. $(field).val(val);
  374. }
  375. },
  376.  
  377. 'SetValueByIndex':
  378. function(fieldId, indexes, checked)
  379. {
  380. var field = FormField.GetField(fieldId);
  381.  
  382. if (!field) {
  383. return false;
  384. }
  385.  
  386. if (FormField.GetFieldType(field).toLowerCase() !== 'checkboxselect' || FormField.GetFieldType(field).toLowerCase() == 'radioselect') {
  387. return true;
  388. }
  389.  
  390. if (typeof(indexes) !== 'object') {
  391. indexes = [indexes];
  392. }
  393.  
  394. if (indexes.length == 0) {
  395. return true;
  396. }
  397.  
  398. if (typeof(checked) == 'undefined') {
  399. checked = true;
  400. }
  401.  
  402. if (checked !== true) {
  403. checked = false;
  404. } else {
  405. checked = true;
  406. }
  407.  
  408. var i=0;
  409.  
  410. $('input', field).each(
  411. function()
  412. {
  413. for (var n=0; n<indexes.length; n++) {
  414. if (indexes[n] == i) {
  415. $(this).attr('checked', checked);
  416. break;
  417. }
  418. }
  419.  
  420. i++
  421. }
  422. );
  423. },
  424.  
  425. 'GetOptions':
  426. function(fieldId, selectedOnly)
  427. {
  428. var field = FormField.GetField(fieldId);
  429.  
  430. if (!field) {
  431. return false;
  432. }
  433.  
  434. if (typeof(selectedOnly) == 'undefined' || selectedOnly !== true) {
  435. selectedOnly = false;
  436. }
  437.  
  438. switch (FormField.GetFieldType(field).toLowerCase()) {
  439. case 'selectortext':
  440. case 'singleselect':
  441. if($(field).get(0).tagName == 'input') {
  442. return [];
  443. }
  444.  
  445. var options = [];
  446.  
  447. $('option', field).each(
  448. function()
  449. {
  450. if ($(this).val() !== '') {
  451. options[options.length] = $(this).val();
  452. }
  453. }
  454. );
  455.  
  456. return options;
  457. break;
  458.  
  459. case 'radioselect':
  460. case 'checkboxselect':
  461. var options = [];
  462.  
  463. $('input', field).each(
  464. function()
  465. {
  466. if ($(this).val() !== '') {
  467. options[options.length] = $(this).val();
  468. }
  469. }
  470. );
  471.  
  472. return options;
  473. break;
  474.  
  475. default:
  476. return [];
  477. }
  478. },
  479.  
  480. 'SetOptions':
  481. function(fieldId, options)
  482. {
  483. var field = FormField.GetField(fieldId);
  484.  
  485. if (!field) {
  486. return false;
  487. }
  488.  
  489. if (typeof(options) == 'string') {
  490. options = [options];
  491. }
  492.  
  493. switch (FormField.GetFieldType(field).toLowerCase()) {
  494. case 'selectortext':
  495. case 'singleselect':
  496. var chooseOption = FormField.GetSelectorChoosePrefix(field);
  497.  
  498. $(field).empty();
  499.  
  500. if (chooseOption !== '') {
  501. $(field).append('<option value="">' + chooseOption + '</option>');
  502. }
  503.  
  504. for (var i=0; i<options.length; i++) {
  505. $(field).append('<option value="' + options[i] + '">' + options[i] + '</option>');
  506. }
  507.  
  508. break;
  509.  
  510. case 'radioselect':
  511. case 'checkboxselect':
  512. field.empty();
  513.  
  514. var id = $(select).attr('id');
  515. var name = $(select).attr('name');
  516.  
  517. if (FormField.GetFieldType(field).toLowerCase() == 'radioselect') {
  518. var shell = '<input type="radio" />';
  519. } else {
  520. var shell = '<input type="checkbox" />';
  521. }
  522.  
  523. for (var i=0; i<options.length; i++) {
  524. if (i > 0) {
  525. $(select).append('<br />');
  526. }
  527.  
  528. var label = $(select).append('<label>');
  529. $(label).attr('for', id + '_' + i);
  530.  
  531. var option = $(label).append(shell);
  532. $(option).attr('id', id + '_' + i);
  533. $(option).attr('name', name + '_[' + i + ']');
  534. $(option).val(options[i]);
  535.  
  536. $(label).append(' ' + options[i]);
  537. }
  538.  
  539. break;
  540. }
  541. },
  542.  
  543. 'GetLabel':
  544. function(field)
  545. {
  546. var dt = FormField.GetFieldDefinitionTag(field);
  547.  
  548. if (!dt) {
  549. return false;
  550. }
  551.  
  552. var label = $('.FormFieldLabel', dt).text();
  553. label = label.replace(/:/, '');
  554.  
  555. return label;
  556. },
  557.  
  558. 'IsRequired':
  559. function(field)
  560. {
  561. var dt = FormField.GetFieldDefinitionTag(field);
  562.  
  563. if (!dt) {
  564. return false;
  565. }
  566.  
  567. var span = $('.FormFieldRequired', dt);
  568.  
  569. if ($(span).css('visibility') == 'hidden') {
  570. return false;
  571. }
  572.  
  573. return true;
  574. },
  575.  
  576. 'SetRequired':
  577. function(fieldId, status)
  578. {
  579. var field = FormField.GetField(fieldId);
  580.  
  581. dt = FormField.GetFieldDefinitionTag(field);
  582.  
  583. if (!dt) {
  584. return false;
  585. }
  586.  
  587. var span = $('.FormFieldRequired', dt);
  588.  
  589. if (typeof(status) == 'undefined' || status !== true) {
  590. status = false;
  591. }
  592.  
  593. if (status) {
  594. $(span).css('visibility', 'visible');
  595. } else {
  596. $(span).css('visibility', 'hidden');
  597. }
  598.  
  599. return true;
  600. },
  601.  
  602. 'SetDisabled':
  603. function(field, disabled)
  604. {
  605. field = FormField.GetField(field);
  606.  
  607. if (!field) {
  608. return false;
  609. }
  610.  
  611. if (typeof(disabled) == 'undefined' || disabled !== true) {
  612. status = false;
  613. }
  614.  
  615. switch (FormField.GetFieldType(field).toLowerCase()) {
  616. case 'radioselect':
  617. case 'checkboxselect':
  618. $('input', field).each(
  619. function()
  620. {
  621. $(this).attr('disabled', disabled);
  622. }
  623. );
  624.  
  625. break;
  626.  
  627. default:
  628. $(field).attr('disabled', disabled);
  629. break;
  630. }
  631.  
  632. return true;
  633. },
  634.  
  635. 'BindEvent':
  636. function(field, event, func, args)
  637. {
  638. field = FormField.GetField(field);
  639.  
  640. if (!field || typeof(event) == 'undefined' || event == '' || typeof(func) !== 'function') {
  641. return false;
  642. }
  643.  
  644. if (typeof(args) == 'undefined') {
  645. args = {'fieldId': FormField.GetFieldId(field)};
  646. }
  647.  
  648. switch (FormField.GetFieldType(field).toLowerCase()) {
  649. case 'radioselect':
  650. case 'checkboxselect':
  651. $('input', field).each(
  652. function()
  653. {
  654. $(this).bind(event, args, func);
  655. }
  656. );
  657.  
  658. break;
  659.  
  660. default:
  661. $(field).bind(event, args, func);
  662. break;
  663. }
  664.  
  665. return true;
  666. },
  667.  
  668. 'UnBindEvent':
  669. function(field, event, func)
  670. {
  671. field = FormField.GetField(field);
  672.  
  673. if (!field || typeof(event) == 'undefined' || event == '') {
  674. return false;
  675. }
  676.  
  677. switch (FormField.GetFieldType(field).toLowerCase()) {
  678. case 'radioselect':
  679. case 'checkboxselect':
  680. $('input', field).each(
  681. function()
  682. {
  683. $(this).unbind(event, func);
  684. }
  685. );
  686.  
  687. break;
  688.  
  689. default:
  690. $(field).unbind(event, func);
  691. break;
  692. }
  693.  
  694. return true;
  695. },
  696.  
  697. 'Focus':
  698. function(field)
  699. {
  700. field = FormField.GetField(field);
  701.  
  702. if (!field) {
  703. return;
  704. }
  705.  
  706. var selected = null;
  707. var doSelect = true;
  708.  
  709. switch (FormField.GetFieldType(field).toLowerCase()) {
  710. case 'radioselect':
  711. case 'checkboxselect':
  712. selected = $('input:first', field);
  713. doSelect = false;
  714. break;
  715.  
  716. case 'datechooser':
  717. selected = $('.FormFieldMonth', field);
  718. break;
  719.  
  720. default:
  721. selected = field;
  722. }
  723.  
  724. if (selected == null) {
  725. return;
  726. }
  727.  
  728. if (doSelect) {
  729. $(selected).select();
  730. }
  731.  
  732. $(selected).focus();
  733. },
  734.  
  735. 'Hide':
  736. function(field)
  737. {
  738. var dd = FormField.GetFieldDefinitionData(field);
  739. var dt = FormField.GetFieldDefinitionTag(field);
  740.  
  741. if (!dd || !dt) {
  742. return false;
  743. }
  744.  
  745. $(dd).hide();
  746. $(dt).hide();
  747. },
  748.  
  749. 'Show':
  750. function(field)
  751. {
  752. var dd = FormField.GetFieldDefinitionData(field);
  753. var dt = FormField.GetFieldDefinitionTag(field);
  754.  
  755. if (!dd || !dt) {
  756. return false;
  757. }
  758.  
  759. $(dd).show();
  760. $(dt).show();
  761. },
  762.  
  763. 'Validate':
  764. function(field)
  765. {
  766. field = FormField.GetField(field);
  767.  
  768. if (!field) {
  769. return false;
  770. }
  771.  
  772. var rtn = {'status': true, 'msg': ''};
  773. var val = FormField.GetValue(field);
  774. var type = FormField.GetFieldType(field).toLowerCase();
  775.  
  776. if (FormField.IsRequired(field) && val == '') {
  777. if (type == 'selectortext' && $(field).attr('type') && $(field).attr('type').toLowerCase() == 'text') {
  778. // Do nothing
  779. } else if (type == 'password') {
  780. // same here
  781. } else if (type == 'checkboxselect' || type == 'radioselect') {
  782. rtn.msg = lang.CustomFieldsValidationOptionRequired;
  783. } else {
  784. rtn.msg = lang.CustomFieldsValidationRequired;
  785. }
  786. }
  787.  
  788. if (rtn.msg == '') {
  789. switch (type) {
  790. case 'numberonly':
  791.  
  792. if (isNaN(val)) {
  793. rtn.msg = lang.CustomFieldsValidationNumbersOnly;
  794. } else {
  795.  
  796. var dd = FormField.GetFieldDefinitionData(field);
  797. var limitfrom = $('.FormFieldLimitFrom', dd);
  798. var limitto = $('.FormFieldLimitTo', dd);
  799.  
  800. if ($(limitfrom).length > 0 && parseInt(val, 10) < parseInt($(limitfrom).val(), 10)) {
  801. rtn.msg = lang.CustomFieldsValidationNumbersToLow;
  802. rtn.msg = rtn.msg.replace(/%d/, $(limitfrom).val());
  803. } else if ($(limitto).length > 0 && parseInt(val, 10) > parseInt($(limitto).val(), 10)) {
  804. rtn.msg = lang.CustomFieldsValidationNumbersToHigh;
  805. rtn.msg = rtn.msg.replace(/%d/, $(limitto).val());
  806. }
  807. }
  808.  
  809. break;
  810.  
  811. case 'datechooser':
  812.  
  813. var day = $('.FormFieldDay', field).val();
  814. var month = $('.FormFieldMonth', field).val();
  815. var year = $('.FormFieldYear', field).val();
  816.  
  817. if (day+''+month+''+year !== '' && (day == '' || month == '' || year == '')) {
  818. rtn.msg = lang.CustomFieldsValidationDateInvalid;
  819. }
  820.  
  821. var dd = FormField.GetFieldDefinitionData(field);
  822. var limitfrom = $('.FormFieldLimitFrom', dd);
  823. var limitto = $('.FormFieldLimitTo', dd);
  824.  
  825. if ($(limitfrom).length == 0 || $(limitto).length == 0) {
  826. break;
  827. }
  828.  
  829. var thisValBits = val.split('-');
  830. var limitFromBits = $(limitfrom).val().split('-');
  831. var limitToBits = $(limitto).val().split('-');
  832.  
  833. jQuery.each(thisValBits, function(i) { thisValBits[i] = parseInt(thisValBits[i], 10); });
  834. jQuery.each(limitFromBits, function(i) { limitFromBits[i] = parseInt(limitFromBits[i], 10); });
  835. jQuery.each(limitToBits, function(i) { limitToBits[i] = parseInt(limitToBits[i], 10); });
  836.  
  837. var thisDate = new Date(thisValBits[0], thisValBits[1]-1, thisValBits[2]);
  838. var limitFromDate = new Date(limitFromBits[0], limitFromBits[1]-1, limitFromBits[2]);
  839. var limitToDate = new Date(limitToBits[0], limitToBits[1]-1, limitToBits[2]);
  840.  
  841. if (thisDate.getTime() < limitFromDate.getTime()) {
  842. rtn.msg = lang.CustomFieldsValidationDateToLow;
  843. rtn.msg = rtn.msg.replace(/%s\./, limitFromDate.toLocaleDateString() + '.');
  844. } else if (thisDate.getTime() > limitToDate.getTime()) {
  845. rtn.msg = lang.CustomFieldsValidationDateToHigh;
  846. rtn.msg = rtn.msg.replace(/%s\./, limitToDate.toLocaleDateString() + '.');
  847. }
  848.  
  849. break;
  850.  
  851. case 'password':
  852. if (FormField.IsRequired(field)) {
  853. if ($(field).attr('type') == 'text' && val == '') {
  854. rtn.msg = lang.CustomFieldsValidationRequired;
  855. } else {
  856. var dd = FormField.GetFieldDefinitionData(field);
  857. var alreadySet = $('.FormFieldAlreadySet', dd);
  858.  
  859. if (($(alreadySet).length == 0 || $(alreadySet).val() == '') && val == '') {
  860. rtn.msg = lang.CustomFieldsValidationRequired;
  861. }
  862. }
  863. }
  864.  
  865. break;
  866. }
  867. }
  868.  
  869. if (rtn.msg !== '') {
  870. rtn.msg = rtn.msg.replace(/'%s'/, "'" + FormField.GetLabel(field) + "'");
  871. rtn.status = false;
  872. }
  873.  
  874. return rtn;
  875. }
  876. }
  877.  
  878. var FormFieldEvent = {
  879. 'SingleSelectPopulateStates':
  880. function(event)
  881. {
  882. var countryId = event.data.countryId;
  883. var countryName = FormField.GetValue(countryId);
  884. var stateId = event.data.stateId;
  885. var selectedState = '';
  886. var inOrdersAdmin = false;
  887.  
  888. if (typeof(event.data.selectedState) !== 'undefined') {
  889. selectedState = event.data.selectedState;
  890. }
  891.  
  892. if (typeof(event.data.inOrdersAdmin) !== 'undefined') {
  893. inOrdersAdmin = event.data.inOrdersAdmin;
  894. }
  895.  
  896. if (countryName == '') {
  897. var options = {
  898. 'display': 'option'
  899. };
  900.  
  901. FormField.SetValue(stateId, '', options);
  902. return;
  903. }
  904.  
  905. $.ajax({
  906. 'url': 'remote.php',
  907. 'type': 'post',
  908. 'data': {
  909. 'w': 'getStates',
  910. 'countryName': countryName
  911. },
  912. 'success':
  913. function(data)
  914. {
  915. if ($('status', data).text() == '0') {
  916. return;
  917. }
  918.  
  919. var states = [];
  920.  
  921. $('options option', data).each(
  922. function()
  923. {
  924. states[states.length] = $('name', this).text();
  925. }
  926. );
  927.  
  928. if (states.length == 0) {
  929. var options = {
  930. 'display': 'option'
  931. };
  932.  
  933. // make the state field not required
  934. FormField.SetRequired(stateId, false);
  935. } else {
  936. var options = {
  937. 'display': 'select',
  938. 'options': states
  939. };
  940.  
  941. // make the state field required
  942. FormField.SetRequired(stateId, true);
  943. }
  944.  
  945. FormField.SetValue(stateId, selectedState, options);
  946.  
  947. if (inOrdersAdmin && typeof(OrderManager) !== 'undefined') {
  948. var orderArgs = {
  949. 'data': {
  950. 'fieldId': stateId
  951. }
  952. };
  953.  
  954. OrderManager.BindAddressSyncEventsCallback(orderArgs);
  955. }
  956. }
  957. });
  958. },
  959.  
  960. 'CheckBoxShipToAddress':
  961. function(event)
  962. {
  963. if (typeof(event.data.fieldId) == 'undefined') {
  964. return;
  965. }
  966.  
  967. if (FormField.GetValue(event.data.fieldId).length > 0) {
  968. $('.billingButton').val(lang.BillAndShipToAddress);
  969. $('.shippingButton').val(lang.ShipToThisAddress);
  970. $('#ship_to_billing_existing').attr('checked', true);
  971. }
  972. else {
  973. $('.billingButton').val(lang.BillToThisAddress);
  974. $('.shippingButton').val(lang.ShipToThisAddress);
  975. $('#ship_to_billing_existing').attr('checked', false);
  976. }
  977. }
  978. }
  979.  
  980. $(document).ready(function() {
  981. $('.FormField.JSHidden').show();
  982. });
Advertisement
Add Comment
Please, Sign In to add comment