jQuery.fn.debug = function() {
  return this.each(function(){
    alert(this);
  });
};

jQuery.log = function(message) {
  if(window.console) {
     console.debug(message);
  } else {
     alert(message);
  }
};

curry = function() {
	var l = arguments.length;
	var a = arguments[0];
	var f = function(){ return f; };
	
	if(l==0 || typeof(a) != "function") 
		return f;
		
	if(a.length+1 < l) 
		l = a.length+1;
		
	var args = [];
	
	for(var i=1; i<l; ++i) 
		args.push(arguments[i]);
	
	if(a.length <= args.length) 
		return a.apply(this,args);
		
	args.unshift(a);

	return function() {
		for(var i=0; i<arguments.length; ++i) args.push(arguments[i]);
		return curry.apply(this,args); 
	}
}
