jQuery( document ).ready( function()
{
	jQuery(".form-item").append( jQuery("<div></div>").addClass( "form-message" ) );
	jQuery( "#_interactemail" ).blur( function() { validate( "email", this ); } );
	jQuery( "#_homeemail" ).blur( function() { validate( "email", this ); } );
	jQuery( "#_authcode" ).blur( function() { validate( "numeric", this ); } );	
	jQuery( "#_submit" ).click( submit );
});

function validate( type, object )
{
	if( type == "numeric" )
	{
		if( NumberValidator( jQuery(object).val() ) )
		{
			jQuery(object).removeClass("invalid").parent().find(".form-message").text("");
		} else {
			jQuery(object).addClass( "invalid" ).parent().find( ".form-message" ).text("Invalid number.");
		}
	}
	if( type == "email" )
	{
		if( EmailValidator( jQuery(object).val() ) )
		{
			jQuery(object).removeClass( "invalid" ).parent().find( ".form-message" ).text("");
		} else {
			jQuery(object).addClass( "invalid" ).parent().find( ".form-message" ).text("Invalid email address.");
		}
	}
}

function submit()
{
	validate( "email", jQuery( "#_interactemail" ) );
	validate( "email", jQuery( "#_homeemail" ) );
	validate( "numeric", jQuery( "#_authcode" ) );
	if( jQuery("#registration-form .invalid").size() > 0 || jQuery("#_authcode").val().length != 4 )
	{
		jQuery.prompt('<strong>Invalid Submission</strong> <p class="normal">The values you submittd are invalid. Please make sure that:<ul><li>All fields are completed.</li><li>All email addresses are formatted properly (eg. username@domain.com).</li><li>The last four digits of your SSN only contains numbers.</li><li>The last four digits of your SSN is four digits long.</li></ul></p>', { prefix: identity, loaded: function(){ jQuery('#flash-sponsers').hide(); }, callback: function(){ jQuery('#flash-sponsers').show(); } });
		return;
	}
	jQuery.ajax(
	{
		type: "POST",
		dataType: "xml",
		url: "/CTE/services/cte-services.php?cachebust=" + new Date().getTime(),
		data: { method: "PreRegister", type: "A", salt: jQuery( "#salt" ).val(), hash: jQuery( "#hash" ).val(), homeemail: jQuery( "#_homeemail" ).val(), interactemail: jQuery( "#_interactemail" ).val(), authcode: jQuery( "#_authcode" ).val() },
		success: function( xml )
		{
			var type = jQuery( xml ).find( "type:first" ).text();
			if( type == "failure" )
				jQuery.prompt('<strong>' + jQuery( xml ).find( "title:first" ).text() + '</strong> <p class="normal">' + jQuery( xml ).find( "body:first" ).text() + '</p>', { prefix: identity, loaded: function(){ jQuery('#flash-sponsers').hide(); }, callback: function(){ jQuery('#flash-sponsers').show();jQuery( "#_submit" ).removeAttr( "disabled" ); } } );
			else if( type == "success" )
				jQuery.prompt('<strong>' + jQuery( xml ).find( "title:first" ).text() + '</strong> <p class="normal">' + jQuery( xml ).find( "body:first" ).text() + '</p>', { prefix: identity, loaded: function(){ jQuery('#flash-sponsers').hide(); }, callback: function(){ window.location = '/CTE/index.php/asc.html#nosplash'; } } );
		},
		error: function( XMLHttpRequest, textStatus, errorThrown )
		{
			alert( "ERROR: [apply|submit] " + textStatus + ": " + errorThrown );
		}
	});
	jQuery( "#_submit" ).attr("disabled","disabled");
}

function NumberValidator( n )
{
	if( n == '' ) return false;
	var nChars = "-0123456789.";
	var isNumber = true;
	var c;
	for( var i = 0; i < n.length && isNumber == true; i++ )
	{
		c = n.charAt( i );
		if( nChars.indexOf( c ) == -1 ) isNumber = false;
	}
	return isNumber;
}

function EmailValidator( e )
{
	var emailReg = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/gi;
	var regex = new RegExp( emailReg );
	return regex.test( e );
}

