// Callback setting and pointing to functions

var statusDivId = 'guestbooksubmitstatus';
var entriesDivId = 'guestbookentries';
var waitDialog;

var nsCallback = {
	getGuestbookEntries: function(result) {
		//var guestBookResult = YAHOO.lang.JSON.parse(result);
		toggleLayer('waitimage', false);
		waitDialog.hide();
		if (parseInt(result) != -1) {
			getItem(entriesDivId).innerHTML = result;
			//alert(result);
		} else {
			showStatus(entriesDivId, false, 'There was an error retrieving the guestbook entries');
		}	
	},

	submitGuestbookEntry: function(result) {
		toggleLayer('waitimage', false);
		if (parseInt(result) != -1) {
			showStatus(statusDivId, true, 'Guestbook entry added');
		} else {
			showStatus(statusDivId, false, 'There was an error adding the guestbook entry');
		}
	}
}

var remoteNS = new Guestbook(nsCallback);

// AJAX stuff
function submitEntry() {
	toggleLayer('waitimage', true);
	remoteNS.submitGuestbookEntry(getItem('name').value, getItem('email').value, getItem('url').value, getItem('subject').value, getItem('text').value);
	return false;
}

function getEntries(pageNo, entriesPerPage, isAdmin) {
	//toggleLayer('waitimage', true);
	initWaitDialog();
	waitDialog.show();
	remoteNS.getGuestbookEntries(pageNo, entriesPerPage, isAdmin);
	return false;
}

// AJAX wait stuff
function initWaitDialog() {
	if (!waitDialog) {
		// Initialize the temporary Panel to display while waiting for external content to load

		waitDialog = 
			new YAHOO.widget.Panel("wait",  
				    { width: "240px", 
				      fixedcenter: true, 
				      close: false, 
				      draggable: false, 
				      zindex:4,
				      modal: true,
				      visible: false
				    } 
				);
		waitDialog.setHeader("Loading, please wait...");
		waitDialog.setBody("<img src=\"http://us.i1.yimg.com/us.yimg.com/i/us/per/gr/gp/rel_interstitial_loading.gif\"/>");
		waitDialog.render(document.body);
	}
}

HTML_AJAX.Open = function() {};
HTML_AJAX.Load = function() {};

// Miscelaneous stuff
function toggleLayer(whichLayer,layerVisible) {
	if (layerVisible)
		getItem(whichLayer).style.display = 'block';
	else
		getItem(whichLayer).style.display = 'none';
}

function showStatus(idName, good, text) {
	getItem(idName).innerHTML = text;
	
	if (good)
		getItem(idName).style.color='green';
	else
		getItem(idName).style.color='red';
}

function getItem(idName) {
	if (document.getElementById) // this is the way the standards work
		return document.getElementById(idName);
	else if (document.all) // this is the way old msie versions work
		return document.all[idName];
	else if (document.layers) // this is the way nn4 works
		return document.layers[idName];
	return false;
}
