/**
 * This class is used to pass information regarding refilling the plate from the plate 
 * to the ImageURLCalculator.  This object is filled by the plate.
 * <br><br>
 * <a href="mailto:ehudsons@andrew.cmu.edu">Ellen Hudson-Snyder</a>, 
 * <a href="mailto:evedar@andrew.cmu.edu">Elvin Vedar</a>,
 * <a href="mailto:cbalz@andrew.cmu.edu">Christopher M. Balz</a>.
 * <br><br>CVS Version Info:<br>
 *  $Id: PlatefulRequest.js,v 1.12 2005/11/08 07:22:53 evedar Exp $
 * <br><br>
 * @object-prop <code>number</code> <code>intPlateTop</code> The current top value of the plate in pixels.
 * @object-prop <code>number</code> <code>intPlateLeft</code> The current left value of the plate in pixels.
 * @object-prop <code>number</code> <code>intPlateWidth</code> The Width of the plate in pixels.
 * @object-prop <code>number</code> <code>intPlateHeight</code> The Height of the plate in pixels.
 * @object-prop <code>string</code> <code>strPlateDirection</code> The direction of plate movement.
 * @object-prop <code>number</code> <code>intTileHeight</code> The height of a tile (image) in pixels.
 * @object-prop <code>number</code> <code>intTileWidth</code> The width of a tile (image) in pixels.
 * @object-prop <code>number</code> <code>intNumTilesPerPlate</code> The number of tiles/images on a plate-full
 * @object-prop <code>number</code> <code>intTopLeftRow</code> The row number in (Row, Column) notation of the top
 *                                  left tile currently on the plate.
 * @object-prop <code>number</code> <code>intTopLeftColumn</code> The column number in (Row, Column) notation of
 *                                  the top left tile currently on the plate.
 * @object-prop <code>number</code> <code>intNumTilesWide</code> The number of tiles across the plate.
 * @object-prop <code>number</code> <code>intNumTilesHigh</code> The number of tiles up and down the plate.
 * @object-prop <code>number</code> <code>intNumDigits</code> The number of digits in a row or column image
 *                                  identifier. 
 * @object-prop <code>string</code> <code>strSuffix</code> The current file name suffix for image files.
 * @object-prop <code>string</code> <code>strStartLayer</code> The starting layer of the panorama
 * @author Team GigaToasted (Fall-2005-CMU-NASA/Google-Practicum Subteam) 
 * @version 1.0
 */


/**
 * Create a <code>PlatefulRequest</code>.
 */
function PlatefulRequest() {
    this.intPlateTop = null;
    this.intPlateLeft = null;
    this.intPlateWidth = null;
    this.intPlateHeight = null;
    this.strPlateDirection = null;
    this.intTileHeight = null;
    this.intTileWidth = null;
    this.intNumTilesPerPlate = null;
    this.intTopLeftRow = null;  
    this.intTopLeftColumn = null;
    this.intNumTilesWide = null;
    this.intNumTilesHigh = null;
    this.intNumDigits = null;
    this.intLevel = null;
    this.strSuffix = null;
    this.strStartLayer = "";
    this.intDistanceMoved = null;

    // Methods:
    this.getPlateTop = PlatefulRequest_getPlateTop;
    this.getPlateLeft = PlatefulRequest_getPlateLeft;
    this.getPlateHeight = PlatefulRequest_getPlateHeight;
    this.getPlateWidth = PlatefulRequest_getPlateWidth;
    this.getPlateDirection = PlatefulRequest_getPlateDirection;
    this.getTileHeight = PlatefulRequest_getTileHeight;
    this.getTileWidth = PlatefulRequest_getTileWidth;
    this.getNumTilesPerPlate = PlatefulRequest_getNumTilesPerPlate;
    this.getTopLeftRow = PlatefulRequest_getTopLeftRow;
    this.getTopLeftColumn = PlatefulRequest_getTopLeftColumn;
    this.getNumTilesHigh = PlatefulRequest_getNumTilesHigh;
    this.getNumTilesWide = PlatefulRequest_getNumTilesWide;
    this.getNumDigits = PlatefulRequest_getNumDigits;
    this.getLevel = PlatefulRequest_getLevel;
    this.getSuffix = PlatefulRequest_getSuffix;
    this.getStartLayer = PlatefulRequest_getStartLayer;
    this.getDistanceMoved = PlatefulRequest_getDistanceMoved;

    this.setPlateTop = PlatefulRequest_setPlateTop;
    this.setPlateLeft = PlatefulRequest_setPlateLeft;
    this.setPlateHeight = PlatefulRequest_setPlateHeight;
    this.setPlateWidth = PlatefulRequest_setPlateWidth;
    this.setPlateDirection = PlatefulRequest_setPlateDirection;
    this.setTileHeight = PlatefulRequest_setTileHeight;
    this.setTileWidth = PlatefulRequest_setTileWidth;
    this.setNumTilesPerPlate = PlatefulRequest_setNumTilesPerPlate;
    this.setTopLeftRow = PlatefulRequest_setTopLeftRow;
    this.setTopLeftColumn = PlatefulRequest_setTopLeftColumn;
    this.setNumTilesHigh = PlatefulRequest_setNumTilesHigh;
    this.setNumTilesWide = PlatefulRequest_setNumTilesWide;
    this.setNumDigits = PlatefulRequest_setNumDigits;
    this.setLevel = PlatefulRequest_setLevel;
    this.setSuffix = PlatefulRequest_setSuffix;
    this.setStartLayer = PlatefulRequest_setStartLayer;
    this.setDistanceMoved = PlatefulRequest_setDistanceMoved;
}

// GETTERS:


/**
 * This method returns the <code>platefulRequest</code> current top value in pixels.
 * @return <code>number</code>   An integer representing the top positional value 
 *                               of the plate in pixels.
 */
function PlatefulRequest_getPlateTop() {
    return this.intPlateTop;

}


/**
 * This method returns the <code>platefulRequest</code> current left value in pixels.
 * @return <code>number</code>   An integer representing the left positional value of the plate in pixels.
 */
function PlatefulRequest_getPlateLeft() {
    return this.intPlateLeft;

}


/**
 * This method returns the <code>platefulRequest</code> current Width value in pixels.
 * @return <code>number</code>   An integer representing the width of the plate in pixels.
 */
function PlatefulRequest_getPlateWidth() {
    return this.intPlateWidth;

}

/**
 * This method returns the <code>plate</code> current Height value in pixels.
 * @return <code>number</code>   An integer representing the height of the plate in pixels.
 */
function PlatefulRequest_getPlateHeight() {
    return this.intPlateHeight;

}


/**
 * This method returns the <code>platefulRequest</code> direction of movement.
 * @return <code>string</code>  A string representing the plate's direction of movement.
 */
function PlatefulRequest_getPlateDirection() {
    return this.strPlateDirection;

}


/**
 * This method gets the <code>platefulRequest</code> intTileHeight value.
 * @return <code>number</code>  An integer representing the height of a tile/Image.
 */
function PlatefulRequest_getTileHeight() {
    return this.intTileHeight;
}


/**
 * This method gets the <code>platefulRequest</code> intTileWidth value.
 * @return <code>number</code>   An integer representing the width of a tile/Image.
 */
function PlatefulRequest_getTileWidth() {
    return this.intTileWidth;
}


/**
 * This method gets the <code>platefulRequest</code> intNumTilesPerPlate value.
 * @return <code>number</code> An integer representing the number 
 *         of image tiles for a plate of the current size.
 */
function PlatefulRequest_getNumTilesPerPlate() {
    return this.intNumTilesPerPlate;
}


/**
 * This method gets the <code>platefulRequest</code> intTopLeftRow value. 
 * @return <code>number</code>   An integer representing the row of the top 
 *                               left tile on this plate.
 */
function PlatefulRequest_getTopLeftRow() {
    return this.intTopLeftRow;
}


/**
 * This method gets the <code>platefulRequest</code> intTopLeftColumn value.
 * @return <code>number</code> An integer representing the column of the top 
 *                             left tile on this plate.
 */
function PlatefulRequest_getTopLeftColumn() {
    return this.intTopLeftColumn;
}


/**
 * This method gets the <code>platefulRequest</code> intNumTilesWide value.
 * @return <code>number</code>  The number of tiles across the plate.
 */
function PlatefulRequest_getNumTilesWide() {
    return this.intNumTilesWide;
}


/**
 * This method gets the <code>platefulRequest</code> intNumTilesHigh value.
 * @return <code>number</code> An integer representing the number of tiles up 
 *                             and down the plate.
 */
function PlatefulRequest_getNumTilesHigh() {
    return this.intNumTilesHigh;
}


/**
 * This method gets the <code>platefulRequest</code> intNumDigits value.
 * @return <code>number</code>  An integer representing the number of digits in a row 
 *                              or column image identifier.
 */
function PlatefulRequest_getNumDigits() {
    return this.intNumDigits;
}


/**
 * This method gets the <code>platefulRequest</code> intLevel value.
 * @return <code>number</code> An integer representing the current zoom level.
 */
function PlatefulRequest_getLevel() {
    return this.intLevel;
}


/**
 * This method gets the <code>platefulRequest</code> strSuffix value.
 * @return <code>string</code>  The current image file suffix.
 */
function PlatefulRequest_getSuffix() {
    return this.strSuffix;
}


/**
 * This method gets the <code>platefulRequest</code> strStartLayer value.
 * @return <code>string</code>  The start layer of the panorama protocol
 */
function PlatefulRequest_getStartLayer() {
    return this.strStartLayer;
}


/**
 * This method gets the <code>platefulRequest intDistanceMoved</code> value.
 * @return <code>number</code>  The distance the plate has moved since the last reload (in Pixels).
 */
function PlatefulRequest_getDistanceMoved() {
    return this.intDistanceMoved;
}


/**
 * This method sets the <code>platefulRequest</code> intPlateTop value.
 * @param pIntPlateTop <code>number</code> The current plate top value in pixels.
 */
function PlatefulRequest_setPlateTop( pIntPlateTop ) {
    this.intPlateTop = pIntPlateTop;
}


/**
 * This method sets the <code>platefulRequest</code> intPlateLeft value.
 * @param pIntPlateLeft <code>number</code> The current plate left value in pixels.
 */
function PlatefulRequest_setPlateLeft( pIntPlateLeft ) {
    this.intPlateLeft = pIntPlateLeft;
}


/**
 * This method sets the <code>platefulRequest</code> intPlateWidth value.
 * @param pIntPlateWidth <code>number</code> The width of the current plate.
 */
function PlatefulRequest_setPlateWidth( pIntPlateWidth ) {
    this.intPlateWidth = pIntPlateWidth;
}


/**
 * This method sets the <code>platefulRequest</code> intPlateHeight value.
 * @param pIntPlateWidth <code>number</code> The height of the current plate.
 */
function PlatefulRequest_setPlateHeight( pIntPlateHeight ) {
    this.intPlateHeight = pIntPlateHeight;
}


/**
 * This method sets the <code>platefulRequest</code> strPlateDirection value.
 * @param pStrPlateDirection <code>number</code> The current plate's direction of movement.
 */
function PlatefulRequest_setPlateDirection( pStrPlateDirection ) {
    this.strPlateDirection = pStrPlateDirection;
}


/**
 * This method sets the <code>platefulRequest</code> intTileHeight value.
 * @param pIntTileHeight <code>number</code> The height of a tile/Image.
 */
function PlatefulRequest_setTileHeight( pIntTileHeight ) {
    this.intTileHeight = pIntTileHeight;
}


/**
 * This method sets the <code>platefulRequest</code> intTileWidth value.
 * @param pIntTileWidth <code>number</code> The width of a tile/<code>Image</code>.
 */
function PlatefulRequest_setTileWidth( pIntTileWidth ) {
    this.intTileWidth = pIntTileWidth;
}


/**
 * This method sets the <code>platefulRequest</code> intNumTilesPerPlate value.
 * @param pIntNumTilesPerPlate <code>number</code> The number of image tiles for a plate of this size.
 */
function PlatefulRequest_setNumTilesPerPlate( pIntNumTilesPerPlate ) {
    this.intNumTilesPerPlate = pIntNumTilesPerPlate;
}


/**
 * This method sets the <code>platefulRequest</code> intTopLeftRow value.
 * @param pIntTopLeftRow <code>number</code> The row of the top left tile on the plate
 */
function PlatefulRequest_setTopLeftRow( pIntTopLeftRow ) {
    this.intTopLeftRow = pIntTopLeftRow;
}


/**
 * This method sets the <code>platefulRequest</code> intTopLeftColummn value.
 * @param pIntTopLeftColumn <code>number</code> The column of the top left tile on the plate
 */
function PlatefulRequest_setTopLeftColumn( pIntTopLeftColumn ) {
    this.intTopLeftColumn = pIntTopLeftColumn;
}


/**
 * This method sets the <code>platefulRequest</code> intNumTilesWide value.
 * @param pIntNumTilesWide <code>number</code> The number of tiles across the plate
 */
function PlatefulRequest_setNumTilesWide( pIntNumTilesWide ) {
    this.intNumTilesWide = pIntNumTilesWide;
}


/**
 * This method sets the <code>platefulRequest</code> intNumTilesHigh value.
 * @param pIntNumTilesHigh <code>number</code> The number of tiles up and down the plate
 */
function PlatefulRequest_setNumTilesHigh( pIntNumTilesHigh ) {
    this.intNumTilesHigh = pIntNumTilesHigh;
}


/**
 * This method sets the <code>platefulRequest</code> intNumDigits value.
 * @param pIntNumDigits <code>number</code> The number digits in a row or column image identifier
 */
function PlatefulRequest_setNumDigits(pIntNumDigits) {
    this.intNumDigits = pIntNumDigits;
}


/**
 * This method sets the <code>platefulRequest</code> intLevel value.
 * @param pIntLevel <code>number</code> The current zoom level.
 */
function PlatefulRequest_setLevel(pIntLevel) {
    this.intLevel = pIntLevel;
}


/**
 * This method sets the <code>platefulRequest</code> strSuffix value.
 * @param pStrSuffix <code>string</code> The current image file suffix.
 */
function PlatefulRequest_setSuffix(pStrSuffix) {
    this.strSuffix = pStrSuffix;
}


/**
 * This method sets the <code>platefulRequest</code> strStartLayer value.
 * @param pStrStartLayer <code>string</code> The start layer name
 */
function PlatefulRequest_setStartLayer(pStrStartLayer) {
    this.strStartLayer = pStrStartLayer;
}


/**
 * This method sets the <code>platefulRequest</code> intDistanceMoved value.
 * @param pIntDistanceMoved <code>number</code> The distance the plate has moved since the last reload (in Pixels).
 */
function PlatefulRequest_setDistanceMoved(pIntDistanceMoved) {
    this.intDistanceMoved = pIntDistanceMoved;
}


