var entryLimit = 10;

function formatGuestbookEntry( node ) {

	var timeParts = node.time.split(" ");
	var entry = '<table class="dummy" cellspacing=0><tr><td class="gbHeader gbHeaderAuthor">' + node.author;
	if ( node.emailAuthor ) {
		entry += ' <a href="mailto:' + node.emailAuthor + '"><img title="' + label_email_write1 + node.emailAuthor + label_email_write2 + '" src="/images/own/email.png" class="picEmail"></a> ';
	}
	entry += ': ' + node.title;
	entry += '</td><td class="gbHeader gbHeaderDate">';
	entry += label_from + ' ' + printDate( timeParts[ 0 ], userLanguage, 'month' ) + ' - ' + printTime( timeParts[ 1 ], userLanguage, 'hm' );
	entry += '</td></tr><tr><td colspan=2 class="gbText">';
	entry += node.text;
	entry += '</td></tr>';
	
	if ( node.replyText ) {
		entry += '<tr><td colspan=2 class="gbReply">';
		entry += '<font class="replyLabel">' + label_reply_from + ' ' + node.preName + ' ' + node.surName + ':</font>' + node.replyText;
		entry += '</td></tr>';
		
	}
	
	entry += '</table>';
	return entry;

}

function getEntries() {
	var gb = new Array();

	var postTxt = "";

	var options = filterOptions;

	if( options.gbLimit ) {
		postTxt += '&gbOffset=' + options.gbLimit.offset + '&gbLimit=' + options.gbLimit.limit;
	}
	
	postTxt += '&isDeleted=' + ( ( $( 'cur_nav' ).value == 'guestbook_deleted' ) ? '1' : '0' );
	
	postTxt = postTxt.substr( 1 );
	
    ajaxRequest(
        '/!getGuestbook',
        true,
        postTxt,
        function( t ) {
			res = deflateJSON( t.responseText );

			if ( res.returnCode != 0 ) {
				showError( msgErrorGetGuestbook );
			}
			else {

				entries.clear();
				entries.setNavParams( res.gbInfo.offset, res.gbInfo.max, res.gbInfo.limit );
	
				if ( ! res.entries ) return;
	
				for( var i = 0; i < res.entries.length; i++ ) {
					var Node = res.entries[ i ];
	
					var myGbItem = new SelectorItem(
						[ formatGuestbookEntry( Node ) ],
						Node.idGuestbook,
						{
							idGuestbook: 	Node.idGuestbook,
							replyText: 	Node.replyText
						}
					);
	
					gb.push( myGbItem );
	
					entries.addItem( myGbItem );
				}
				
				resizeSite();
				
			}
		}
	);
}

function entrySelected( item ) {
	if( item ) {
		//editUser( item.identifier );
	} else {
		//$( "edit" ).style.display = "none";
	}
}

function replyToEntry( item ) {
	if ( entries.selectedItem == null ) return
	displayReplyDialog( entries.selectedItem, ( ( entries.items[ entries.selectedItem ].itemData.replyText == null ) ? '' : entries.items[ entries.selectedItem ].itemData.replyText ) );
}

function restoreEntry( item ) {
	if ( entries.selectedItem == null ) return

	displayConfirmDialog( label_confirm_restore, "doRestoreEntry(\'"+entries.selectedItem+"\')" );

	return;
}

function doRestoreEntry(idGuestbook) {
	//alert('delete entry '+idGuestbook);
	ajaxRequest(
		'/!guestbookRestore',
		true,
		'idGuestbook=' + idGuestbook,
		function( t ) {
			res = deflateJSON( t.responseText );
			if ( res.result != '0' ) {
				showError( msg_restore_entry[ res.result ]  );
			}
			else {
				showMessage( msg_restore_entry_success );
				getEntries();
			}
		}
	);
}

function displayReplyDialog( entryID, existingReply ) {
	var content = '';
	content += '<table class="dummy" style="width:100%">';
	content += '<tr><td align="center" height="30" valign="middle">' + label_enter_reply + '</td></tr>';
	content += '<tr><td align="center" valign="middle"><form id="frmReply"><textarea name="replyText" id="replyText" class="input textarea380x120">' + existingReply + '</textarea></form></td></tr>';
	content += '<tr>';
	content += '<td align="center" height="60" valign="middle"><input type="button" class="btn" value="' + label_cancel + '" style="width:100px" onclick="closeMessage();">';
	content += '<input type="button" class="btn" value="' + label_save + '" style="margin-left:10px;width:100px" onclick="saveReply(\'' + entryID + '\');"></td>';
	content += '</tr>';
	content += '</table>';

	displayStaticMessage( content );
}

function saveReply(idGuestbook) {

	//if ( !$( 'replyText' ).value.match( /\w/ ) ) { alert( msgNoReplyText ); return false }

	closeMessage();
	
	var postTxt = Form.serialize( $( "frmReply" ) );
	postTxt += '&replyAuthor=' + $( "idSystemUser" ).value + '&idGuestbook=' + idGuestbook;

	ajaxRequest(
		'/!guestbookReply',
		true,
		postTxt,
		function( t ) {
			res = deflateJSON( t.responseText );
			if ( res.result != '0' ) {
				showError( msg_reply_entry[ res.result ]  );
			}
			else {
				showMessage( msg_reply_entry_success );
				getEntries();
			}
		}
	);
}


function gbNav( inOffset ) {
	filterOptions.gbLimit = {
		offset: inOffset,
		limit: entryLimit
	}

	getEntries();
}

function deleteEntry(idGuestbook) {
	//alert('delete entry '+idGuestbook);
	ajaxRequest(
		( ( $( 'cur_nav' ).value == 'guestbook_deleted' ) ? '/!guestbookDelete' : '/!guestbookDeactivate' ),
		true,
		'idGuestbook=' + idGuestbook,
		function( t ) {
			res = deflateJSON( t.responseText );
			if ( res.result != '0' ) {
				showError( msg_delete_entry[ res.result ]  );
			}
			else {
				showMessage( msg_delete_entry_success );
				getEntries();
			}
		}
	);
}

function entryDelete( item ) {
	var entry = item.itemData;

	displayConfirmDialog( ( ( $( 'cur_nav' ).value == 'guestbook_deleted' ) ? label_confirm_deletion : label_confirm_deactivation ), "deleteEntry(\'"+entry.idGuestbook+"\')" );

	return;
}

function guestbookInit() {
	// deleteStatement: 'deleteCompany( ' + Node.getAttribute( "ID" ) + ' );'
	entries.setSelectCallback( entrySelected );
	entries.setNavCallback( gbNav );
	entries.setDeleteCallback( entryDelete );

	filterOptions = {
		gbLimit: {
			offset: 0,
			limit: entryLimit
		}
	}
	
	getEntries();
}

