/**
 * WJFormSender
 *
 * Sends the contents of a form with WJSpin
 *
 * @since Mon Mar 09 2009
 * @author Niels Nijens
 * @package Windmill.Sportstad.Javascript
 **/
var WJFormSender = Class.create({
	
	/**
	 * initialize
	 *
	 * Creates a new WJFormSender
	 *
	 * @since initial
	 * @access public
	 * @return WJFormSender
	 **/
	initialize: function() {
		
	},
	
	/**
	 * submit
	 *
	 * Submits a form
	 *
	 * @since initial
	 * @access public
	 * @param htmlelement form
	 * @param string responseElement
	 * @return void
	 **/
	submit: function(form, responseElement) {
		if ( $(responseElement) ) {
			element = responseElement;
		}
		else {
			element = form;
		}
		
		var variables = $(form).serialize(true);
		
		var spin = new WJSpin();
		var url = new WJUrl(variables);
		
		$(document.body).setStyle({"cursor": "wait"});
		spin.content(url, [$(element), function() {document.body.setStyle({"cursor": "default"}); }], {"406": this.handleNotAcceptable.bind(this, responseElement)});
	},
	
	/**
	 * handleNotAcceptable
	 *
	 * Handles a 406 response
	 *
	 * @since initial
	 * @access public
	 * @return void
	 **/
	handleNotAcceptable: function() {
		$(document.body).setStyle({"cursor": "auto"});
		
		var element = arguments[2].args[1][0];
		if ( $(element).nodeName != "form" && $(element).select("form").length > 0) {
			element = $(element).select("form")[0];
		}
		if ( $(element.id + "_missing") ) {
			$(element.id + "_missing").setStyle({"display": "block"});
		}
	}
});

var formSender = new WJFormSender();