(function($) {

$.fn.fixnav = function(){
this.each(function(m){
		//get parent information
		var pHdrLeft = $('#hdr').offset().left;
		var pNavLeft = $(this).offset().left;
		var pRelLeft = (pNavLeft - pHdrLeft);
		var pWidth = (($(this).width())/2);

		//get child information
		var myWidth = $(this).find("ul").width();
		var myLeft = (980 - myWidth);

		//get info for graphic pointers
		var longListGraphic = ((pRelLeft - ((myLeft - 12) - pWidth)) + "px 0");
		var shortListGraphic = ((pWidth-5) + "px 0");

		//apply position according to width of child and placement of parent
		if ( myLeft < pRelLeft){
			$(this).find("ul").css("left", (myLeft - 20));
			$(this).find("ul").css("background-position", longListGraphic);
		} else {
			$(this).find("ul").css("left", pRelLeft);
			$(this).find("ul").css("background-position", shortListGraphic);
		}
		
		//adjust CSS for borders, etc.
		$(this).find("ul").width((myWidth + 10));
		$(this).find("ul a:first").css("border-left", "1px solid #F5911E");
		$(this).find("ul a:last").css("border-right", "1px solid #F5911E");
});
}

$.fn.makeacolumnlists = function(settings){
	settings = jQuery.extend({
		cols: 2,				// set number of columns
		colWidth: 0,			// set width for each column or leave 0 for auto width
		equalHeight: false, 	// can be false, 'ul', 'ol', 'li'
		startN: 1				// first number on your ordered list
	}, settings);

	if(jQuery('> li', this)) {
		this.each(function(y) {
			var y=jQuery('.li_container').size(),
		    	height = 0, 
		        maxHeight = 0,
				t = jQuery(this),
				classN = t.attr('class'),
				listsize = jQuery('> li', this).size(),
				percol = Math.ceil(listsize/settings.cols),
				contW = t.width(),
				bl = ( isNaN(parseInt(t.css('borderLeftWidth'),10)) ? 0 : parseInt(t.css('borderLeftWidth'),10) ),
				br = ( isNaN(parseInt(t.css('borderRightWidth'),10)) ? 0 : parseInt(t.css('borderRightWidth'),10) ),
				pl = parseInt(t.css('paddingLeft'),10),
				pr = parseInt(t.css('paddingRight'),10),
				ml = parseInt(t.css('marginLeft'),10),
				mr = parseInt(t.css('marginRight'),10),
				col_Width = Math.floor((contW - (settings.cols-1)*(bl+br+pl+pr+ml+mr))/settings.cols);
			if (settings.colWidth) {
				col_Width = settings.colWidth; 
			}
			var colnum=1,
				percol2=percol;
			jQuery(this).addClass('li_cont1').wrap('<div id="li_container' + (++y) + '" class="li_container"></div>');
			for (var i=0; i<=listsize; i++) {
				if(i>=percol2) { percol2+=percol; colnum++; }
				var eq = jQuery('> li:eq('+i+')',this);
				eq.addClass('li_col'+ colnum);
				if(jQuery(this).is('ol')){eq.attr('value', ''+(i+settings.startN))+'';}
			}
			jQuery(this).css({cssFloat:'left', width:''+col_Width+'px'});
			for (colnum=2; colnum<=settings.cols; colnum++) {
				if(jQuery(this).is('ol')) {
					jQuery('li.li_col'+ colnum, this).appendTo('#li_container' + y).wrapAll('<ol class="li_cont'+colnum +' ' + classN + '" style="float:left; width: '+col_Width+'px;"></ol>');
				} else {
					jQuery('li.li_col'+ colnum, this).appendTo('#li_container' + y).wrapAll('<ul class="li_cont'+colnum +' ' + classN + '" style="float:left; width: '+col_Width+'px;"></ul>');
				}
			}
			if (settings.equalHeight=='li') {
				for (colnum=1; colnum<=settings.cols; colnum++) {
				    jQuery('#li_container'+ y +' li').each(function() {
				        var e = jQuery(this);
				        var border_top = ( isNaN(parseInt(e.css('borderTopWidth'),10)) ? 0 : parseInt(e.css('borderTopWidth'),10) );
				        var border_bottom = ( isNaN(parseInt(e.css('borderBottomWidth'),10)) ? 0 : parseInt(e.css('borderBottomWidth'),10) );
				        height = e.height() + parseInt(e.css('paddingTop'), 10) + parseInt(e.css('paddingBottom'), 10) + border_top + border_bottom;
				        maxHeight = (height > maxHeight) ? height : maxHeight;
				    });
				}
				for (colnum=1; colnum<=settings.cols; colnum++) {
					var eh = jQuery('#li_container'+ y +' li');
			        var border_top = ( isNaN(parseInt(eh.css('borderTopWidth'),10)) ? 0 : parseInt(eh.css('borderTopWidth'),10) );
			        var border_bottom = ( isNaN(parseInt(eh.css('borderBottomWidth'),10)) ? 0 : parseInt(eh.css('borderBottomWidth'),10) );
					mh = maxHeight - (parseInt(eh.css('paddingTop'), 10) + parseInt(eh.css('paddingBottom'), 10) + border_top + border_bottom );
			        eh.height(mh);
				}
			} else 
			if (settings.equalHeight=='ul' || settings.equalHeight=='ol') {
				for (colnum=1; colnum<=settings.cols; colnum++) {
				    jQuery('#li_container'+ y +' .li_cont'+colnum).each(function() {
				        var e = jQuery(this);
				        var border_top = ( isNaN(parseInt(e.css('borderTopWidth'),10)) ? 0 : parseInt(e.css('borderTopWidth'),10) );
				        var border_bottom = ( isNaN(parseInt(e.css('borderBottomWidth'),10)) ? 0 : parseInt(e.css('borderBottomWidth'),10) );
				        height = e.height() + parseInt(e.css('paddingTop'), 10) + parseInt(e.css('paddingBottom'), 10) + border_top + border_bottom;
				        maxHeight = (height > maxHeight) ? height : maxHeight;
				    });
				}
				for (colnum=1; colnum<=settings.cols; colnum++) {
					var eh = jQuery('#li_container'+ y +' .li_cont'+colnum);
			        var border_top = ( isNaN(parseInt(eh.css('borderTopWidth'),10)) ? 0 : parseInt(eh.css('borderTopWidth'),10) );
			        var border_bottom = ( isNaN(parseInt(eh.css('borderBottomWidth'),10)) ? 0 : parseInt(eh.css('borderBottomWidth'),10) );
					mh = maxHeight - (parseInt(eh.css('paddingTop'), 10) + parseInt(eh.css('paddingBottom'), 10) + border_top + border_bottom );
			        eh.height(mh);
				}
			}
		    jQuery('#li_container' + y).append('<div style="clear:both; overflow:hidden; height:0px;"></div>');
		});
	}
}

$.fn.hoverfade = function( lowOpacity, highOpacity, fadeSpeed ){
this.each(function(m){
	$(this).find("img").fadeTo(fadeSpeed, lowOpacity); // This sets the opacity of the thumbs to fade down to 60% when the page loads
	$(this).hover(function(){
		$(this).find("img").fadeTo(fadeSpeed, highOpacity); // This should set the opacity to 100% on hover
	},function(){
		$(this).find("img").fadeTo(fadeSpeed, lowOpacity); // This should set the opacity back to 60% on mouseout
	});
});
}



$.fn.equalHeights = function(minHeight, maxHeight) {
		tallest = (minHeight) ? minHeight : 0;
		this.each(function() {
			if($(this).height() > tallest) {
				tallest = $(this).height();
			}
		});
		if((maxHeight) && tallest > maxHeight) tallest = maxHeight;
		return this.each(function() {
			$(this).height(tallest).css("overflow","auto");
		});
	}
})(jQuery);



jQuery(document).ready(function($){
// Sub Nav Line Up
	//$("#nav li").fixnav();
	
// Equal Height Columns	
	//$('#quadbucket .entry').equalHeights( 220,300);
	
// Multi Column Lists
	$('ul.tag-list').makeacolumnlists({cols: 3, colWidth: 0, equalHeight: 'ul', startN: 1});
	$('ul.m2col').makeacolumnlists({cols: 2, colWidth: 0, equalHeight: 'ul', startN: 1});
	$('ul.m3col').makeacolumnlists({cols: 3, colWidth: 0, equalHeight: 'ul', startN: 1});
	$('ul.m4col').makeacolumnlists({cols: 4, colWidth: 0, equalHeight: 'ul', startN: 1});
	$('ul.eg-series-posts').makeacolumnlists({cols: 2, colWidth: 0, equalHeight: 'ul', startN: 1});
	
	
// Set non compliant CSS properties using Jquery (w3c)	
	//$('input').css({'-moz-border-radius':'3px','-khtml-border-radius':'3px','-webkit-border-radius':'3px','border-radius':'3px'});		   
	

// Create opacity hover effects
	//$('.cat-post-item a').hoverfade(0.5,1.0,'fast');
	
// FOcus on first visible form field
$('form.wpcf7-form:not(.filter) :input:visible:enabled:first').focus();

	
});

