var autoSaveDelay = 1000*60;
var preview = false;		// Used in save and preview button to know to preview on callback
var previewWindow;

function trim(str)
{
	return str.replace(/^\s*|\s*$/g,"");
}

function displayAutosaveStatus(note, icon)
{
   	var tableObj = document.getElementById('autosaveTable');
   	var noteObj = document.getElementById('ajaxNote');
   	var imageObj = document.getElementById('ajaxImage');
   	
	tableObj.className = (!note && !icon) ? "hidden" : "editTable";
	
	if (note)
		noteObj.innerHTML = note;
	else
		noteObj.innerHTML = "";
	
	imageObj.innerHTML = icon ? "<img align='absmiddle' src='images/" + icon + "'>&nbsp;" : "";
}

// Ajax form submit
function ajaxSubmit()
{
	var loggedIn = (document.getElementById('viewNoticesRow').className == '');
	var tabName = document.forms[0].selectedTab.value;
	var editMode = (tabName != 'step1panel');

	if (loggedIn && editMode)
	{
		// Pretend Save button is being pressed (via hidden input)
		document.getElementById('ajaxSave').name = 'saveButton';
		var text = preview ? "Saving..." : "Autosaving...";
		displayAutosaveStatus(text, "icon_save.gif");
	
		// Save form	
		var thisForm = document.forms[0];
		thisForm.ajform_submit();
	}
	else
	{
		setTimeout(ajaxSubmit, autoSaveDelay);
	}
}

// Ajax form submit callback
function ajaxSubmitCallback(data, statusCode, statusMessage)
{
	if (statusCode == AJForm.STATUS['SUCCESS'])
	{
		var now = new Date();
		var hours = now.getHours();
		var time = "AM";
		if (hours >= 12)
			time = " PM";

		if (hours > 12)
			hours -= 12;

		if (hours == 0)
			hours = 12;

		var mins = now.getMinutes();
		if (mins < 10)
			mins = "0" + mins;

		displayAutosaveStatus("Last saved: " + hours + ":" + mins + time, "icon_save_success.gif");

		if (preview)
		{
			previewNotice();
			preview = false;
		}
	}
	else
	{
		displayAutosaveStatus("Error autosaving", "icon_save_fail.gif");
	}

	setTimeout(ajaxSubmit, autoSaveDelay);
}

function save()
{
	var loggedIn = (document.getElementById('viewNoticesRow').className == '');
	if (!loggedIn)
	{
		tabClick(1);
		alert('You will need to login or register before you can save this notice.');
		displayAutosaveStatus();
		preview = false;
		return;
	}

	clearTimeout(submitTimeout);
		
	// Save image captions
	window.photoGridPac.save();

	if (preview)
	{
		// Open window now to avoid Firefox's popup blocker
		previewWindow = window.open('ViewNoticeWaiting.aspx', 'preview', 'width=790,height=600,status=no,scrollbars=yes,resizable=yes,top=200,left=200');
	}
	
	ajaxSubmit();
}

function saveAndPreview()
{
	preview = true;
	save();
}

function previewNotice(noticeID)
{
	if (!noticeID)
	{
		var response = FamilyArchives.FamilyNotices.Web.EditNotice.GetNoticeId();
		if (response.error)
		{
			alert('There was an error previewing your notice. Please refresh the page (press F5) and try again.');
			return;
		}
		noticeID = response.value;
	}
	
	if (noticeID <= 0)
	{
		ShowTab(1);
		alert('You will need to login or register before you can save this notice.');
	}
	else
	{
		var now = new Date();
		var cachebuster = now.getTime();
		previewWindow.open('ViewNotice.aspx?nid=' + noticeID + '&cb=' + cachebuster, 'preview');
		previewWindow.focus();
	}
}

var submitTimeout = setTimeout(ajaxSubmit, autoSaveDelay);

