$(function(){	
	// extends jquery fn
	$.fn.extend({
	
		// sets a custom opacity on element
		opacity: function(opacity){
			this.css({
				/* Standard: FF gt 1.5, Opera, Safari */
				'opacity':        '.' + opacity,
				/* IE lt 8 */
				'filter':         'alpha(opacity=' + opacity + ')',
				/* IE 8 */
				'-ms-filter':     "alpha(opacity=" + opacity + ")",
				/* Safari 1.x */
				'-khtml-opacity': '.' + opacity,
				/* FF lt 1.5, Netscape */
				'-moz-opacity':   '.' + opacity
			});
		},
		
		// performs positioning of element relative to mouse position
		// optionally, specifies margins
		bind_to_mousepos: function(marginX, marginY, event){
			var pageX, pageY;
			
			if(typeof event == 'undefined'){
				pageX = $.Netscience.pageX;
				pageY = $.Netscience.pageY;
			}else{
				pageX = event.pageX;
				pageY = event.pageY;
			}
			
			if(typeof marginX != 'number') marginX = 0;
			if(typeof marginY != 'number') marginY = 0;
			
			//sets margins according to user-defined size and scroll
			var left = pageX + marginX;
			var top  = pageY + marginY;
			
			this.css({ position: 'absolute', left: left + 'px', top: top + 'px' });								
		},
		
		// creates a default element for a select node
		default_option: function(label){
			// not a select
			if(this.get(0).nodeName != 'SELECT'){ return false; }
			if(typeof label == 'undefined' || label.length == 0) label = "Select one of:";
			
			var option = $(document.createElement('option'));
			option.attr("value", "");
			option.attr("selected", "selected");
			option.text(label);
			
			this.append(option);
		},
		
		// changes pointer on hover
		hover_pointer: function(){
			this.hover(function(){ $(this).css({ cursor: 'pointer' }); });		
		},
		
		// align an image to the center of its wrapper
		align_center: function(){
			// not an image
			if(this.get(0).nodeName != 'IMG') return false;
			
			var wrapper   = this.parent();
			var wrap_size = wrapper.innerWidth();
			var imag_size = this.width();			
			var margin    = Math.floor((wrap_size - imag_size) / 2) - 10;
			
			if(margin > 0){
				this.css({ 'marginLeft': Math.floor(margin) + 'px' });
			}
		}
	});
});
