Advertisement
nefi_c

popover with modalbox modification

Dec 8th, 2012
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
jQuery 2.70 KB | None | 0 0
  1. /**
  2.  *  jQuery Cookie
  3.  */
  4. (function(e,t,n){function i(e){return e}function s(e){return decodeURIComponent(e.replace(r," "))}var r=/\+/g;var o=e.cookie=function(r,u,a){if(u!==n){a=e.extend({},o.defaults,a);if(u===null){a.expires=-1}if(typeof a.expires==="number"){var f=a.expires,l=a.expires=new Date;l.setDate(l.getDate()+f)}u=o.json?JSON.stringify(u):String(u);return t.cookie=[encodeURIComponent(r),"=",o.raw?u:encodeURIComponent(u),a.expires?"; expires="+a.expires.toUTCString():"",a.path?"; path="+a.path:"",a.domain?"; domain="+a.domain:"",a.secure?"; secure":""].join("")}var c=o.raw?i:s;var h=t.cookie.split("; ");for(var p=0,d=h.length;p<d;p++){var v=h[p].split("=");if(c(v.shift())===r){var m=c(v.join("="));return o.json?JSON.parse(m):m}}return null};o.defaults={};e.removeCookie=function(t,n){if(e.cookie(t)!==null){e.cookie(t,null,n);return true}return false}})(jQuery,document);
  5.  
  6. //*** End jQuery Cookie ***
  7. jQuery(document).ready(function(jQuery){
  8.    
  9.     var ele = jQuery('a[rel="popover"]'), pb_index = jQuery.cookie('po_index'), mb_index = jQuery.cookie('mo_index'), delayOnHover;
  10.    
  11.     /* initialize popbox */
  12.     ele.popover({trigger:'manual',html:true});
  13.    
  14.     ele.each(function(indexs){
  15.         var f_data = jQuery(this).attr('data-content');
  16.         if(f_data.match(/gform_validation_error/i) && pb_index != '' ){
  17.             // find the form by looking at cookie and open it
  18.             ele.eq(pb_index).popover('show').next().attr('id','to-this');
  19.             // go to the marked error form
  20.             window.location.hash = 'to-this';
  21.             // add error class and remove hash id
  22.             jQuery(this).addClass('error-popover').next().removeAttr('id');
  23.         }
  24.     });
  25.    
  26.     jQuery('a[data-toggle="modal"]').each(function(index){
  27.         var f_id = jQuery(this).attr('href'), f_data = jQuery(f_id);
  28.         if(f_data.find('.gform_validation_error').length > 0 && mb_index != ''){
  29.             f_data.modal('show');
  30.         }
  31.     });
  32.    
  33.     /* save hovered index popover box that contains the form */
  34.     jQuery('body').on('mouseenter', 'a[rel="popover"]:not(.error-popover), .popover' ,function(e){
  35.         e.preventDefault();
  36.         if(!jQuery(this).is('.popover')){
  37.             var f_index = jQuery(this).index('a[rel="popover"]');  
  38.             jQuery.cookie('po_index', f_index);
  39.         }
  40.         clearTimeout(delayOnHover);
  41.         jQuery(this).popover('show');
  42.     });
  43.    
  44.     /* hide popover manually with delay */
  45.     jQuery('body').on('mouseleave', 'a[rel="popover"], .popover', function(){
  46.         delayOnHover = setTimeout(function(){ jQuery('a[rel="popover"]:not(.error-popover)').popover('hide') }, 500);
  47.     });
  48.    
  49.     /* save clicked index on modalbox */
  50.     jQuery('body').on('click', 'a[data-toggle="modal"]', function(e){
  51.         e.preventDefault();
  52.         var f_index = jQuery(this).index('a[data-toggle="modal"]');  
  53.         jQuery.cookie('mo_index', f_index);
  54.     });
  55.    
  56. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement