/*----------------------------------------------------------*/
/*	CAPTURE MODULE FUNCTIONS							*/
/*----------------------------------------------------------*/
$(document).ready(function() {
	_xCaptureModuleJS.initModule();
});


_xCaptureModuleJS = {
	openLoginFlag : false,
	swapToContent : null,

	initModule : function () {
		$("#capture_upload_photo_button").click(function (event) {
			_xCaptureModuleJS.gotoUpload();
			return false;
		});

		$("#capture_upload_cancel").click(function (event) {
			if (confirm("Are you sure you want to cancel your upload?")) {
				_xCaptureModuleJS.swapContent("browse");
				return false;
			}
		});

		$("#capture_upload_button").click(function (event) {
			_xCaptureModuleJS.submitUploadForm();
			return false;
		});
		
		$("#capture_tyclose_button").click(function (event) {
			_xCaptureModuleJS.swapContent("browse");
			return false;
		});

		$("#capture_module_upload_form_target").load(function (event) {
			_xCaptureModuleJS.onUploadResult();
		});

		$("#capture_errorclose_button").click(function (event) {
			_xCaptureModuleJS.swapContent("upload");
			return false;
		});
		
		$("#capture_signin_button").click(function (event) {
			_xCaptureModuleJS.scrollForLogin();
		});
		
		$("#capture_signin_cancel").click(function (event) {
			_xCaptureModuleJS.swapContent("browse");
		});

		_xCaptureModuleJS.swapContent("browse");
	},
	
	scrollForLogin : function () {
		_xCaptureModuleJS.openLoginFlag = true;
		$.scrollTo("#site_container", { duration:500, onAfter:function () { openSignIn(); } });
	},
	
	gotoUpload : function () {
		if (InterviewAjax.loading) {
			return false;
		}
		
		l_axArguments = [];
		l_axArguments.data = "a=logincheck";
		InterviewAjax.makeAjaxCall("/ajax/ajax.php", l_axArguments, _xCaptureModuleJS.onGotoUploadLoginCheck);
	},
	
	onGotoUploadLoginCheck : function (p_sResponse) {
		if (p_sResponse == "true") {
			_xCaptureModuleJS.swapContent("upload");
		} else {
			_xCaptureModuleJS.swapContent("login");
		}
	},

	swapContent : function (p_sContent) {
		l_sTarget = "#capture_content_"+ p_sContent;
		l_sCompareTarget = "capture_content_"+ p_sContent;
		
		// close everything
		$(".capture_content").each(function () {
			if ($(this).attr("id") != l_sCompareTarget) {
				$(this).fadeOut(300).css("display", "none");
			}
		});

		// close the current directly (so we have a callback)
		_xCaptureModuleJS.swapToContent = p_sContent;
		$(l_sTarget).fadeOut(300, _xCaptureModuleJS.onContentHidden);
	},

	onContentHidden : function () {
		// show new content
		$("#capture_content_"+ _xCaptureModuleJS.swapToContent).fadeIn(300);
		$("#capture_content_"+ _xCaptureModuleJS.swapToContent).css("display", "block");

		// perform necessary updates after
		switch (_xCaptureModuleJS.swapToContent) {
			case "browse":
				_xCaptureModuleJS.clearUploadForm();
				// @TODO - trigger capture ajax
				break;

			case "upload":
				break;

			case "thankyou":
				_xCaptureModuleJS.clearUploadForm();
				break;
				
			case "error":
				break;

			default:
				// nothing
				break;
		}
	},
	
	clearUploadForm : function () {
		$("#capture_file_wrapper").html('<input type="file" name="capture_file" class="capture_fileinput" />');
		$("#upload_caption").val("");
		$("#capture_caption_remaining").html('Caption: <span class="upload_limit">100 Characters Left</span>');
	},

	submitUploadForm : function () {
		document.capture_module_upload_form.submit();
		_xCaptureModuleJS.swapContent("uploading");
	},
	
	onUploadResult : function () {
		// if no result, then we assume this was the first load and ignore (since the start is using about:blank)
		l_sResult = $("#capture_module_upload_form_target").contents().find("#capture_upload_result").html();
		if (!l_sResult) {
			return false;
		}

		// parse result object and check for errors
		eval("l_xResult = "+ l_sResult);
		if (!l_xResult || l_xResult.error) {
			$("#capture_error_message").html(l_xResult.error);
			_xCaptureModuleJS.swapContent("error");
			return false;
		} else {
			_xCaptureModuleJS.swapContent("thankyou");
		}
	},

	captionChange : function () {
		l_xTextArea = $("#upload_caption");
		l_sText = l_xTextArea.val();

		l_nRemaining = 100 - l_sText.length;
		if (l_nRemaining < 0) {
			l_nRemaining = 0;
		}

		if (l_nRemaining == 0) {
			l_sText = l_sText.substring(0, 100);
			l_xTextArea.val(l_sText);
		}

		l_sCharactersString = l_nRemaining != 1 ? "Characters" : "Character";
		$("#capture_caption_remaining").html('Caption: <span class="upload_limit">'+ l_nRemaining +' '+ l_sCharactersString +' Left</span>');
	}
}
