
function deleteAllOccurrencesOfTagViaAjax( tagToDelete, idExtension ) {
	jQuery.ajax({
        url: "/AloeView/ajax/deleteUserTag",
        type: 'get',  // get is the default type
        data: {
	  	    userTag: tagToDelete
		},
		success: function( data, textStatus, jqXHR ) {
	        var editElement = document.getElementById( 'edit'+idExtension );
	        if ( editElement != null ) {
	            editElement.parentNode.innerHTML = '<div class="float_left grey">deleted: '+tagToDelete+'</div>';
	        }
		},
		error: function( jqXHR, textStatus, errorThrown ) {
			// do nothing
		}
	});
}

function renameTagViaAjax( oldTag, newTag, idExtension ) {
	jQuery.ajax({
        url: "/AloeView/ajax/renameUserTag",
        type: 'get',  // get is the default type
        data: {
	  	  	oldUserTag: oldTag,
	  	  	newUserTag: newTag
		},
		success: function( data, textStatus, jqXHR ) {
			var response = data;
			// Watch out: the name of the new tag returned in 'data' is not escaped! Insert using method text()
			//            to escape HTML special characters
        	jQuery('#'+'tagValue'+idExtension).text( truncateToMaxLength( response, 25 ) );
        	var linkTag = document.getElementById( 'linkTag'+idExtension );
        	var oldTarget = linkTag.getAttribute( 'href' );
        	var replacePattern = new RegExp( oldTag + '$' );
        	var newTarget = oldTarget.replace( replacePattern, encodeURI( newTag ) );
        	linkTag.setAttribute( 'href', newTarget );
        	jQuery('#'+'hiddenTagValue'+idExtension).val( response );
        	//document.getElementById( 'hiddenTagValue'+idExtension ).value = response;
        	
        	cancelTagChange( idExtension );
            return response;
		},
		error: function( jqXHR, textStatus, errorThrown ) {
			// do nothing
		}
	});
}

function confirmTagChange( idExtension ) {
	var editElement = document.getElementById( 'editTagInput'+idExtension );
	var hiddenElement = document.getElementById( 'hiddenTagValue'+idExtension );

	var newValue = editElement.value;
	var oldValue = hiddenElement.value;
	
	var position = getPosition( editElement );
	
	var trimmedValue = newValue.trim();
	
	if ( trimmedValue.length == 0 ) {
    	cancelTagChange( idExtension );
    	editElement.value = oldValue;
	}
	else if ( trimmedValue.match( /\s+/ ) != null ) {
		popupGlobalAbsolutePosition( global_aloeTranslations['tagsNoWhitespace'], position.x, position.y );
	}
	else {
		renameTagViaAjax( oldValue, newValue, idExtension );
	}
}

function cancelTagChange( idExtension ) {
	var editElement = document.getElementById( 'edit'+idExtension );
	var displayElement = document.getElementById( 'display'+idExtension );
	var confirmElement = document.getElementById( 'confirm'+idExtension );
	var cancelElement = document.getElementById( 'cancel'+idExtension );
	var deleteElement = document.getElementById( 'delete'+idExtension );
	var linkElement = document.getElementById( 'link'+idExtension );

	editElement.style.display='none';
	displayElement.style.display='block';
	confirmElement.style.display='none';
	cancelElement.style.display='none';
	deleteElement.style.display='block';
	linkElement.style.display='block';
	
}


function deleteAllOccurrencesOfTag( idExtension ) {
	var tagElement = document.getElementById( 'editTagInput'+idExtension );
	
	if ( tagElement != null ) {
		var tagToDelete = tagElement.value;
		deleteAllOccurrencesOfTagViaAjax( tagToDelete, idExtension );
	}
}
function makeTagEditable( idExtension ) {
	var editElement = document.getElementById( 'edit'+idExtension );
	var displayElement = document.getElementById( 'display'+idExtension );
	var confirmElement = document.getElementById( 'confirm'+idExtension );
	var cancelElement = document.getElementById( 'cancel'+idExtension );
	var deleteElement = document.getElementById( 'delete'+idExtension );
	var linkElement = document.getElementById( 'link'+idExtension );

	editElement.style.display='block';
	displayElement.style.display='none';
	confirmElement.style.display='block';
	cancelElement.style.display='block';
	deleteElement.style.display='none';
	linkElement.style.display='none';
}

function isNewline( event ) {
	var e = event || window.event;
	var keynum = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;

	if ( keynum == 13 ) {

		e.cancelBubble = true;
		e.returnValue = false;

		if ( e.stopPropagation ) {
			e.stopPropagation();
			e.preventDefault();
		}
	}
	return( keynum == 13 );
}

