/*
 * Automatic setup for Web Forms plugin
 * 
 * Copyright (c) 2007 - 2008 Scott Gonzalez
 * 
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
$.extend($.webForms, {
	beforeValidate: function(elem) {
		$(elem).removeClass('error').parent().parent().find('.forminstant').removeClass('formerror').removeClass('formright').empty();
	},
	
	errorHandler: function(elem) {
		$(elem).addClass('error');
		if ($(elem).parent().parent().find('.forminstant').length)
		{
			$(elem).parent().parent().find('.forminstant').addClass('formerror').html(
			'<div class="check-error"></div><h1>' + $(elem).validationMessage() + '</h1>');
		}
		if ($(elem).parents().find('.ajaxerror').length) 
		{
			$($(elem).parents().find('.ajaxerror').get(0)).html($(elem).validationMessage()).fadeIn('fast');
		}
	},
	validHandler: function(elem) {
		if ($(elem).attr('href')){
			$.get($(elem).attr('href'), elem.name + "=" + elem.value,function(data){
				json=JsonAction(data);
				if ($(elem).parent().parent().find('.forminstant').length)
					$(elem).parent().parent().find('.forminstant').html('<h1>'+json.data+'</h1>');
				else if ($(elem).parents().find('.ajaxerror').length)
					$($(elem).parents().find('.ajaxerror').get(0)).html('<h1>'+json.data+'</h1>').fadeIn('fast');
			});
		}
		$(elem).attr('valid','true');
		$(elem).parent().parent().find('.forminstant').addClass('formright').html('<div class="check-right"></div>');
	}
});

function initFormValidation(elem) {
		$("form[valid]",$(elem)).bind('submit', function() {
			var re = $(this).checkValidity();
			if (re) $(this).attr('valid','true');
			return re;
		});
		$(':input[type!="submit"][type!="button"]',$(elem)).focus(function(){
			$(this).addClass('inputFocus');
		});
		$(':input[type!="submit"][type!="button"]',$(elem)).blur(function(){
			$(this).removeClass('inputFocus');
		});
		$('input[valid]',$(elem)).change(function(){
			var re = $(this).checkValidity();
			if (re) $(this).attr('valid','true');
			return re;
		});
}
