function getElement( elementId )  {
          var elem;

        if( getElement ) // standard
                elem = document.getElementById( elementId );
        else if( document.all ) // Old MSIE
                elem = document.all[elementId];
        else if( document.layers ) // NN4
                elem = document.layers[elementId];

        return elem;
}

function startEdit( imageid )  {
	var buttonDiv, editDiv, textDiv;

	buttonDiv = getElement( 'image-button-' + imageid );
	editDiv = getElement( 'image-edit-' + imageid );
	textDiv = getElement( 'image-txt-' + imageid );

	buttonDiv.style.display = 'block';
	editDiv.style.display = 'block';
}

function cancelEdit( imageid )  {
	var buttonDiv, editDiv, textDiv, imageDiv, editText;

	buttonDiv = getElement( 'image-button-' + imageid );
	editDiv = getElement( 'image-edit-' + imageid );
	textDiv = getElement( 'image-txt-' + imageid );
	editText = getElement( 'image-edit-text-' + imageid );

	removeContents( editText );
	if (textDiv.innerHTML != 'no comment')
		editText.innerHTML = textDiv.innerHTML;

	buttonDiv.style.display = 'none';
	editDiv.style.display = 'none';
}

function saveEdit( imageid )  {
	var buttonDiv, editDiv, textDiv, imageDiv;

	buttonDiv = getElement( 'image-button-' + imageid );
	editDiv = getElement( 'image-edit-' + imageid );
	textDiv = getElement( 'image-txt-' + imageid );
	editText = getElement( 'image-edit-text-' + imageid );

	setNewText( imageid, editText.value );
	var error = sendNewText( imageid, editText.value );
	if (error.length > 0)
		alert(error);

	buttonDiv.style.display = 'none';
	editDiv.style.display = 'none';
}

function initText( imageid, text )  {
	if (text == null || text.length == 0)
		setNewText( imageid, text );
}

function setNewText( imageid, text )  {
	var textDiv, newText;

	textDiv = getElement( 'image-txt-' + imageid );
	if (textDiv == null)
		alert( 'I\'ve got a bad feeling about this: ' + 'image-txt-' + imageid);
	if (text == null || text.length == 0)  {
		newText = document.createElement( 'em' );
		newText.appendChild( document.createTextNode( 'no comment' ) );
	}
	else  {
		newText = document.createTextNode( text );
	}

	removeContents( textDiv );
	textDiv.appendChild( newText );
}

function sendNewText( imageid, text )  {
	xmlRequest = new XMLHttpRequest( );
	//xmlRequest.onreadstatechange = function(e) { finishTextChange( e, xmlRequest ); }
	//xmlRequest.setRequestHeader( 'Cache-Control', 'no-cache' );
	xmlRequest.open( 'POST', 'alter_text.cgi', false );
	xmlRequest.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
	xmlRequest.send( 'imageid=' + imageid + '&newtext=' + text );

	var stat, error;
	error = '';
	if (xmlRequest.status == 200)  {
		xmlObj = xmlRequest.responseXML;

		stat = xmlObj.getElementsByTagName('status')[0].firstChild.nodeValue;
		if (stat != 0)  {
			error = xmlObj.getElementsByTagName('error')[0].firstChild.nodeValue;
		}
	}
	else  {
		error = 'error submitting data';
	}

	return error;
}

function removeContents( aNode )  {
	var child;

	while (child = aNode.firstChild)
		aNode.removeChild( child );
}
