/* MEGA MENU w/ Hover Intent */
var hovermenu = (function(){
    return {
        open: function(){
          if( $(window).width() >= 571 ){
            $('.mainnav li ul').slideUp('fast');
            var parent = $(this);
            parent.children('ul').slideDown('fast');
          }
        },
        close: function(){
          if( $(window).width() >= 571 ){
            var parent = $(this);
            parent.children('ul').slideUp('fast');
          }
        },
        init: function(){
            var parents = $('.mainnav').children('li');
            parents.each(function(){
                var _this = $(this);
                _this.hoverIntent( {
                    over: hovermenu.open,
                    out: hovermenu.close,
                    timeout: 500,
                    sensitivity: 1,
                    interval: 50
                });
            });
        }
    }
  }());
/* INPUT HINT */
(function($) {
    $.fn.inputhint = function(options) {
        // iterate and reformat each matched element
        return this.each(function() {
            // cache this:
            var obj = $(this);
            // get value hint
            var ogval = obj.val();
            obj.focus(function(){
                if( obj.val() == ogval ){obj.val('');} else {null;};
            });
            obj.blur(function(){
                if( obj.val() == "" ){obj.val(ogval);};
            });
        });
    };
})(jQuery);
/* SORTABLE TABLES */
(function($) {
  $.fn.tablesort = function(options) {
    // iterate and reformat each matched element
    return this.each(function() {
      // cache this:
      var obj = $(this);
      
      var ajaxurl = obj.attr('data-ajaxurl');
      
      var sortbtns = obj.find('th.sort');
      
      var tbody = obj.find( 'tbody' );
      
      
      var resetTBtns = function(){
        sortbtns.removeClass( 'sorted' );
        sortbtns.removeClass( 'sorted-asc' );
        sortbtns.removeClass( 'sorted-desc' );
      }
      
      sortbtns.click(function(){
        var t = $(this);
        var orderby = t.attr('data-orderby');
        var sort = t.attr('data-sort');
        if( sort == "asc" ){
          //Sort descending
          resetTBtns()
          t.addClass('sorted');
          t.addClass('sorted-asc');
          t.attr('data-sort', 'desc');
          var builturl = ajaxurl + orderby + "/" + sort;
          tbody.load(builturl);
        } else {
          // Sort ascending
          resetTBtns()
          t.addClass('sorted');
          t.addClass('sorted-desc');
          t.attr('data-sort', 'asc');
          var builturl = ajaxurl + orderby + "/" + sort;
          tbody.load(builturl);
        }
        return false;
      });
    });
  };
})(jQuery);
/* MOBILE COLLAPSE MENU */
(function($) {
  $.fn.collapsable = function(options) {
    // iterate and reformat each matched element
    return this.each(function() {
      // cache this:
      var obj = $(this);
      var tree = obj.next('.subnav');
      obj.click(function(){
        if( obj.is(':visible') ){tree.slideToggle('fast');}
      });
      $(window).resize(function(){
        if ( $(window).width() >= 571 ){tree.slideDown('fast');};
      });
    });
  };
})(jQuery);
/* ZOOMABLE */
(function($) {
  $.fn.zoomable = function() {
    return this.each(function(i) {
      // cache
      var obj = $(this);
      // get original src
      var src = obj.attr('src');
      // create modal template
      var modal = '<div class="modal zoomable-modal" id="zoomableimg' + i + '"><div class="modal-header"><a class="close">&times;</a></div><div class="modal-body"><div class="pam txt-center"><img src="' + src + '" class="fleximg" /></div></div></div>';
      // add modal
      $('.window-footer').before(modal);
      // extract from a tags
      obj.parent().get(0).tagName == "A" ? obj.unwrap() : null;
      // wrap .zoomable img in a tags
      obj.wrap('<a href="#zoomableimg' + i + '" class="modaltrigger block relative" />');
      obj.hasClass('rounded') ? obj.after('<div class="zoom-icon zoom-icon-rounded" />') : obj.after('<div class="zoom-icon" />');
    });
  };
})(jQuery);
/* MODAL */
(function($) {
  $.fn.modal = function() {
    return this.each(function() {
      // cache
      var obj = $(this);
      var target = obj.attr('href');
      var targetmodal = $(target);
      var backdrop = $('.modal-backdrop');
      
      // position modal function
      var place = function(mo){
        var m = mo;
        if( $(window).height() <= m.outerHeight() ){
          m.css({'margin-top' : '0px', 'margin-left' : '0px', 'top' : '0', 'left' : '0'});
        } else{
          var mtop = 0 - (m.outerHeight() / 2);
          var mleft = 0 - (m.outerWidth() / 2);
          m.css({'margin-top' : mtop+'px', 'margin-left' : mleft+'px'});
        }
      };
      // open / close modal function
      var modalstatus = function(status){
        if(status == "open"){
          targetmodal.fadeIn();
          backdrop.fadeIn();
          place(targetmodal);
        } else {
          targetmodal.fadeOut();
          backdrop.fadeOut();
        };
      };
      // if one or more target modals
      if( targetmodal.length >= 1 ){
        // add one backdrop & cache it
        if ( $('.modal-backdrop').length >= 1 ) {null;} else {
          targetmodal.eq(0).before('<div class="modal-backdrop"></div>');
        };
        var backdrop = $('.modal-backdrop');
        // for each modal
        targetmodal.each(function(){
          // cache the modal
          var m = $(this);
          // position the modal
          place(m);
          // add modal close button functionality
          m.find('.close').click(function(){
            modalstatus('close');
            return false;
          });
          // add close functionality to backdrop
          backdrop.click(function(){
            modalstatus('close');
            return false;
          });
        });
      };
      // on modal target click
      obj.click(function(){
        // open target modal
        modalstatus("open");
        return false;
      });
      // on escape key
      $(document).keyup(function(e) {
        if (e.keyCode == 27) {modalstatus('close');}
      });
    });
  };
})(jQuery);



;(function($) {
  $.fn.cycleSponsors = function(selector, options) {
    
    opt = $.extend({}, defaults, options);
    var slider = this,
		height = 0,
		heights = [],
		containerWidth = slider.parent().width();
		
	if(slider.length > 0) {slider.width(containerWidth).show();}
	
	this.children().each(function(){
		var height = $(this).outerHeight(),
			width = $(this).outerWidth();
		heights.push(height);
		$(this).width(width);
		$(this).css({'margin-left':(width/2)*-1})
	});
	
	var tallest = Math.max.apply(Math, heights);
	slider.height(tallest);

    this.each(function() {
	  
		var first = $('li.first',this),
			interval = opt.interval,
			inSpeed = opt.animIn,
			outSpeed = opt.animOut,
			li_count = slider.children().length;

		first.animate({'opacity':'1'},300).addClass('current');
		
		cycle = function() {
			var current = slider.find('.current');
			if (current.hasClass('last')){
				var next = current.siblings().first();
			} else {
				var next = current.next();
			}
			
			current.delay(interval).animate({'opacity':'0'}, inSpeed, function(){next.addClass('current').animate({'opacity':'1'}, outSpeed);
			}).removeClass('current');
			setTimeout(cycle, 0);
	    }
	    if (li_count > 1){cycle();}
	    	
    });
  };
  
  var defaults = {
    animHeight:    300,
    animIn:        300,
    animOut:       300,
    interval:      5000,
  }; 

})(jQuery);


