// 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);
		
		var parentAction = $(this).parents().find("form").attr("action");
		if( parentAction.length > 0 ) var submissionUrl = parentAction;
		else var submissionUrl = startPath+"/submission/"+docName;
		
		//START AJAX CALL
		$.ajax({
			url:		submissionUrl,
			type:		"post",
			data: 		implode("&",submissionArray),
			dataType:	"json",
			error:		ajaxError,
			success:	ajax_function_success,
			complete:	function(){
							$("#fieldName").removeAttr("disabled");
						}
		});
		return false;
	});
});

var submitComment = function(){

	$('a.submitComment').unbind().click(function(){
		//GATHER DATA
		var submissionArray = Array();
		var curVal = "";
		$(this).parent().parent().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);
		
		var parentAction = $(this).parents().find("form").attr("action");
		if( parentAction.length > 0 ) var submissionUrl = parentAction;
		else var submissionUrl = startPath+"/submission/"+docName;
		
		//START AJAX CALL
		$.ajax({
			url:		submissionUrl,
			type:		"post",
			data: 		implode("&",submissionArray),
			dataType:	"json",
			error:		ajaxError,
			success:	ajax_function_success,
			complete:	function(){
							$("#fieldName").removeAttr("disabled");
						}
		});
		return false;
	});
};

var disallowComment = function(){
	
	$('.disallowComment').unbind().click(function(){
		//GATHER DATA
		var submissionArray = Array();
		var curVal = "";
		$(this).parent().parent().find("input,select,textarea").each(function(){
				curVal = $(this).val();
				array_push(submissionArray,$(this).attr("name") +"="+urlencode(curVal));
				array_push(submissionArray,"disallowComment=1");
		});
		
		//START AJAX CALL
		$.ajax({
			url:		"/submission/comment_process.php",
			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" ) {
		window.location = returnData.data["redirect"];
		
	} else if( returnData.result == "redirect" ) {
		window.location = returnData.data["redirect"];

	} else if ( returnData.result == "refresh") {
		window.location = window.location; 
		//ANTON UPGRADE for future - scroll to bottom of page on complete comment
	} else if( returnData.result == "error" ) {
		var formattedMessageArray = Array();
		for( var i=0 ; i<returnData.data.length ; i++ ){
			array_push(formattedMessageArray,returnData.data[i]);
		}
		 alert(formattedMessageArray);
		 
	} else if( returnData.result == "dbError" ) {
		alert(returnData.data[0]);
	}
}