(function ($) {
	$.fn.searchLink = function(searchBoxSelector) {
		$(this).click(function() {
			var value = $(searchBoxSelector).val();
			if (value != '') {
				$.query.clear();
				var query = $.query.set('k', value);
				this.href += query.toString();
			}
		});
		
		return this;
	};
	$.fn.searchBox = function(linkSelector) {
		$(this).val($.query.get('k'));
		$(this).keydown(function (e) {
			if (e.which == 13) {
				$(linkSelector).click();
				location.href = $(linkSelector).attr('href');
				return false;
			}
		});
		return this;
	};
	$.fn.selectRange = function(start, length) { 
		if ($(this).get(0).createTextRange) { 
			var range = $(this).get(0).createTextRange(); 
			range.collapse(true); 
			range.moveEnd('character', start + length);
			range.moveStart('character', start); 
			range.select(); 
		} 
		else if ($(this).get(0).setSelectionRange) { 
			$(this).focus().get(0).setSelectionRange(start, start + length); 
		} 
		return $(this); 
	};
	$.fn.youtube = function( type ) {
		return this.each(function() {
			var self = $(this);
			var id = self.attr('id');
			var width = self.css('width');
			var height = self.css('height');
			
			var embed = $('<embed></embed>')
				.attr('src', 'http://www.youtube.com/v/' + id + '?fs=1&amp;hl=en_US')
				.attr('type', 'application/x-shockwave-flash')
				.attr('allowscriptaccess', 'always')
				.attr('allowfullscreen', 'true')
				.attr('width', width)
				.attr('height', height);
			
			self.replaceWith(embed);
		});
	};
	$.fn.trackDownloads = function() {
		return this.each(function() {
			var self = $(this);
			
			var href = self.attr('href');
			if (href != null) {
				var index = href.lastIndexOf('.');
				if (index > -1)
				{
					var extension = href.substring(index + 1);
					var extensions = new Array("pdf","doc","docx", "xsl", "xlsx", "wmv", "mov", " m4v", "ics");
								
					if ($.inArray(extension, extensions) > -1){
						self.click(function() {
							var href = self.attr('href');
							var filename = href.substring(href.lastIndexOf('/') + 1);
										
							pageTracker._trackPageview('/downloads/' + filename);
						});
					}
				}
			}
		});
	};
} (jQuery));
