Lungo.Fallback.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /**
  2. * ?
  3. *
  4. * @namespace LUNGO
  5. * @class Fallback
  6. *
  7. * @author Javier Jimenez Villar <javi@tapquo.com> || @soyjavi
  8. */
  9. LUNGO.Fallback = (function(lng, undefined) {
  10. var androidButtons = function() {
  11. environment = lng.Core.environment();
  12. if (environment.isMobile && environment.os.name === 'android') {
  13. lng.dom(document.body).on('touchstart', '.button', _addClassActiveToButton);
  14. lng.dom(document.body).on('touchend', '.button', _removeClassActiveToButton);
  15. }
  16. };
  17. var androidInputs = function(article_id, active) {
  18. environment = lng.Core.environment();
  19. if (environment.isMobile && environment.os.name === 'android' && environment.os.version < '4') {
  20. var selector = article_id + ' input, ' + article_id + ' textarea, ' + article_id + ' select';
  21. var input_elements = lng.dom(selector);
  22. for (var i = 0, len = input_elements.length; i < len; i++) {
  23. (active) ? _enableAndroidInput(input_elements[i]) : _disableAndroidInput(input_elements[i]);
  24. }
  25. }
  26. };
  27. var positionFixed = function(sections) {
  28. environment = lng.Core.environment();
  29. if (environment.isMobile && environment.os.name === 'ios' && environment.os.version >= '4.2') {
  30. sections.style('position', 'fixed');
  31. }
  32. };
  33. var _enableAndroidInput = function(input) {
  34. input.removeAttribute('disabled');
  35. };
  36. var _disableAndroidInput = function(input) {
  37. input.setAttribute('disabled', 'disabled');
  38. };
  39. var _addClassActiveToButton = function(element) {
  40. lng.dom(this).addClass('active');
  41. };
  42. var _removeClassActiveToButton = function(element) {
  43. lng.dom(this).removeClass('active');
  44. };
  45. return {
  46. androidButtons: androidButtons,
  47. androidInputs: androidInputs,
  48. positionFixed: positionFixed
  49. }
  50. })(LUNGO);