PageRenderTime 49ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/public/javascripts/thirdparty/jquery/meerkat/meerkat-1.0.js

https://github.com/participa/participa
JavaScript | 134 lines | 109 code | 18 blank | 7 comment | 30 complexity | 50905ab3bdb7b59987e031a2c4bda0c8 MD5 | raw file
  1. /*
  2. jQuery Meerkat Plugin :: Version 1.0
  3. Copyright (c) 2009 Jarod Taylor (http://www.jarodtaylor.com)
  4. Licensed under the MIT (license.txt)
  5. */
  6. function meerkat(options) {
  7. this.settings = {
  8. showMeerkatOnLoad: 'false',
  9. close: 'none',
  10. dontShow: 'none',
  11. dontShowExpire: 0,
  12. removeCookie: 'none',
  13. meerkatPosition: 'bottom',
  14. animation: 'slide',
  15. animationSpeed: 'slow',
  16. height: 'auto',
  17. background: 'none'
  18. }
  19. if(options){
  20. jQuery.extend(this.settings, options);
  21. }
  22. var settings = this.settings;
  23. var cookieExpiration = settings.dontShowExpire;
  24. function createCookie(name,value,days) {
  25. if (days) {
  26. var date = new Date();
  27. date.setTime(date.getTime()+(days*24*60*60*1000));
  28. var expires = "; expires="+date.toGMTString();
  29. }
  30. else {
  31. var expires = "";
  32. }
  33. document.cookie = name+"="+value+expires+"; path=/";
  34. }
  35. function readCookie(name) {
  36. var nameEQ = name + "=";
  37. var ca = document.cookie.split(';');
  38. for(var i=0;i < ca.length;i++) {
  39. var c = ca[i];
  40. while (c.charAt(0)==' ') c = c.substring(1,c.length);
  41. if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  42. }
  43. return null;
  44. }
  45. function eraseCookie(name) {
  46. createCookie(name,"",-1);
  47. }
  48. jQuery(settings.removeCookie).click(function(){ eraseCookie('meerkat')});
  49. if(readCookie('meerkat') != 'dontshow')
  50. {
  51. jQuery('html, body').css({'margin':'0', 'padding':'0', 'height':'100%'});
  52. jQuery('#meerkat').show().wrap('<div id="meerkat-wrap"><div id="meerkat-container">' + '</div></div>');
  53. jQuery('#meerkat-wrap').css({'position':'fixed', 'width':'100%', 'height': settings.height}).css(settings.meerkatPosition,"0");
  54. jQuery('#meerkat-container').css({'background': settings.background, 'height': settings.height});
  55. //Give the close and dontShow elements a cursor (there's no need to use a href)
  56. jQuery(settings.close+","+settings.dontShow).css({"cursor":"pointer"});
  57. if(jQuery.browser.msie && jQuery.browser.version <= 6){
  58. jQuery('html, body').css({'height':'100%', 'width':'100%', 'overflow':'hidden'});
  59. jQuery('#meerkat-wrap').css({'position':'absolute', 'bottom':'-1px'});
  60. jQuery("body").children()
  61. .filter(function (index) {
  62. return jQuery(this).attr("id") != "meerkat-wrap";
  63. })
  64. .wrapAll('<div id="ie6-content-container">', '</div>');
  65. jQuery('#ie6-content-container').css({'position':'relative', 'overflow':'auto', 'width':'100%', 'height':'100%'});
  66. //Check if ie6-content-container has a scrollbar present. If it does we need to move the meerkat container over 17px
  67. var element = document.getElementById('ie6-content-container');
  68. if ((element.clientHeight < element.scrollHeight)&&(settings.height != 100+'%')) {
  69. jQuery('#meerkat-container').css({'margin-right':'17px'});
  70. }
  71. var bodyStyle = document.body.currentStyle;
  72. var bodyBgStyles = bodyStyle.backgroundColor +" "+ bodyStyle.backgroundImage +" "+ bodyStyle.backgroundRepeat +" "+ bodyStyle.backgroundAttachment +" "+ bodyStyle.backgroundPositionX +" "+ bodyStyle.backgroundPositionY;
  73. jQuery('body').css({'background-image' : 'none'});
  74. jQuery('#ie6-content-container').css({'background' : bodyBgStyles});
  75. }
  76. if((settings.animation == "slide")&&(settings.showMeerkatOnLoad != "true")){
  77. jQuery('#meerkat-wrap').hide().slideDown(settings.animationSpeed);
  78. jQuery(settings.close).click(function(){
  79. jQuery("#meerkat-wrap").slideUp();
  80. });
  81. jQuery(settings.dontShow).click(function () {
  82. createCookie('meerkat','dontshow', cookieExpiration);
  83. jQuery("#meerkat-wrap").slideUp();
  84. });
  85. } else if((settings.animation == "fade")&&(settings.showMeerkatOnLoad != "true")) {
  86. jQuery('#meerkat-wrap').hide().fadeIn(settings.animationSpeed);
  87. jQuery(settings.close).click(function(){
  88. jQuery("#meerkat-wrap").fadeOut(settings.animationSpeed);
  89. });
  90. jQuery(settings.dontShow).click(function () {
  91. createCookie('meerkat','dontshow', cookieExpiration);
  92. jQuery("#meerkat-wrap").fadeOut();
  93. });
  94. } else if ((settings.showMeerkatOnLoad == "true")&&(settings.animation == "slide")){
  95. jQuery('#meerkat-wrap').show();
  96. jQuery(settings.close).click(function(){
  97. jQuery("#meerkat-wrap").slideUp();
  98. });
  99. jQuery(settings.dontShow).click(function () {
  100. createCookie('meerkat','dontshow', cookieExpiration);
  101. jQuery("#meerkat-wrap").slideUp();
  102. });
  103. } else if ((settings.showMeerkatOnLoad == "true")&&(settings.animation == "fade")){
  104. jQuery('#meerkat-wrap').show();
  105. jQuery(settings.close).click(function(){
  106. jQuery("#meerkat-wrap").fadeOut(settings.animationSpeed);
  107. });
  108. jQuery(settings.dontShow).click(function () {
  109. createCookie('meerkat','dontshow', cookieExpiration);
  110. jQuery("#meerkat-wrap").fadeOut();
  111. });
  112. }
  113. } else {
  114. jQuery("#meerkat").hide();
  115. }
  116. }