// JavaScript Document

$(function(){

	if( $_GET("success") == "true" ){
		$("#successmessage").html("Congratulations, changed saved successfully").addClass("success").slideDown();
		setTimeout(function(){$('#message').slideUp({speed:'slow'})}, 5000);
	}

	$('button[@name=submit]').unbind().click(function(){
		//GATHER DATA
		var submissionArray = Array();
		var curVal = "";
		$(this).parents("form").find("input,select,textarea").each(function(){
			if( $(this).parent().parent().attr("class") != "doNotSubmit" ) {
				if( $(this).attr("type") == "checkbox" ) {
					if( $(this).attr("checked") ) curVal = $(this).attr("value");
					else curVal = "2";
				} else {
					curVal = $(this).val();
				}
				array_push(submissionArray,$(this).attr("name") +"="+urlencode(curVal));
			}
		});
		
		//CONSTRUCT SUBMISSION URL
		var fullPath = explode("/",window.location.href);
		var docName = array_pop(fullPath);
		var startPath = implode("/",fullPath);
		
		//START AJAX CALL
		$.ajax({
			url:		startPath+"/submission/"+docName,
			type:		"post",
			data: 		implode("&",submissionArray),
			dataType:	"json",
			error:		ajaxError,
			success:	ajax_function_success,
			complete:	function(){
							$("#fieldName").removeAttr("disabled");
						}
		});
		return false;
	});
});

function ajaxError(XMLHttpRequest, textStatus, errorThrown) {
	$("#addToWatchList").text("Add to attendance list");
	alert("Error experienced during submission, please try again in a moment");
}

function ajax_function_success(returnData)
{
	if( returnData.result == "success" ) {
		$("#successmessage").html("<h1>Congratulations - your registration was successful</h1><p>"+returnData.data["message"]+"</p>").addClass("success").slideDown();
		setTimeout(function(){$('#successmessage').slideUp({speed:'slow'})}, 5000);
	} else if( returnData.result == "redirect" ) {
		window.location = returnData.data["redirect"];
	} else if( returnData.result == "error" ) {
		var formattedMessageArray = Array();
		for( var i=0 ; i<returnData.data.length ; i++ ){
			array_push(formattedMessageArray,	i+1+") "+returnData.data[i]);
		}
		$("#successmessage")
			.html("<h1>SUBMISSION ERROR: <br />Please fix the following errors, and try again:</h1><br/>"+implode("<br/>",formattedMessageArray))
			.addClass("error")
			.slideDown();
		scrollTo(0,0);
		$("#sub_header")
		.hide();
	} else if( returnData.result == "dbError" ) {
		alert(returnData.data[0]);
		$("#successmessage")
			.html("The database is currently experiencing a problem:<br/>"+returnData.data[0])
			.addClass("error")
			.slideDown();
		scrollTo(0,0);
		$("#sub_header")
		.hide();
	}
}
