/**
 * ajaxObjectTagger.js
 *
 * $Revision: 1.7 $
 * $Date: 2011/11/10 19:21:01 $
 * Last edited by: $Author: mingles $
 */
/* Be sure to include fieldReviser.js above this file... */
var oCurTaggingRequest = null;
if (typeof addTagToObject == 'undefined')
{
  function addTagToObject(objectType, objectId, tagText, wantTagListBack, wantTagDeleteControls)
  {
    if( oCurTaggingRequest !== null )
    {
      oCurTaggingRequest.abort();
    }

    oCurTaggingRequest =
    $.ajax({ url      : '/tag/objectTagger.json',
             dataType : 'json',
             type     : 'GET',
             data     : { Action                : 'Add',
                          ObjectType            : objectType,
                          ObjectId              : objectId,
                          TagText               : tagText,
                          WantTagListBack       : Number(wantTagListBack),
                          WantTagDeleteControls : Number(wantTagDeleteControls)
                        },
             error    : function(XMLHttpRequest, textStatus, errorThrown)
                        {
                          alert(   'Error toggling ' + objectType + ' ' + objectId + ' " -- data: ' + textStatus );

                          oCurTaggingRequest = null;
                        },
             success  : function(result, textStatus)
                        {
                          if (result.success)
                          {
                            for (var i = 0; i < result.fieldUpdates.length; ++i)
                            {
                              reviseObjectField( objectType,
                                                 objectId,
                                                 result.fieldUpdates[i].fieldName,
                                                 result.fieldUpdates[i].newHtml );
                            }
                          }
                          else
                          {
                            alert(result.errorMessage);
                          }

                          oCurTaggingRequest = null;
                        }
           });
  }
}

if (typeof removeTagFromObject == 'undefined')
{
  function removeTagFromObject(objectType, objectId, tagId, wantTagListBack, wantTagDeleteControls, sTagDeleterId)
  {
    var $oDeleteImg = $('#'+sTagDeleterId).children('img');
    var sOrigImg = $oDeleteImg.attr( 'src' );
    $oDeleteImg.attr( 'src', '/images/loadingsmall.gif' );
		var $sTag = $('#'+sTagDeleterId);

    if( oCurTaggingRequest !== null )
    {
      oCurTaggingRequest.abort();
    }

		$sTag.find('.ui-icon').removeClass( 'ui-icon ui-icon-trash' ).addClass('ui-yakabox-icon ui-yakabox-icon-loading');

    oCurTaggingRequest =
    $.ajax({ url      : '/tag/objectTagger.json',
             dataType : 'json',
             type     : 'GET',
             data     : { Action                : 'Remove',
                          ObjectType            : objectType,
                          ObjectId              : objectId,
                          TagId                 : tagId,
                          WantTagListBack       : Number(wantTagListBack),
                          WantTagDeleteControls : Number(wantTagDeleteControls)
                        },
             error    : function(XMLHttpRequest, textStatus, errorThrown)
                        {
                          $oDeleteImg.attr( 'src', sOrigImg );

                          alert(   'Error toggling ' + objectType + ' ' + objectId + ' " -- data: ' + textStatus );

                          oCurTaggingRequest = null;
                        },
             success  : function(result, textStatus)
                        {
                          if (result.success)
                          {
                            for (var i = 0; i < result.fieldUpdates.length; ++i)
                            {
                              reviseObjectField( objectType,
                                                 objectId,
                                                 result.fieldUpdates[i].fieldName,
                                                 result.fieldUpdates[i].newHtml );
                            }
                          }
                          else
                          {
                            alert(result.errorMessage);
                          }

                          oCurTaggingRequest = null;
                        }
           });
  }
}

