// - - - - - send forms via ajax

function ajaxSend() {
	// get forms marked with 'ajax'
	theForms = $$('form.ajax');
	for (var i=0; i < theForms.length; i++) {
	theForms[i].onsubmit = function() {
		// call validation
		validateForm(this);
			// set validation
			if (this.getElementsByClassName('formerror') != '') { formValid = false; }
			if (this.getElementsByClassName('formerror') == '') { formValid = true; }
			// send form if valide
			if (formValid == true) {
				//set status indicator to loading while sending
				setIdle(this);
				//send the form
				this.send({ onComplete: function(){ setComplete(); } });
				return false;
			} else {
				return false;
			}
		}
	}
	// special treatment for master-files form
	masterForm = $('myfiles');
	masterForm.onsubmit = function() {
		this.send({ onComplete: function(){
			lbDest = 'lb-placeorder.html';
			lbTitle = 'Place Order';
			lbRefresh = 'refresh';
			createLightbox();
		}});
		return false;
	}
}

function validateForm(targetForm) {
	// get input values and decide on validation status
	requiredInputs = targetForm.getElementsByClassName('required');
	for (var i=0; i < requiredInputs.length; i++) {
		var test = requiredInputs[i].value;
		if (requiredInputs[i].value == '') {
			// mark required fields
			requiredInputs[i].addClass('formerror');
		} else {
			// remove marks
			requiredInputs[i].removeClass('formerror');
		}
	}
}

function setIdle(targetForm) {
	// set status indicator to idle
	log = targetForm.getElementsByClassName('ajax-status')[0];
	var showLog = new Fx.Style(log, 'opacity').set(1);
	log.removeClass('ajax-complete');
	log.addClass('ajax-loading');
}

function setComplete() {
	// set status indicator to complete & clear inputs
	log.removeClass('ajax-loading');
	log.addClass('ajax-complete');
	for (var i=0; i < requiredInputs.length; i++) { requiredInputs[i].value = ''; };
	// fade out status indicator
	(function(){
		if (window.ie) {
			log.remove();
		} else {
			var fadeLog = new Fx.Style(log, 'opacity').start(1,0);
		}
	}).delay(2000);
}