
var gAdmin = function(){


  var _confirmDeleteImageFileUrl = null;
  var _confirmDeleteImageId = null;
	var _confirmDeleteGridX = null;
	var _confirmDeleteGridY = null;

  var _adminDeletePanel = null;


  function _clearDeleteContentData(){
    _confirmDeleteImageId = null;
    _confirmDeleteGridX = null;
    _confirmDeleteGridY = null;
    _confirmDeleteImageFileUrl = null;
  };


	function confirmDeleteContent( gridX, gridY ){
    var jsonrpcCallback = { success: _confirmDeleteContentSuccessCallback,
                            failure: _confirmDeleteContentFailureCallback
    };

    // these fields are only now used in the error message displayed if the square is not occupied
		_confirmDeleteGridX = gridX;
		_confirmDeleteGridY = gridY;

    JSON_RPC.send( jsonrpcCallback, "admin.confirmDeleteImage", gridX, gridY );
  };
  
  function _confirmDeleteContentSuccessCallback( responseObj ){
    YAHOO.log( "confirm delete content SUCCESS" );

    if( responseObj != null ){
      // an occupied square was clicked

      // save the image id and grid coordinates of the click the real delete request
      _confirmDeleteImageId = responseObj.bn_order_id;
      _confirmDeleteImageFileUrl = responseObj.image_file_url;

      
      gMap.highlightSquares( responseObj.x_nbr,
                             responseObj.max_x_nbr,
                             responseObj.y_nbr,
                             responseObj.max_y_nbr,
                             false,  // show the delete image button
														 "#ff0000");
    } else {
      // square clicked was not occupied
      alert( "Sorry, grid location (" + _confirmDeleteGridX + "," + _confirmDeleteGridY + ") can't be deleted because it is not occupied." );
    }

  };

    

  
	function _confirmDeleteContentFailureCallback( responseObj ){
    YAHOO.log( "confirm delete content FAILED", "error" );
  };


  function deleteContent(){
    _deleteContentRequest()
  }
    
  function _deleteContentRequest(){

    var refundCredits = ($("refundCredits").checked) ? true : false;
    var elDeleteType = $("deleteType");
    var deleteType = elDeleteType.options[elDeleteType.options.selectedIndex].value;

    if( deleteType == "" ){
      alert( "Please choose a deletion type." );
      elDeleteType.style.border = "2px solid red";
      elDeleteType.focus();
      return;

    }

    var jsonrpcCallback = { success: _deleteContentSuccessCallback,
                            failure: _deleteContentFailureCallback
    };

    JSON_RPC.send( jsonrpcCallback,
									 "admin.deleteImage",
                   _confirmDeleteImageId,
                   //                   reason,
                   deleteType,
                   refundCredits);
  };


  function _deleteContentSuccessCallback( responseObj ){

		YAHOO.log( "delete content SUCCESS!" );

    hideAdminDeletePanel();

    _clearDeleteContentData();
    gMap.endHighlightSquares();

    alert("Content deleted successfuly.\n\nThe image will disappear the next time the map generator batch job runs (approximately every 3 minutes)");

  };



  function _deleteContentFailureCallback( responseObj ){

    var errorObj = response.error;
		YAHOO.log( "delete content FAILURE: " + errorObj );

    alert("Delete content failed.\n\nError message: " + errorObj);

  };


  function showAdminDeletePanel(){

    // CPU seems to get high with the animation so shut if off here
    gMap.stopHighlightAnimation();


    var elPanel = $("adminDeletePanel");


    if( !_adminDeletePanel ){

      var options = {
        width: "450px",
        height: "130px",
        fixedcenter: true,
        underlay: "shadow",
        close: false,
        modal: true,
        draggable: true,
        visible: true
      };

      _adminDeletePanel = new YAHOO.widget.SimpleDialog(elPanel, options);

      _adminDeletePanel.render( document.body );
    }

    
    var elDeleteType = $("deleteType");
    elDeleteType.options.selectedIndex = 0;
    elDeleteType.style.border = "";
    elDeleteType.focus();

    $("deleteImageSample").src = _confirmDeleteImageFileUrl;
    
    gNewImageProcess.centerPanel( elPanel, _adminDeletePanel );

    _adminDeletePanel.show();

  };

  function hideAdminDeletePanel(){

    if( _adminDeletePanel ) {
      _adminDeletePanel.hide();
    }
    gMap.endHighlightSquares(); 
   $("deleteImageSample").src = "";

  }

    
  return {
    confirmDeleteContent : confirmDeleteContent,
      deleteContent : deleteContent,
      showAdminDeletePanel : showAdminDeletePanel,
      hideAdminDeletePanel : hideAdminDeletePanel
      };
}();
