var INIT_UPLOAD_SCRIPT_URL              = "/init_upload.php";
//var UPLOAD_SCRIPT_NAME                  = "/cgi-bin/upload_file.cgi";
var MAX_UPLOAD_FILE_SIZE                = 104857600;
var UPLOAD_SCRIPT_NAME                  = "/upload_presentation.php";
var REMOVE_RESOURCE_SCRIPT_NAME         = "/remove_resource.php";
var UPLOAD_PROGRESS_SCRIPT_NAME         = "/cgi-bin/progress.cgi";
var TRANSCODING_PROGRESS_SCRIPT_NAME    = "/transcoding_progress.php";
var GET_URL_SCRIPT_NAME                 = "/get_url.php";
var SCRIPT_TRANSCOD_SVR_RES_IS_REMOVED  = "/is_resource_removed.php";
var SCRIPT_GET_TRANSCODING_STATUS       = "/get_transcoding_status.php";
var SCRIPT_GET_RESOURCE_URL             = "/get_resource_view_url.php?id_resource=%ID_RESOURCE%";
var LOGIN_PAGE                          = "/login";
var UPLOAD_FRAME_URL                    = "/file_upload_form.php";

var ID_INPUT_DESCRIPTION                = "description";
var ID_INPUT_TITLE                      = "title";
var ID_INPUT_CATEGORY                   = "id_category";
var ID_INPUT_UPLOAD                     = "upload_resource";
var ID_INPUT_TAGS                       = "tags";
var ID_INPUT_TEST_RESOURCE              = "test_resource";
var ID_INPUT_ID_RESOURCE                = "id_resource";
var ID_INPUT_ACCESS_KEY                 = "access_key";
var ID_INPUT_UPLOAD_BUTTON              = "upload_button";
var ID_INPUT_PUBLISH_FLAG               = "publish_flag";
var ID_INPUT_SEARCH_BUTTON              = "search_button";

var ACTIVE_BUTTON_BG                    = "url('/images/upload_button.png') no-repeat";
var INACTIVE_BUTTON_BG                  = "url('/images/upload_button_inactive.png') no-repeat";

var RESOURCE_VIEW_SCRIPT                = "resources/{ID_RESOURCE}";

var ID_DIV_PROGRESS                     = "progress_indicator";

var ERR_MSG_EMPTY_TITLE                 = "Please enter the title.";
var ERR_MSG_INCORRECT_CAT_ID            = "Please choose topic.";
var ERR_MSG_TAGS_EMPTY                  = "Tags field cannot be empty.";
var ERR_MSG_FILE_NOT_SELECTED           = "Please choose a file to upload.";
var ERR_MSG_FILE_EMPTY                  = "Selected file is empty. Please choose another one.";
var ERR_MSG_FILE_TOO_LARGE              = "Selected file is too large. Please choose another one.";

var MSG_INCORRECT_UPLOAD_FILE_TYPE      = "Incorrect upload file type! (Available types: presentations, .ppt, .pps, .pptx, .ppsx)";
var MSG_INCORRECT_UPLOAD_TAGS           = "Incorrect tags. Minimum tag length is 3 characters.";
var MSG_INCORRECT_UPLOAD_TITLE          = "Incorrect title. Maximum title length is 200 characters.";
var MSG_INCORRECT_UPLOAD_DESCRIPTION    = "Incorrect description. Maximum description length is 2000 characters.";
var MSG_FILE_TOO_LARGE                  = "Your file is too large. Please use files with size less than 30MB";
var MSG_GUEST_CAN_NOT_PUBLISH_PRESENTATION = "Guest can not have public presentation.";

var MSG_ERROR_CONVERTING_PRESENTATION   = "Error while converting presentation. We will try to fix this problem at the nearest time. Thank you!";
var MSG_QUESTION_DELETE_RESOURCE        = "Do you really want delete this presentation?";
var MSG_QUESTION_INTERRUPT_UPLOAD       = "Do you really want to interrupt presentation uploading process?";
var MSG_QUESTION_SHARE_LOGIN            = "Do you want to login to share this presentation?";
var MSG_ADD_COMMENT_FAIL                = "Incorrect comment.";
var MSG_TAGS_ARE_TOO_LONG               = "Following tags: \n%TAGS%\n are too long (max %MAX_TAG_LENGTH% are allowed).";


var MIN_DESCRIPTION_LENGTH              = 5;

var RESPONSE_OK                         = 0;
var RESPONSE_ERR_INVALID_FILE_TYPE      = 1;
var RESPONSE_ERR_INVALID_TAGS           = 2;
var RESPONSE_ERR_INVALID_TITLE          = 3;
var RESPONSE_ERR_INVALID_DESCRIPTION    = 4;
var RESPONCE_ERR_GUEST_SET_PUBLIC_PRESENTATION = 8;

var RESPONSE_OK                                     = 0;
var RESPONSE_ERR_INVALID_FILE_TYPE                  = 1;
var RESPONSE_ERR_INVALID_TAGS                       = 2;
var RESPONSE_ERR_INVALID_TITLE                      = 3;
var RESPONSE_ERR_INVALID_DESCRIPTION                = 4;
var RESPONSE_ERR_PRIVATE_PRESENTATIONS_LIMIT_EXCEED = 5;
var RESPONSE_ERR_INVALID_CAPTCHA                    = 6;
var RESPONSE_NULL                       = "NULL";

//
// Transcoding process errors

var ERR_TRANSC_FILE_TOO_LARGE           = 1;
var ERR_INCORRECT_FILE_TYPE             = 5;
var ERR_CONVERTING                      = 6;
var ERR_TRANSC_PRESENTATION_ENCRYPTED   = 12;
var ERR_TRANSC_FAILED_OPEN_FILE         = 13;
var ERR_TRANSC_REPLACE_PRESENTATION_FAILED = 15;
var ERR_TRANSC_CANCELLED                = 17;
var ERR_INVALID_CAPTCHA                 = 18;

var PROGRESS_REFRESH_PERIOD             = 500;

var USER_RESOURCES_REFRESH_PERIOD       = 500;

var MSG_START_INIT                      = "Initialization of resource...";
var MSG_START_UPLOAD                    = "Processing...";
var MSG_UPLOADING                       = "Uploading...";
var MSG_UNPACKING                       = "Unpacking...";
var MSG_START_TRANSCODING               = "Processing...";
var MSG_CONVERSION                      = "Conversion...";
var MSG_COLLECTING                      = "Collecting...";
var MSG_PROCESSING                      = "Processing...";
var MSG_SWF_WRITING                     = "Processing...";
var MSG_COMPLETE                        = "Complete";
var MSG_ABORTED                         = "Aborted.";

var MESSAGE_FLAG                        = 'm';
var TRANSCODING_FLAG                    = 't';

var PROGRESS_NUMBERS_DELIMETER          = ":";

var OUTPUT_STATUS_LINE_DELIMETER        = "<br />";
var OUTPUT_STATUS_COUNT_LINES           = 10;

var UPLOAD_PROGRESS_COMPLETE            = 0;
var UPLOAD_PROGRESS_UNPACKING           = 1;
var UPLOAD_PROGRESS_TRANSCODING         = 2;

var TRANSCODING_STATUS_CONVERSION       = 1;
var TRANSCODING_STATUS_COLLECTING       = 2;
var TRANSCODING_STATUS_PROCESSING       = 3;
var TRANSCODING_STATUS_SWF_WRITING      = 4;
var TRANSCODING_STATUS_COMPLETE         = 5;

//var STATUS_INIT                         = 0;
var STATUS_START_UPLOAD                 = 0;
var STATUS_UPLOADING                    = 1;
var STATUS_UNPACKING                    = 2;
var STATUS_START_TRANSCODING            = 3;
var STATUS_CONVERSION                   = 4;
var STATUS_COLLECTING                   = 5;
var STATUS_PROCESSING                   = 6;
var STATUS_SWF_WRITING                  = 7;
var STATUS_COMPLETE                     = 8;
var STATUS_CANCELED                     = 9;

var MEDIA_RESOURCE_STATUS_INIT              = 1;
var MEDIA_RESOURCE_STATUS_UPLOADING         = 2;
var MEDIA_RESOURCE_STATUS_UNPACKING         = 3;
var MEDIA_RESOURCE_STATUS_START_TRANSCODING = 4;
var MEDIA_RESOURCE_STATUS_COLLECTING        = 5;
var MEDIA_RESOURCE_STATUS_PROCESSING        = 6;
var MEDIA_RESOURCE_STATUS_SWF_WRITING       = 7;
var MEDIA_RESOURCE_STATUS_ONLINE            = 8;
var MEDIA_RESOURCE_STATUS_UNPUBLISHED       = 9;
var MEDIA_RESOURCE_STATUS_INTERRUPTED       = 10;
var MEDIA_RESOURCE_STATUS_COMPLETE          = 11;


//  Text message                Is diplay percents

var STATUSES_ORDER =
[
    MEDIA_RESOURCE_STATUS_INIT,
    MEDIA_RESOURCE_STATUS_UPLOADING,
    MEDIA_RESOURCE_STATUS_UNPACKING,
    MEDIA_RESOURCE_STATUS_START_TRANSCODING,
    MEDIA_RESOURCE_STATUS_COLLECTING,
    MEDIA_RESOURCE_STATUS_PROCESSING,
    MEDIA_RESOURCE_STATUS_SWF_WRITING,
    MEDIA_RESOURCE_STATUS_COMPLETE
];

var STATUSES_DISPLAY =
[
    /*[MSG_START_INIT,            false],*/
    [MSG_START_UPLOAD,          false],
    [MSG_UPLOADING,             true],
    [MSG_UNPACKING,             false],
    [MSG_START_TRANSCODING,     false],
    [MSG_COLLECTING,            true],
    [MSG_PROCESSING,            true],
    [MSG_SWF_WRITING,           false],
    [MSG_COMPLETE,              true]
];

var DISAPPEAR_STATUS_PERIOD             = 1000;

var S_OK                    = 1;
var ERR_EMAIL_INCORRECT     = 2;
var ERR_EMAIL_EMPTY         = 3;
var ERR_EMAIL_SEND_FAIL     = 4;
var ERR_RESOURCE_EMPTY      = 5;
var ERR_NOT_VALID_RESOURCE  = 6;
var ERR_IMAGE_CHECK_PASS    = 26;

var ERR_LOGIN_INCORRECT     = 2;
var ERR_UNKNOWN_USER        = 3;
var ERR_SEND_EMAIL          = 4;
var ERR_UNCONFIRMED_EMAIL   = 5;
var ERR_LOGIN_BUSY          = 6;

var SCRIPT_FILE_UPLOAD_FORM = "/file_upload_form.php";

var KEYCODE_ENTER           = 13;

var COOKIE_LOGIN_KEY_VAR    = "login_info";
var COOKIE_LIFETIME_UNITS   = "years";
var COOKIE_LIFETIME_COUNT   =  1;

var RESOURCE_OBJECT_ID      = "presentation";


//import from slideshare constants
var IMPORT_SLIDESHARE_STATUS_QUEUE                      = 0;
var IMPORT_SLIDESHARE_STATUS_LOGIN                      = 1;
var IMPORT_SLIDESHARE_STATUS_SEARCH_PRESENTATIONS       = 2;
var IMPORT_SLIDESHARE_STATUS_PREPARE_PRESENTATIONS_INFO = 3;
var IMPORT_SLIDESHARE_STATUS_DOWNLOAD_PRESENTATIONS     = 4;
var IMPORT_SLIDESHARE_STATUS_CONVERT_PRESENTATIONS      = 5;
var IMPORT_SLIDESHARE_STATUS_COMPLETE                   = 6;
var IMPORT_SLIDESHARE_STATUS_PREPARE_ACCOUNT_INFORMATION = 7;

//import from slideshare messages
var IMPORT_SLIDESHARE_STATUS_MESSAGES =
[
    "Initialization...",
    "Login...",
    "Search For Presentation...",
    "Gathering presentations' information...",
    "Downloading presentations...",
    "Processing presentations...",
    "Complete",
    "Gathering account's information..."
];

//import from slideshare errors
var IMPORT_SLIDESHARE_STATUS_LOGIN_FAILED               = 8;
var IMPORT_SLIDESHARE_STATUS_FAILED                     = 9;

var RESPONSE_GROUP_INCORRECT_TITLE                      = 1;
var RESPONSE_GROUP_INCORRECT_DESCRIPTION                = 2;

var RESOURCE_DETAILS_COMMENT_WRAP_LENGTH                = 40;
var RESOURCE_DETAILS_GRAPHIC_COMMENT_WRAP_LENGTH        = 18;

var TAG_MAX_LENGTH = 50;

var Config = function ()
{
    var jsonPrefix = /^_json:(.*)$/i;

    function parseValue(elementId)
    {
        var element = GetElement(elementId);
        if (!element)
        {
            return null;
        }

        var value = element.value;
        var match = false;
        if (value && (match = jsonPrefix.exec(value)))
        {
            var object = null;
            eval("object = " + match[1]);
            return object;
        }
        return value;
    }

    var constPrefix = "js_const_";
    this.get = function (name)
    {
        if (this[name] === undefined)
        {
            // try to parse
            this[name] = parseValue(constPrefix + name);
        }

        return this[name];
    };

    this.getPrefix = function ()
    {
        return jsonPrefix;
    };
};

var CONSTS = new Config();
var RESOURCE_DETAILS_COMMENT_WRAP_LENGTH                = 40;
var RESOURCE_DETAILS_GRAPHIC_COMMENT_WRAP_LENGTH        = 18;

var GENERATE_WIDGET_PK_SCRIPT_URL = "/generate_widget_pk.php";

