// jQuery extensions

// inputDef

(function($) {	// input with default value
	$.fn.inputDef = function(options) {
		var o = $.extend({ inactiveClass: 'inactiveInput', callback:false }, options), res = false, f;
	
		return this.focusin(function() {
			var self = $(this), v = self.attr("data-default");
			if (self.val() == v) self.val('');
			self.removeClass(o.inactiveClass);
		}).focusout(f = function() {
			var self = $(this), c = self.val(), v = self.attr("data-default");
			if ( !c || (c == v) ) {
				self.val(v).addClass(o.inactiveClass);
				res = false;
			} else {
				self.removeClass(o.inactiveClass);
				res = true;
			}
			if (o.callback) o.callback(this, res);
		}).keyup(function() {
			var self = $(this), c = self.val(), v = self.attr("data-default");
			if ( !c || (c == v) ) {
				self.addClass(o.inactiveClass);
				res = false;
			} else {
				self.removeClass(o.inactiveClass);
				res = true;
			}
			if (o.callback) o.callback(this, res);
		}).focusout();
	};
})(jQuery);


(function($) {	// disable Ctrl-C
	$.fn.noCtrlC = function() {
		return this.keydown(function(e) {
			var self = $(this);
			if (e.ctrlKey && ((e.keyCode == 65) || (e.keyCode == 67))) { return false }
		});
	};
	$.fn.noContext = function() {
		$(this).each( function() {	$(this)[0].oncontextmenu = function() { return false } });
		return $(this);
	}
})(jQuery);

jQuery(function($) {
	$("img").add("#main").noContext();
	$(document).noCtrlC();
});
