m2 = {}

m2.autoscroll = function() {
	$("a[scrollto]").click($.proxy(this.scrollTo, this));
}

m2.autoscroll.prototype.scroll = function(to) {
	var position = 0;
	if (to) {
		position = to.offset().top;
	}
	$('html,body').animate({scrollTop: position}, {duration: 'slow', easing: 'swing'});
}

m2.autoscroll.prototype.toTop = function(event) {
	this.scroll();
}

m2.autoscroll.prototype.scrollTo = function(event) {
	var node = $(event.target);
	if (!node.attr("scrollto")) {
		node = node.parents("a[scrollto]");
	}	
	this.scroll($("*[scrolltarget=" + node.attr("scrollto") + "]"));
}

m2.ajax = function() {
	this.reset();
}

m2.ajax.prototype.reset = function() {
	var handler = $.proxy(this.submit, this);
	$("*[ajax_submit]").unbind("submit", handler).bind("submit", handler);
}

m2.ajax.prototype.submit = function(event) {
	var el = $(event.target);
	var listener = {el : el, parent : this, preloader : new teatras.preloader({container : el})};
	listener.submitted = function(response) {
		this.preloader.destroy();
		this.el.replaceWith(response);
		this.parent.reset();
	}
	$.post(el.attr("ajax_submit"), el.serialize(), $.proxy(listener.submitted, listener));
}
