cranefly.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. $(function () {
  2. // Register tooltips
  3. $('.tooltip-top').tooltip({placement: 'top', container: 'body'})
  4. $('.tooltip-bottom').tooltip({placement: 'bottom', container: 'body'})
  5. $('.tooltip-left').tooltip({placement: 'left', container: 'body'})
  6. $('.tooltip-right').tooltip({placement: 'right', container: 'body'})
  7. // Register popovers
  8. $('.popover-top').popover({placement: 'top'})
  9. $('.popover-bottom').popover({placement: 'bottom'})
  10. $('.popover-left').popover({placement: 'left'})
  11. $('.popover-right').popover({placement: 'right'})
  12. // Start all dropdowns
  13. $('.dropdown-toggle').dropdown()
  14. // Dont hide clickable dropdowns
  15. $('.dropdown-clickable').on('click', function (e) {
  16. e.stopPropagation()
  17. });
  18. // Checkbox Group Master
  19. $('input.checkbox-master').live('click', function(){
  20. if($(this).is(':checked')){
  21. $('input.checkbox-member').attr("checked" ,"checked");
  22. }
  23. else
  24. {
  25. $('input.checkbox-member').removeAttr('checked');
  26. }
  27. });
  28. // Checkbox Group Member
  29. $('input.checkbox-member').live('click', function(){
  30. if(!$(this).is(':checked')){
  31. $('input.checkbox-master').removeAttr('checked');
  32. }
  33. });
  34. // Check Confirmation on links
  35. $('a.confirm').live('click', function(){
  36. var decision = confirm(jQuery.data(this, 'jsconfirm'));
  37. return decision
  38. });
  39. // Check Confirmation on forms
  40. $('form.confirm').live('submit', function(){
  41. data = $(this).data();
  42. var decision = confirm(data.jsconfirm);
  43. return decision
  44. });
  45. // Go back one page
  46. $('.go-back').on('click', function (e) {
  47. history.go(-1)
  48. })
  49. // Add labels to images
  50. $('.markdown img').each(function() {
  51. $(this).addClass('img-rounded');
  52. $(this).wrap(function() { return '<div class="md-img" />'; });
  53. $(this).wrap(function() { return '<div class="span5 md-img-span" />'; });
  54. $(this).wrap(function() { return '<div class="md-img-wrap" />'; });
  55. $(this).after('<a href="' + $(this).attr('src') + '" class="md-img-label" target="_blank">' + $(this).attr('alt') + '</a>');
  56. $(this).wrap(function() { return '<div class="md-img-bg" />'; });
  57. });
  58. // Handle prokened images
  59. $('.markdown img').one('error', function() {
  60. $(this).after('<div class="md-img-error"><span>' + l_img_broken_msg + '</span></div>');
  61. $(this).hide();
  62. });
  63. // Automagically turn links into players
  64. var players = new Array();
  65. $('.markdown a').each(function() {
  66. if (this.href == $(this).text()) {
  67. match = link2player(this);
  68. if (match && $.inArray(match, players) == -1) {
  69. players.push(match);
  70. $(this).replaceWith(match);
  71. if (players.length == 10) {
  72. return false;
  73. }
  74. }
  75. }
  76. });
  77. })
  78. // Turn link to player
  79. function link2player(link) {
  80. // Youtube link
  81. var re = /watch\?v=([A-Za-z0-9]+)/;
  82. if (re.test(link.href)) {
  83. media_url = link.href.match(re);
  84. return '<iframe width="480" height="360" src="http://www.youtube.com/embed/' + media_url[1] + '" frameborder="0" allowfullscreen></iframe>';
  85. }
  86. // Youtube embed with start time
  87. var re = /youtu.be\/([A-Za-z0-9]+)\?t=([A-Za-z0-9]+)/;
  88. if (re.test(link.href)) {
  89. media_url = link.href.match(re);
  90. media_minutes = media_url[2].match(/([0-9]+)m/);
  91. media_seconds = media_url[2].match(/([0-9]+)s/);
  92. media_url[2] = 0;
  93. if (media_minutes) { media_url[2] += (media_minutes[1] - 0) * 60; }
  94. if (media_seconds) { media_url[2] += (media_seconds[1] - 0); }
  95. return '<iframe width="480" height="360" src="http://www.youtube.com/embed/' + media_url[1] + '?start=' + media_url[2] + '" frameborder="0" allowfullscreen></iframe>';
  96. }
  97. // Youtube embed
  98. var re = /youtu.be\/([A-Za-z0-9]+)/;
  99. if (re.test(link.href)) {
  100. media_url = link.href.match(re);
  101. return '<iframe width="480" height="360" src="http://www.youtube.com/embed/' + media_url[1] + '" frameborder="0" allowfullscreen></iframe>';
  102. }
  103. // Vimeo link
  104. var re = /vimeo.com\/([0-9]+)/;
  105. if (re.test(link.href)) {
  106. media_url = link.href.match(re);
  107. return '<iframe src="http://player.vimeo.com/video/' + media_url[1] + '?color=CF402E" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
  108. }
  109. // No link
  110. return false;
  111. }