(function($){

		$.fn.useDD = function(){
			return this.each(function(){
			var $this = $(this);

        	var source = $this;
        	var selUni = $this.attr('name');
        	
        	
            var selected = $this.find("option:selected");
            var options = $("option", source);
            
            
               $('.'+selUni+' dt a').click(function(e) {
                $('.'+selUni+' dd ul').toggle();
                  e.preventDefault();
            });

            $(document).bind('click', function(e) {
                var $clicked = $(e.target);
                if (! $clicked.parents().hasClass("dropdown"))
                    $('.'+selUni+' dd ul').hide();
            });
            
/* needs live custom event to trigger when dd val is changed programmatically */            
            $('.'+selUni+' dd ul li a').live('chgDDVal', function(e) {
               var text = $(this).html();
               $('.'+selUni+' dt a').html(text);
                source.val($(this).find("span.value").html());
            });
            
            		$('.'+selUni+' dd ul li a').click(function(e) {
                var text = $(this).html();
                $('.'+selUni+' dt a').html(text);
                $('.'+selUni+' dd ul').hide();
                
                source.val($(this).find("span.value").html());
                  e.preventDefault();
            });
        
        	});
        
        };    
})(jQuery);

/*
(function($){

		$.fn.createDD = function(){
			return this.each(function(){
			var $this = $(this);

        	var source = $this;
        	var selUni = $this.attr('name');
        	
        	
            var selected = $this.find("option:selected");
            var options = $("option", source);
            
            
            $this.parent('div').append('<dl class="'+selUni+' dropdown"></dl>')
            $('.'+selUni+'').append('<dt><a href="#">' + selected.text() + 
                '<span class="value">' + selected.val() + 
                '</span></a></dt>')
            $('.'+selUni+'').append('<dd><ul></ul></dd>')

            options.each(function(){
                $('.'+selUni+' dd ul').append('<li><a href="#">' + 
                    $(this).text() + '<span class="value">' + 
                    $(this).val() + '</span></a></li>');
            });
            
            
               $('.'+selUni+' dt a').click(function(e) {
                $('.'+selUni+' dd ul').toggle();
                  e.preventDefault();
            });

            $(document).bind('click', function(e) {
                var $clicked = $(e.target);
                if (! $clicked.parents().hasClass("dropdown"))
                    $('.'+selUni+' dd ul').hide();
            });
            
            $('.'+selUni+' dd ul li a').live('chgDDVal', function(e) {
                var text = $(this).html();
                $('.'+selUni+' dt a').html(text);
                source.val($(this).find("span.value").html());
            });
            
            		$('.'+selUni+' dd ul li a').click(function(e) {
                var text = $(this).html();
                $('.'+selUni+' dt a').html(text);
                $('.'+selUni+' dd ul').hide();
                
                source.val($(this).find("span.value").html());
                  e.preventDefault();
            });
        
        	});
        
        };    
})(jQuery);
*/
/*
 * jQuery Title Case Plugin
 *
 * Copyright (c) 2010 Sean Flanagan <sean@redflannelgroup.com>
 * Based on David Gouch's To Title Case Javascript <http://individed.com/code/to-title-case/>
 * Itself based on John Gruber's Title Case Perl Script <http://daringfireball.net/2008/05/title_case, http://daringfireball.net/2008/08/title_case_update>
 *
 * 03/21/2011
 * P Johnson: Change all upper case to lower case except for inital letter and exceptions as defined by this plugin

 */
(function($) {
$.fn.toTitleCase = function() {
	$(this).each(function(){
	var headline = $(this).text();
	$(this).text(headline.replace(/([\w&`'‘’"“.@:\/\{\(\[<>_]+-? *)/g,function(match, pl, index, title){
		if (index > 0 && title.charAt(index - 2) !== ":" && match.search(/^(a(nd?|s|t)?|b(ut|y)|en|for|from|i[fn]|o[fnr]|t(he|o)|vs?\.?|via)[ \-]/i) > -1)
			return match.toLowerCase();
		if (title.substring(index - 1, index + 1).search(/['"_{(\[]/) > -1)
			return match.charAt(0) + match.charAt(1).toUpperCase() + match.substr(2);
		if (match.substr(1).search(/[A-Z]+|&|[\w]+[._][\w]+/) > -1 || title.substring(index - 1, index + 1).search(/[\])}]/) > -1)
			return match.charAt(0).toUpperCase() +  match.substr(1).toLowerCase();
		return match.charAt(0).toUpperCase() + match.substr(1);
	}));
	});
};
})(jQuery);

/* extends autosuggest to change labels from text to html */
(function( $ ) {

var proto = $.ui.autocomplete.prototype,
initSource = proto._initSource;

function filter( array, term ) {
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
return $.grep( array, function(value) {
return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() );
});
}

$.extend( proto, {
_initSource: function() {
if ( this.options.html && $.isArray(this.options.source) ) {
this.source = function( request, response ) {
response( filter( this.options.source, request.term ) );
};
} else {
initSource.call( this );
}
},

_renderItem: function( ul, item) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( $( "<a></a>" )[ this.options.html ? "html" : "text" ]( item.label ) )
.appendTo( ul );
}
});

})( jQuery );

/* FAQ: coloring alternating FAQs and extending categories */
(function($) {
  $.fn.rowcolor = function(options) {
    var o = $.extend({}, $.fn.rowcolor.defaults, options);
    return this.each(function() {
    	var $this = $(this);
        $this.find('li').not('li ul li').filter(':even').css({backgroundColor: o.even});
        $this.find('li ').not('li ul li').filter(':odd').css({backgroundColor: o.odd});
    });
  };
$.fn.rowcolor.defaults = {
    even: '#FFF',
    odd: '#fefefe'
  };
})(jQuery);

/* MULTIPLE DIVS ON ONE PAGE EXPAND BUT NOT DEPENDENT ON EACH OTHER 
headeron: style for active trigger
multiTrigger: div that triggers expansion
multiResp: div that expands */
(function($) {
  $.fn.opendiv = function(headeron) {
    return this.each(function() {
    	var $this = $(this);
    	$this.find('.multiTrigger').click(function(){
    			$(this).toggleClass(headeron);
      	      $(this).next('.multiResp').toggleClass('catexpand',500,'easeOutBounce');
      	       $(this).find('.open').toggleClass('close');
      	});
    });
  };
})(jQuery);
