// Copyright (C) 2016 RunTex LLC
// 
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
// 
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.

package com.runpdf;

public class Constants
{
    public static final String     SERVICE_URL                 = "http://runpdf.com/export/?";

    /** Default document name */
    public static final String     DOC_NAME                    = "ExportedDocument.pdf";

    /** Parameter key constants */
    public static final String     EXPORT_KEY                  = "EXPORT_KEY";
    public static final String     SOURCE_URL                  = "SOURCE_URL";
    public static final String     SOURCE_URL2                 = "SOURCE_URL2";
    public static final String     SOURCE_HTML                 = "SOURCE_HTML";
    public static final String     SOURCE_BASE_URL             = "SOURCE_BASE_URL";
    public static final String     AUTH_USERNAME               = "AUTH_USERNAME";
    public static final String     AUTH_PASSWORD               = "AUTH_PASSWORD";
    public static final String     TITLE                       = "TITLE";
    public static final String     STANDARD                    = "STANDARD";
    public static final String     DELIVERY_STREAM             = "DELIVERY_STREAM";
    public static final String     NO_IMG_BRAKE                = "NO_IMG_BRAKE";
    public static final String     LIVE_LINKS                  = "LIVE_LINKS";
    public static final String     ENABLE_SCRIPTS              = "ENABLE_SCRIPTS";
    public static final String     FORMAT                      = "FORMAT";
    public static final String     ORIENTATION                 = "ORIENTATION";
    public static final String     SUBSET                      = "SUBSET";
    public static final String     HEADER_SOURCE_HTML          = "HEADER_SOURCE_HTML";
    public static final String     FOOTER_SOURCE_HTML          = "FOOTER_SOURCE_HTML";
    public static final String     FOOTER_SOURCE_URL           = "FOOTER_SOURCE_URL";
    public static final String     HEADER_SOURCE_URL           = "HEADER_SOURCE_URL";
    public static final String     HEADER_HEIGHT               = "HEADER_HEIGHT";
    public static final String     FOOTER_HEIGHT               = "FOOTER_HEIGHT";
    public static final String     FOOTER_SHOW_PAGE_NUMS       = "FOOTER_SHOW_PAGE_NUMS";
    public static final String     MEDIA_TYPE_PRINT            = "MEDIA_TYPE_PRINT";
    public static final String     MLTPL_START_NEW_PAGE        = "MLTPL_START_NEW_PAGE";
    public static final String     SEC_OWNER_PASSWORD          = "SEC_OWNER_PASSWORD";
    public static final String     SEC_USER_PASSWORD           = "SEC_USER_PASSWORD";
    public static final String     SEC_ALLOW_PRINT             = "SEC_ALLOW_PRINT";
    public static final String     SEC_ALLOW_EDIT              = "SEC_ALLOW_EDIT";
    public static final String     SEC_ALLOW_COPY              = "SEC_ALLOW_COPY";
    public static final String     WM_IMAGE_URL                = "WM_IMAGE_URL";
    public static final String     WM_TEXT                     = "WM_TEXT";
    public static final String     WM_TEXT_POSITION            = "WM_TEXT_POSITION";
    public static final String     WM_TEXT_FONT_SIZE           = "WM_TEXT_FONT_SIZE";
    public static final String     WM_TEXT_COLOR               = "WM_TEXT_COLOR";
    public static final String     WM_OPACITY                  = "WM_OPACITY";

    /** Error codes and messages */
    public static final String ERROR_CONNECTION_FAILED = "500";
    public static final String ERROR_SERVER_UNEXPECTED = "610";
    public static final String ERROR_INPUT = "620";
    public static final String ERROR_ACCOUNT = "630";
    public static final String ERROR_SERVICE_SUSPENDED = "634";
    
    public static final String[][] ERROR_CODE_MESSAGE_MAP = { 
        { ERROR_CONNECTION_FAILED, "Connection failed or service is unavailable. Please, verify your internet connection and try again." },
        { ERROR_SERVER_UNEXPECTED, "Unexpected error while processing the request. Please try again later." },
        { ERROR_INPUT, "Invalid input. Please verify your input and try again." },
        { ERROR_SERVICE_SUSPENDED, "The service is suspended. Please try again later." },
        { ERROR_ACCOUNT, "Invalid RunPDF account. For more information, login to your RunPDF account or contact support." }};

    /** Parameter key values */

    /** Boolean values */
    public static final String     BOOLEAN_TRUE                = "Y";
    public static final String     BOOLEAN_FALSE               = "N";

    /** Page format values */
    public static final String     FORMAT_A0                   = "A0";
    public static final String     FORMAT_A1                   = "A1";
    public static final String     FORMAT_A2                   = "A2";
    public static final String     FORMAT_A3                   = "A3";
    // default
    public static final String     FORMAT_A4                   = "A4";
    public static final String     FORMAT_A5                   = "A5";
    public static final String     FORMAT_A6                   = "A6";
    public static final String     FORMAT_A7                   = "A7";
    public static final String     FORMAT_A8                   = "A8";
    public static final String     FORMAT_A9                   = "A9";
    public static final String     FORMAT_A10                  = "A10";
    public static final String     FORMAT_B0                   = "B0";
    public static final String     FORMAT_B1                   = "B1";
    public static final String     FORMAT_B2                   = "B2";
    public static final String     FORMAT_B3                   = "B3";
    public static final String     FORMAT_B4                   = "B4";
    public static final String     FORMAT_B5                   = "B5";
    public static final String     FORMAT_ArchA                = "ArchA";
    public static final String     FORMAT_ArchB                = "ArchB";
    public static final String     FORMAT_ArchC                = "ArchC";
    public static final String     FORMAT_ArchD                = "ArchD";
    public static final String     FORMAT_ArchE                = "ArchE";
    public static final String     FORMAT_Flsa                 = "Flsa";
    public static final String     FORMAT_HalfLetter           = "HalfLetter";
    public static final String     FORMAT_Ledger               = "Ledger";
    public static final String     FORMAT_Legal                = "Legal";
    public static final String     FORMAT_Letter               = "Letter";
    public static final String     FORMAT_Letter11x17          = "Letter11x17";
    public static final String     FORMAT_Note                 = "Note";

    /** Page orientation values */
    // portrait (default)
    public static final String     ORIENTATION_PORTRAIT        = "P";
    // landscape
    public static final String     ORIENTATION_LANDSCAPE       = "L";

    /** Document standard */
    // PDF (default)
    public static final String     STANDARD_PDF                = "P";
    // PDF/A
    public static final String     STANDARD_PDF_A              = "A";
    // PDF/X
    public static final String     STANDARD_PDF_X              = "X";

    /** Watermark position */
    // (default)
    public static final String     WM_TEXT_POSITION_HORIZONTAL = "horizontal";
    public static final String     WM_TEXT_POSITION_DIAGONAL   = "diagonal";
}