var SWFUpload;var time_total_last = 0;if (SWFUpload == undefined) {    SWFUpload = function(settings){        this.initSWFUpload(settings);    };}SWFUpload.prototype.initSWFUpload = function(settings){    try {        this.customSettings = {};        this.settings = settings;        this.eventQueue = [];        this.movieName = "SWFUpload_" + SWFUpload.movieCount++;        this.movieElement = null;        SWFUpload.instances[this.movieName] = this;        this.initSettings();        this.loadFlash();        this.displayDebugInfo();    }     catch (ex) {        delete SWFUpload.instances[this.movieName];        throw ex;    }};SWFUpload.instances = {};SWFUpload.movieCount = 0;SWFUpload.version = "2.2.0 2009-03-25";SWFUpload.QUEUE_ERROR = {    QUEUE_LIMIT_EXCEEDED: -100,    FILE_EXCEEDS_SIZE_LIMIT: -110,    ZERO_BYTE_FILE: -120,    INVALID_FILETYPE: -130};SWFUpload.UPLOAD_ERROR = {    HTTP_ERROR: -200,    MISSING_UPLOAD_URL: -210,    IO_ERROR: -220,    SECURITY_ERROR: -230,    UPLOAD_LIMIT_EXCEEDED: -240,    UPLOAD_FAILED: -250,    SPECIFIED_FILE_ID_NOT_FOUND: -260,    FILE_VALIDATION_FAILED: -270,    FILE_CANCELLED: -280,    UPLOAD_STOPPED: -290};SWFUpload.FILE_STATUS = {    QUEUED: -1,    IN_PROGRESS: -2,    ERROR: -3,    COMPLETE: -4,    CANCELLED: -5};SWFUpload.BUTTON_ACTION = {    SELECT_FILE: -100,    SELECT_FILES: -110,    START_UPLOAD: -120};SWFUpload.CURSOR = {    ARROW: -1,    HAND: -2};SWFUpload.WINDOW_MODE = {    WINDOW: "window",    TRANSPARENT: "transparent",    OPAQUE: "opaque"};SWFUpload.completeURL = function(url){    if (typeof(url) !== "string" || url.match(/^https?:\/\//i) || url.match(/^\//)) {        return url;    }    var currentURL = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : "");    var indexSlash = window.location.pathname.lastIndexOf("/");    if (indexSlash <= 0) {        path = "/";    }    else {        path = window.location.pathname.substr(0, indexSlash) + "/";    }    return path + url;};SWFUpload.prototype.initSettings = function(){    this.ensureDefault = function(settingName, defaultValue){        this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName];    };    this.ensureDefault("upload_url", "");    this.ensureDefault("preserve_relative_urls", false);    this.ensureDefault("file_post_name", "Filedata");    this.ensureDefault("post_params", {});    this.ensureDefault("use_query_string", false);    this.ensureDefault("requeue_on_error", false);    this.ensureDefault("http_success", []);    this.ensureDefault("assume_success_timeout", 0);    this.ensureDefault("file_types", "*.*");    this.ensureDefault("file_types_description", "All Files");    this.ensureDefault("file_size_limit", 0);    this.ensureDefault("file_upload_limit", 0);    this.ensureDefault("file_queue_limit", 0);    this.ensureDefault("flash_url", "swfupload.swf");    this.ensureDefault("prevent_swf_caching", true);    this.ensureDefault("button_image_url", "");    this.ensureDefault("button_width", 1);    this.ensureDefault("button_height", 1);    this.ensureDefault("button_text", "");    this.ensureDefault("button_text_style", "color: #000000; font-size: 16pt;");    this.ensureDefault("button_text_top_padding", 0);    this.ensureDefault("button_text_left_padding", 0);    this.ensureDefault("button_action", SWFUpload.BUTTON_ACTION.SELECT_FILES);    this.ensureDefault("button_disabled", false);    this.ensureDefault("button_placeholder_id", "");    this.ensureDefault("button_placeholder", null);    this.ensureDefault("button_cursor", SWFUpload.CURSOR.ARROW);    this.ensureDefault("button_window_mode", SWFUpload.WINDOW_MODE.WINDOW);    this.ensureDefault("debug", false);    this.settings.debug_enabled = this.settings.debug;    this.settings.return_upload_start_handler = this.returnUploadStart;    this.ensureDefault("swfupload_loaded_handler", null);    this.ensureDefault("file_dialog_start_handler", null);    this.ensureDefault("file_queued_handler", null);    this.ensureDefault("file_queue_error_handler", null);    this.ensureDefault("file_dialog_complete_handler", null);    this.ensureDefault("upload_start_handler", null);    this.ensureDefault("upload_progress_handler", null);    this.ensureDefault("upload_error_handler", null);    this.ensureDefault("upload_success_handler", null);    this.ensureDefault("upload_complete_handler", null);    this.ensureDefault("debug_handler", this.debugMessage);    this.ensureDefault("custom_settings", {});    this.customSettings = this.settings.custom_settings;    if (!!this.settings.prevent_swf_caching) {        this.settings.flash_url = this.settings.flash_url + (this.settings.flash_url.indexOf("?") < 0 ? "?" : "&") + "preventswfcaching=" + new Date().getTime();    }    if (!this.settings.preserve_relative_urls) {        this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url);        this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url);    }    delete this.ensureDefault;};SWFUpload.prototype.loadFlash = function(){    var targetElement, tempParent;    if (document.getElementById(this.movieName) !== null) {        throw "ID " + this.movieName + " is already in use. The Flash Object could not be added";    }    targetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder;    if (targetElement == undefined) {        throw "Could not find the placeholder element: " + this.settings.button_placeholder_id;    }    tempParent = document.createElement("div");    tempParent.innerHTML = this.getFlashHTML();    targetElement.parentNode.replaceChild(tempParent.firstChild, targetElement);    if (window[this.movieName] == undefined) {        window[this.movieName] = this.getMovieElement();    }};SWFUpload.prototype.getFlashHTML = function(){    return ['<object id="', this.movieName, '" type="application/x-shockwave-flash" data="', this.settings.flash_url, '" width="', this.settings.button_width, '" height="', this.settings.button_height, '" class="swfupload">', '<param name="wmode" value="', this.settings.button_window_mode, '" />', '<param name="movie" value="', this.settings.flash_url, '" />', '<param name="quality" value="high" />', '<param name="menu" value="false" />', '<param name="allowScriptAccess" value="always" />', '<param name="flashvars" value="' + this.getFlashVars() + '" />', '</object>'].join("");};SWFUpload.prototype.getFlashVars = function(){    var paramString = this.buildParamString();    var httpSuccessString = this.settings.http_success.join(",");    return ["movieName=", encodeURIComponent(this.movieName), "&amp;uploadURL=", encodeURIComponent(this.settings.upload_url), "&amp;useQueryString=", encodeURIComponent(this.settings.use_query_string), "&amp;requeueOnError=", encodeURIComponent(this.settings.requeue_on_error), "&amp;httpSuccess=", encodeURIComponent(httpSuccessString), "&amp;assumeSuccessTimeout=", encodeURIComponent(this.settings.assume_success_timeout), "&amp;params=", encodeURIComponent(paramString), "&amp;filePostName=", encodeURIComponent(this.settings.file_post_name), "&amp;fileTypes=", encodeURIComponent(this.settings.file_types), "&amp;fileTypesDescription=", encodeURIComponent(this.settings.file_types_description), "&amp;fileSizeLimit=", encodeURIComponent(this.settings.file_size_limit), "&amp;fileUploadLimit=", encodeURIComponent(this.settings.file_upload_limit), "&amp;fileQueueLimit=", encodeURIComponent(this.settings.file_queue_limit), "&amp;debugEnabled=", encodeURIComponent(this.settings.debug_enabled), "&amp;buttonImageURL=", encodeURIComponent(this.settings.button_image_url), "&amp;buttonWidth=", encodeURIComponent(this.settings.button_width), "&amp;buttonHeight=", encodeURIComponent(this.settings.button_height), "&amp;buttonText=", encodeURIComponent(this.settings.button_text), "&amp;buttonTextTopPadding=", encodeURIComponent(this.settings.button_text_top_padding), "&amp;buttonTextLeftPadding=", encodeURIComponent(this.settings.button_text_left_padding), "&amp;buttonTextStyle=", encodeURIComponent(this.settings.button_text_style), "&amp;buttonAction=", encodeURIComponent(this.settings.button_action), "&amp;buttonDisabled=", encodeURIComponent(this.settings.button_disabled), "&amp;buttonCursor=", encodeURIComponent(this.settings.button_cursor)].join("");};SWFUpload.prototype.getMovieElement = function(){    if (this.movieElement == undefined) {        this.movieElement = document.getElementById(this.movieName);    }    if (this.movieElement === null) {        throw "Could not find Flash element";    }    return this.movieElement;};SWFUpload.prototype.buildParamString = function(){    var postParams = this.settings.post_params;    var paramStringPairs = [];    if (typeof(postParams) === "object") {        for (var name in postParams) {            if (postParams.hasOwnProperty(name)) {                paramStringPairs.push(encodeURIComponent(name.toString()) + "=" + encodeURIComponent(postParams[name].toString()));            }        }    }    return paramStringPairs.join("&amp;");};SWFUpload.prototype.destroy = function(){    try {        this.cancelUpload(null, false);        var movieElement = null;        movieElement = this.getMovieElement();        if (movieElement && typeof(movieElement.CallFunction) === "unknown") {            for (var i in movieElement) {                try {                    if (typeof(movieElement[i]) === "function") {                        movieElement[i] = null;                    }                }                 catch (ex1) {                }            }            try {                movieElement.parentNode.removeChild(movieElement);            }             catch (ex) {            }        }        window[this.movieName] = null;        SWFUpload.instances[this.movieName] = null;        delete SWFUpload.instances[this.movieName];        this.movieElement = null;        this.settings = null;        this.customSettings = null;        this.eventQueue = null;        this.movieName = null;        return true;    }     catch (ex2) {        return false;    }};SWFUpload.prototype.displayDebugInfo = function(){    this.debug(["---SWFUpload Instance Info---\n", "Version: ", SWFUpload.version, "\n", "Movie Name: ", this.movieName, "\n", "Settings:\n", "\t", "upload_url:               ", this.settings.upload_url, "\n", "\t", "flash_url:                ", this.settings.flash_url, "\n", "\t", "use_query_string:         ", this.settings.use_query_string.toString(), "\n", "\t", "requeue_on_error:         ", this.settings.requeue_on_error.toString(), "\n", "\t", "http_success:             ", this.settings.http_success.join(", "), "\n", "\t", "assume_success_timeout:   ", this.settings.assume_success_timeout, "\n", "\t", "file_post_name:           ", this.settings.file_post_name, "\n", "\t", "post_params:              ", this.settings.post_params.toString(), "\n", "\t", "file_types:               ", this.settings.file_types, "\n", "\t", "file_types_description:   ", this.settings.file_types_description, "\n", "\t", "file_size_limit:          ", this.settings.file_size_limit, "\n", "\t", "file_upload_limit:        ", this.settings.file_upload_limit, "\n", "\t", "file_queue_limit:         ", this.settings.file_queue_limit, "\n", "\t", "debug:                    ", this.settings.debug.toString(), "\n", "\t", "prevent_swf_caching:      ", this.settings.prevent_swf_caching.toString(), "\n", "\t", "button_placeholder_id:    ", this.settings.button_placeholder_id.toString(), "\n", "\t", "button_placeholder:       ", (this.settings.button_placeholder ? "Set" : "Not Set"), "\n", "\t", "button_image_url:         ", this.settings.button_image_url.toString(), "\n", "\t", "button_width:             ", this.settings.button_width.toString(), "\n", "\t", "button_height:            ", this.settings.button_height.toString(), "\n", "\t", "button_text:              ", this.settings.button_text.toString(), "\n", "\t", "button_text_style:        ", this.settings.button_text_style.toString(), "\n", "\t", "button_text_top_padding:  ", this.settings.button_text_top_padding.toString(), "\n", "\t", "button_text_left_padding: ", this.settings.button_text_left_padding.toString(), "\n", "\t", "button_action:            ", this.settings.button_action.toString(), "\n", "\t", "button_disabled:          ", this.settings.button_disabled.toString(), "\n", "\t", "custom_settings:          ", this.settings.custom_settings.toString(), "\n", "Event Handlers:\n", "\t", "swfupload_loaded_handler assigned:  ", (typeof this.settings.swfupload_loaded_handler === "function").toString(), "\n", "\t", "file_dialog_start_handler assigned: ", (typeof this.settings.file_dialog_start_handler === "function").toString(), "\n", "\t", "file_queued_handler assigned:       ", (typeof this.settings.file_queued_handler === "function").toString(), "\n", "\t", "file_queue_error_handler assigned:  ", (typeof this.settings.file_queue_error_handler === "function").toString(), "\n", "\t", "upload_start_handler assigned:      ", (typeof this.settings.upload_start_handler === "function").toString(), "\n", "\t", "upload_progress_handler assigned:   ", (typeof this.settings.upload_progress_handler === "function").toString(), "\n", "\t", "upload_error_handler assigned:      ", (typeof this.settings.upload_error_handler === "function").toString(), "\n", "\t", "upload_success_handler assigned:    ", (typeof this.settings.upload_success_handler === "function").toString(), "\n", "\t", "upload_complete_handler assigned:   ", (typeof this.settings.upload_complete_handler === "function").toString(), "\n", "\t", "debug_handler assigned:             ", (typeof this.settings.debug_handler === "function").toString(), "\n"].join(""));};SWFUpload.prototype.addSetting = function(name, value, default_value){    if (value == undefined) {        return (this.settings[name] = default_value);    }    else {        return (this.settings[name] = value);    }};SWFUpload.prototype.getSetting = function(name){    if (this.settings[name] != undefined) {        return this.settings[name];    }    return "";};SWFUpload.prototype.callFlash = function(functionName, argumentArray){    argumentArray = argumentArray || [];    var movieElement = this.getMovieElement();    var returnValue, returnString;    try {        returnString = movieElement.CallFunction('<invoke name="' + functionName + '" returntype="javascript">' + __flash__argumentsToXML(argumentArray, 0) + '</invoke>');        returnValue = eval(returnString);    }     catch (ex) {        throw "Call to " + functionName + " failed";    }    if (returnValue != undefined && typeof returnValue.post === "object") {        returnValue = this.unescapeFilePostParams(returnValue);    }    return returnValue;};SWFUpload.prototype.selectFile = function(){    this.callFlash("SelectFile");};SWFUpload.prototype.selectFiles = function(){    this.callFlash("SelectFiles");};SWFUpload.prototype.startUpload = function(fileID){    this.callFlash("StartUpload", [fileID]);};SWFUpload.prototype.cancelUpload = function(fileID, triggerErrorEvent){    if (triggerErrorEvent !== false) {        triggerErrorEvent = true;    }    this.callFlash("CancelUpload", [fileID, triggerErrorEvent]);};SWFUpload.prototype.stopUpload = function(){    this.callFlash("StopUpload");};SWFUpload.prototype.stopUpload = function(indexOrFileID){    return this.callFlash("RequeueUpload", [indexOrFileID]);};SWFUpload.prototype.getStats = function(){    return this.callFlash("GetStats");};SWFUpload.prototype.setStats = function(statsObject){    this.callFlash("SetStats", [statsObject]);};SWFUpload.prototype.getFile = function(fileID){    if (typeof(fileID) === "number") {        return this.callFlash("GetFileByIndex", [fileID]);    }    else {        return this.callFlash("GetFile", [fileID]);    }};SWFUpload.prototype.addFileParam = function(fileID, name, value){    return this.callFlash("AddFileParam", [fileID, name, value]);};SWFUpload.prototype.removeFileParam = function(fileID, name){    this.callFlash("RemoveFileParam", [fileID, name]);};SWFUpload.prototype.setUploadURL = function(url){    this.settings.upload_url = url.toString();    this.callFlash("SetUploadURL", [url]);};SWFUpload.prototype.setPostParams = function(paramsObject){    this.settings.post_params = paramsObject;    this.callFlash("SetPostParams", [paramsObject]);};SWFUpload.prototype.addPostParam = function(name, value){    this.settings.post_params[name] = value;    this.callFlash("SetPostParams", [this.settings.post_params]);};SWFUpload.prototype.removePostParam = function(name){    delete this.settings.post_params[name];    this.callFlash("SetPostParams", [this.settings.post_params]);};SWFUpload.prototype.setFileTypes = function(types, description){    this.settings.file_types = types;    this.settings.file_types_description = description;    this.callFlash("SetFileTypes", [types, description]);};SWFUpload.prototype.setFileSizeLimit = function(fileSizeLimit){    this.settings.file_size_limit = fileSizeLimit;    this.callFlash("SetFileSizeLimit", [fileSizeLimit]);};SWFUpload.prototype.setFileUploadLimit = function(fileUploadLimit){    this.settings.file_upload_limit = fileUploadLimit;    this.callFlash("SetFileUploadLimit", [fileUploadLimit]);};SWFUpload.prototype.setFileQueueLimit = function(fileQueueLimit){    this.settings.file_queue_limit = fileQueueLimit;    this.callFlash("SetFileQueueLimit", [fileQueueLimit]);};SWFUpload.prototype.setFilePostName = function(filePostName){    this.settings.file_post_name = filePostName;    this.callFlash("SetFilePostName", [filePostName]);};SWFUpload.prototype.setUseQueryString = function(useQueryString){    this.settings.use_query_string = useQueryString;    this.callFlash("SetUseQueryString", [useQueryString]);};SWFUpload.prototype.setRequeueOnError = function(requeueOnError){    this.settings.requeue_on_error = requeueOnError;    this.callFlash("SetRequeueOnError", [requeueOnError]);};SWFUpload.prototype.setHTTPSuccess = function(http_status_codes){    if (typeof http_status_codes === "string") {        http_status_codes = http_status_codes.replace(" ", "").split(",");    }    this.settings.http_success = http_status_codes;    this.callFlash("SetHTTPSuccess", [http_status_codes]);};SWFUpload.prototype.setAssumeSuccessTimeout = function(timeout_seconds){    this.settings.assume_success_timeout = timeout_seconds;    this.callFlash("SetAssumeSuccessTimeout", [timeout_seconds]);};SWFUpload.prototype.setDebugEnabled = function(debugEnabled){    this.settings.debug_enabled = debugEnabled;    this.callFlash("SetDebugEnabled", [debugEnabled]);};SWFUpload.prototype.setButtonImageURL = function(buttonImageURL){    if (buttonImageURL == undefined) {        buttonImageURL = "";    }    this.settings.button_image_url = buttonImageURL;    this.callFlash("SetButtonImageURL", [buttonImageURL]);};SWFUpload.prototype.setButtonDimensions = function(width, height){    this.settings.button_width = width;    this.settings.button_height = height;    var movie = this.getMovieElement();    if (movie != undefined) {        movie.style.width = width + "px";        movie.style.height = height + "px";    }    this.callFlash("SetButtonDimensions", [width, height]);};SWFUpload.prototype.setButtonText = function(html){    this.settings.button_text = html;    this.callFlash("SetButtonText", [html]);};SWFUpload.prototype.setButtonTextPadding = function(left, top){    this.settings.button_text_top_padding = top;    this.settings.button_text_left_padding = left;    this.callFlash("SetButtonTextPadding", [left, top]);};SWFUpload.prototype.setButtonTextStyle = function(css){    this.settings.button_text_style = css;    this.callFlash("SetButtonTextStyle", [css]);};SWFUpload.prototype.setButtonDisabled = function(isDisabled){    this.settings.button_disabled = isDisabled;    this.callFlash("SetButtonDisabled", [isDisabled]);};SWFUpload.prototype.setButtonAction = function(buttonAction){    this.settings.button_action = buttonAction;    this.callFlash("SetButtonAction", [buttonAction]);};SWFUpload.prototype.setButtonCursor = function(cursor){    this.settings.button_cursor = cursor;    this.callFlash("SetButtonCursor", [cursor]);};SWFUpload.prototype.queueEvent = function(handlerName, argumentArray){    if (argumentArray == undefined) {        argumentArray = [];    }    else         if (!(argumentArray instanceof Array)) {            argumentArray = [argumentArray];        }    var self = this;    if (typeof this.settings[handlerName] === "function") {        this.eventQueue.push(function(){            this.settings[handlerName].apply(this, argumentArray);        });        setTimeout(function(){            self.executeNextEvent();        }, 0);    }    else         if (this.settings[handlerName] !== null) {            throw "Event handler " + handlerName + " is unknown or is not a function";        }};SWFUpload.prototype.executeNextEvent = function(){    var f = this.eventQueue ? this.eventQueue.shift() : null;    if (typeof(f) === "function") {        f.apply(this);    }};SWFUpload.prototype.unescapeFilePostParams = function(file){    var reg = /[$]([0-9a-f]{4})/i;    var unescapedPost = {};    var uk;    if (file != undefined) {        for (var k in file.post) {            if (file.post.hasOwnProperty(k)) {                uk = k;                var match;                while ((match = reg.exec(uk)) !== null) {                    uk = uk.replace(match[0], String.fromCharCode(parseInt("0x" + match[1], 16)));                }                unescapedPost[uk] = file.post[k];            }        }        file.post = unescapedPost;    }    return file;};SWFUpload.prototype.testExternalInterface = function(){    try {        return this.callFlash("TestExternalInterface");    }     catch (ex) {        return false;    }};SWFUpload.prototype.flashReady = function(){    var movieElement = this.getMovieElement();    if (!movieElement) {        this.debug("Flash called back ready but the flash movie can't be found.");        return;    }    this.cleanUp(movieElement);    this.queueEvent("swfupload_loaded_handler");};SWFUpload.prototype.cleanUp = function(movieElement){    try {        if (this.movieElement && typeof(movieElement.CallFunction) === "unknown") {            this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");            for (var key in movieElement) {                try {                    if (typeof(movieElement[key]) === "function") {                        movieElement[key] = null;                    }                }                 catch (ex) {                }            }        }    }     catch (ex1) {    }    window["__flash__removeCallback"] = function(instance, name){        try {            if (instance) {                instance[name] = null;            }        }         catch (flashEx) {        }    };};SWFUpload.prototype.fileDialogStart = function(){    this.queueEvent("file_dialog_start_handler");};SWFUpload.prototype.fileQueued = function(file){    file = this.unescapeFilePostParams(file);    this.queueEvent("file_queued_handler", file);};SWFUpload.prototype.fileQueueError = function(file, errorCode, message){	if(errorCode==SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED){		alert("Błąd! Ilość plików przesyłanych za jednym razem została przekroczona. Można przesłać maksymalnie 5 plików.");	}    file = this.unescapeFilePostParams(file);    this.queueEvent("file_queue_error_handler", [file, errorCode, message]);};SWFUpload.prototype.fileDialogComplete = function(numFilesSelected, numFilesQueued, numFilesInQueue){    this.queueEvent("file_dialog_complete_handler", [numFilesSelected, numFilesQueued, numFilesInQueue]);};SWFUpload.prototype.uploadStart = function(file){    file = this.unescapeFilePostParams(file);    this.queueEvent("return_upload_start_handler", file);};SWFUpload.prototype.returnUploadStart = function(file){    var returnValue;    if (typeof this.settings.upload_start_handler === "function") {        file = this.unescapeFilePostParams(file);        returnValue = this.settings.upload_start_handler.call(this, file);    }    else         if (this.settings.upload_start_handler != undefined) {            throw "upload_start_handler must be a function";        }    if (returnValue === undefined) {        returnValue = true;    }    returnValue = !!returnValue;    this.callFlash("ReturnUploadStart", [returnValue]);};SWFUpload.prototype.uploadProgress = function(file, bytesComplete, bytesTotal){    file = this.unescapeFilePostParams(file);    this.queueEvent("upload_progress_handler", [file, bytesComplete, bytesTotal]);};SWFUpload.prototype.uploadError = function(file, errorCode, message){    file = this.unescapeFilePostParams(file);    this.queueEvent("upload_error_handler", [file, errorCode, message]);};SWFUpload.prototype.uploadSuccess = function(file, serverData, responseReceived){    file = this.unescapeFilePostParams(file);    this.queueEvent("upload_success_handler", [file, serverData, responseReceived]);};SWFUpload.prototype.uploadComplete = function(file){    file = this.unescapeFilePostParams(file);    this.queueEvent("upload_complete_handler", file);};SWFUpload.prototype.debug = function(message){    this.queueEvent("debug_handler", message);};SWFUpload.prototype.debugMessage = function(message){    if (this.settings.debug) {        var exceptionMessage, exceptionValues = [];        if (typeof message === "object" && typeof message.name === "string" && typeof message.message === "string") {            for (var key in message) {                if (message.hasOwnProperty(key)) {                    exceptionValues.push(key + ": " + message[key]);                }            }            exceptionMessage = exceptionValues.join("\n") || "";            exceptionValues = exceptionMessage.split("\n");            exceptionMessage = "EXCEPTION: " + exceptionValues.join("\nEXCEPTION: ");            SWFUpload.Console.writeLine(exceptionMessage);        }        else {            SWFUpload.Console.writeLine(message);        }    }};SWFUpload.Console = {};SWFUpload.Console.writeLine = function(message){    var console, documentForm;    try {        console = document.getElementById("SWFUpload_Console");        if (!console) {            documentForm = document.createElement("form");            document.getElementsByTagName("body")[0].appendChild(documentForm);            console = document.createElement("textarea");            console.id = "SWFUpload_Console";            console.style.fontFamily = "monospace";            console.setAttribute("wrap", "off");            console.wrap = "off";            console.style.overflow = "auto";            console.style.width = "700px";            console.style.height = "350px";            console.style.margin = "5px";            documentForm.appendChild(console);        }        console.value += message + "\n";        console.scrollTop = console.scrollHeight - console.clientHeight;    }     catch (ex) {        alert("Exception: " + ex.name + " Message: " + ex.message);    }};var SWFUpload;if (typeof(SWFUpload) === "function") {    SWFUpload.speed = {};    SWFUpload.prototype.initSettings = (function(oldInitSettings){        return function(){            if (typeof(oldInitSettings) === "function") {                oldInitSettings.call(this);            }            this.ensureDefault = function(settingName, defaultValue){                this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName];            };            this.fileSpeedStats = {};            this.speedSettings = {};            this.ensureDefault("moving_average_history_size", "10");            this.speedSettings.user_file_queued_handler = this.settings.file_queued_handler;            this.speedSettings.user_file_queue_error_handler = this.settings.file_queue_error_handler;            this.speedSettings.user_upload_start_handler = this.settings.upload_start_handler;            this.speedSettings.user_upload_error_handler = this.settings.upload_error_handler;            this.speedSettings.user_upload_progress_handler = this.settings.upload_progress_handler;            this.speedSettings.user_upload_success_handler = this.settings.upload_success_handler;            this.speedSettings.user_upload_complete_handler = this.settings.upload_complete_handler;            this.settings.file_queued_handler = SWFUpload.speed.fileQueuedHandler;            this.settings.file_queue_error_handler = SWFUpload.speed.fileQueueErrorHandler;            this.settings.upload_start_handler = SWFUpload.speed.uploadStartHandler;            this.settings.upload_error_handler = SWFUpload.speed.uploadErrorHandler;            this.settings.upload_progress_handler = SWFUpload.speed.uploadProgressHandler;            this.settings.upload_success_handler = SWFUpload.speed.uploadSuccessHandler;            this.settings.upload_complete_handler = SWFUpload.speed.uploadCompleteHandler;            delete this.ensureDefault;        };    })(SWFUpload.prototype.initSettings);    SWFUpload.speed.fileQueuedHandler = function(file){        if (typeof this.speedSettings.user_file_queued_handler === "function") {            file = SWFUpload.speed.extendFile(file);            return this.speedSettings.user_file_queued_handler.call(this, file);        }    };    SWFUpload.speed.fileQueueErrorHandler = function(file){        if (typeof this.speedSettings.user_file_queue_error_handler === "function") {            file = SWFUpload.speed.extendFile(file);            return this.speedSettings.user_file_queue_error_handler.call(this, file);        }    };    SWFUpload.speed.uploadStartHandler = function(file){        if (typeof this.speedSettings.user_upload_start_handler === "function") {            file = SWFUpload.speed.extendFile(file, this.fileSpeedStats);            return this.speedSettings.user_upload_start_handler.call(this, file);        }    };    SWFUpload.speed.uploadErrorHandler = function(file, errorCode, message){        file = SWFUpload.speed.extendFile(file, this.fileSpeedStats);        SWFUpload.speed.removeTracking(file, this.fileSpeedStats);        if (typeof this.speedSettings.user_upload_error_handler === "function") {            return this.speedSettings.user_upload_error_handler.call(this, file, errorCode, message);        }    };    SWFUpload.speed.uploadProgressHandler = function(file, bytesComplete, bytesTotal){        this.updateTracking(file, bytesComplete);        file = SWFUpload.speed.extendFile(file, this.fileSpeedStats);        if (typeof this.speedSettings.user_upload_progress_handler === "function") {            return this.speedSettings.user_upload_progress_handler.call(this, file, bytesComplete, bytesTotal);        }    };    SWFUpload.speed.uploadSuccessHandler = function(file, serverData){        if (typeof this.speedSettings.user_upload_success_handler === "function") {            file = SWFUpload.speed.extendFile(file, this.fileSpeedStats);            return this.speedSettings.user_upload_success_handler.call(this, file, serverData);        }    };    SWFUpload.speed.uploadCompleteHandler = function(file){        file = SWFUpload.speed.extendFile(file, this.fileSpeedStats);        SWFUpload.speed.removeTracking(file, this.fileSpeedStats);        if (typeof this.speedSettings.user_upload_complete_handler === "function") {            return this.speedSettings.user_upload_complete_handler.call(this, file);        }    };    SWFUpload.speed.extendFile = function(file, trackingList){        var tracking;        if (trackingList) {            tracking = trackingList[file.id];        }        if (tracking) {            file.currentSpeed = tracking.currentSpeed;            file.averageSpeed = tracking.averageSpeed;            file.movingAverageSpeed = tracking.movingAverageSpeed;            file.timeRemaining = tracking.timeRemaining;            file.timeElapsed = tracking.timeElapsed;            file.percentUploaded = tracking.percentUploaded;            file.sizeUploaded = tracking.bytesUploaded;        }        else {            file.currentSpeed = 0;            file.averageSpeed = 0;            file.movingAverageSpeed = 0;            file.timeRemaining = 0;            file.timeElapsed = 0;            file.percentUploaded = 0;            file.sizeUploaded = 0;        }        return file;    };    SWFUpload.prototype.updateTracking = function(file, bytesUploaded){        var tracking = this.fileSpeedStats[file.id];        if (!tracking) {            this.fileSpeedStats[file.id] = tracking = {};        }        bytesUploaded = bytesUploaded || tracking.bytesUploaded || 0;        if (bytesUploaded < 0) {            bytesUploaded = 0;        }        if (bytesUploaded > file.size) {            bytesUploaded = file.size;        }        var tickTime = (new Date()).getTime();        if (!tracking.startTime) {            tracking.startTime = (new Date()).getTime();            tracking.lastTime = tracking.startTime;            tracking.currentSpeed = 0;            tracking.averageSpeed = 0;            tracking.movingAverageSpeed = 0;            tracking.movingAverageHistory = [];            tracking.timeRemaining = 0;            tracking.timeElapsed = 0;            tracking.percentUploaded = bytesUploaded / file.size;            tracking.bytesUploaded = bytesUploaded;        }        else             if (tracking.startTime > tickTime) {                this.debug("When backwards in time");            }            else {                var now = (new Date()).getTime();                var lastTime = tracking.lastTime;                var deltaTime = now - lastTime;                var deltaBytes = bytesUploaded - tracking.bytesUploaded;                if (deltaBytes === 0 || deltaTime === 0) {                    return tracking;                }                tracking.lastTime = now;                tracking.bytesUploaded = bytesUploaded;                tracking.currentSpeed = (deltaBytes * 8) / (deltaTime / 1000);                tracking.averageSpeed = (tracking.bytesUploaded * 8) / ((now - tracking.startTime) / 1000);                tracking.movingAverageHistory.push(tracking.currentSpeed);                if (tracking.movingAverageHistory.length > this.settings.moving_average_history_size) {                    tracking.movingAverageHistory.shift();                }                tracking.movingAverageSpeed = SWFUpload.speed.calculateMovingAverage(tracking.movingAverageHistory);                tracking.timeRemaining = (file.size - tracking.bytesUploaded) * 8 / tracking.movingAverageSpeed;                tracking.timeElapsed = (now - tracking.startTime) / 1000;                tracking.percentUploaded = (tracking.bytesUploaded / file.size * 100);            }        return tracking;    };    SWFUpload.speed.removeTracking = function(file, trackingList){        try {            trackingList[file.id] = null;            delete trackingList[file.id];        }         catch (ex) {        }    };    SWFUpload.speed.formatUnits = function(baseNumber, unitDivisors, unitLabels, singleFractional){        var i, unit, unitDivisor, unitLabel;        if (baseNumber === 0) {            return "0 " + unitLabels[unitLabels.length - 1];        }        if (singleFractional) {            unit = baseNumber;            unitLabel = unitLabels.length >= unitDivisors.length ? unitLabels[unitDivisors.length - 1] : "";            for (i = 0; i < unitDivisors.length; i++) {                if (baseNumber >= unitDivisors[i]) {                    unit = (baseNumber / unitDivisors[i]).toFixed(0);                    unitLabel = unitLabels.length >= i ? " " + unitLabels[i] : "";                    break;                }            }            return unit + unitLabel;        }        else {            var formattedStrings = [];            var remainder = baseNumber;            for (i = 0; i < unitDivisors.length; i++) {                unitDivisor = unitDivisors[i];                unitLabel = unitLabels.length > i ? " " + unitLabels[i] : "";                unit = remainder / unitDivisor;                if (i < unitDivisors.length - 1) {                    unit = Math.floor(unit);                }                else {                    unit = unit.toFixed(0);                }                if (unit > 0) {                    remainder = remainder % unitDivisor;                    formattedStrings.push(unit + unitLabel);                }            }            return formattedStrings.join(" ");        }    };    SWFUpload.speed.formatBPS = function(baseNumber){        var bpsUnits = [1073741824, 1048576, 1024, 1], bpsUnitLabels = ["Gbps", "Mbps", "Kbps", "bps"];        return SWFUpload.speed.formatUnits(baseNumber, bpsUnits, bpsUnitLabels, true);    };    SWFUpload.speed.formatTime = function(baseNumber){        var timeUnits = [86400, 3600, 60, 1], timeUnitLabels = ["d", "h", "m", "s"];        return SWFUpload.speed.formatUnits(baseNumber, timeUnits, timeUnitLabels, false);    };    SWFUpload.speed.formatBytes = function(baseNumber){        var sizeUnits = [1073741824, 1048576, 1024, 1], sizeUnitLabels = ["GB/s", "MB/s", "KB/s", "bajtów/s"];        return SWFUpload.speed.formatUnits(baseNumber, sizeUnits, sizeUnitLabels, true);    };    SWFUpload.speed.formatBytesSimple = function(baseNumber){        var sizeUnits = [1073741824, 1048576, 1024, 1], sizeUnitLabels = ["GB", "MB", "KB", "bajtów"];        return SWFUpload.speed.formatUnits(baseNumber, sizeUnits, sizeUnitLabels, true);    };    SWFUpload.speed.formatPercent = function(baseNumber){        return baseNumber.toFixed(2) + " %";    };    SWFUpload.speed.calculateMovingAverage = function(history){        var vals = [], size, sum = 0.0, mean = 0.0, varianceTemp = 0.0, variance = 0.0, standardDev = 0.0;        var i;        var mSum = 0, mCount = 0;        size = history.length;        if (size >= 8) {            for (i = 0; i < size; i++) {                vals[i] = history[i];                sum += vals[i];            }            mean = sum / size;            for (i = 0; i < size; i++) {                varianceTemp += Math.pow((vals[i] - mean), 2);            }            variance = varianceTemp / size;            standardDev = Math.sqrt(variance);            for (i = 0; i < size; i++) {                vals[i] = (vals[i] - mean) / standardDev;            }            var deviationRange = 2.0;            for (i = 0; i < size; i++) {                if (vals[i] <= deviationRange && vals[i] >= -deviationRange) {                    mCount++;                    mSum += history[i];                }            }        }        else {            mCount = size;            for (i = 0; i < size; i++) {                mSum += history[i];            }        }        return mSum / mCount;    };}var SWFUpload;if (typeof(SWFUpload) === "function") {    SWFUpload.queue = {};    SWFUpload.prototype.initSettings = (function(oldInitSettings){        return function(){            if (typeof(oldInitSettings) === "function") {                oldInitSettings.call(this);            }            this.queueSettings = {};            this.queueSettings.queue_cancelled_flag = false;            this.queueSettings.queue_upload_count = 0;            this.queueSettings.user_upload_complete_handler = this.settings.upload_complete_handler;            this.queueSettings.user_upload_start_handler = this.settings.upload_start_handler;            this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler;            this.settings.upload_start_handler = SWFUpload.queue.uploadStartHandler;            this.settings.queue_complete_handler = this.settings.queue_complete_handler || null;        };    })(SWFUpload.prototype.initSettings);    SWFUpload.prototype.startUpload = function(fileID){        this.queueSettings.queue_cancelled_flag = false;        this.callFlash("StartUpload", [fileID]);    };    SWFUpload.prototype.cancelQueue = function(){        this.queueSettings.queue_cancelled_flag = true;        this.stopUpload();        var stats = this.getStats();        while (stats.files_queued > 0) {            this.cancelUpload();            stats = this.getStats();        }    };    SWFUpload.queue.uploadStartHandler = function(file){        var returnValue;        if (typeof(this.queueSettings.user_upload_start_handler) === "function") {            returnValue = this.queueSettings.user_upload_start_handler.call(this, file);        }        returnValue = (returnValue === false) ? false : true;        this.queueSettings.queue_cancelled_flag = !returnValue;        return returnValue;    };    SWFUpload.queue.uploadCompleteHandler = function(file){        var user_upload_complete_handler = this.queueSettings.user_upload_complete_handler;        var continueUpload;        if (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) {            this.queueSettings.queue_upload_count++;        }        if (typeof(user_upload_complete_handler) === "function") {            continueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true;        }        else             if (file.filestatus === SWFUpload.FILE_STATUS.QUEUED) {                continueUpload = false;            }            else {                continueUpload = true;            }        if (continueUpload) {            var stats = this.getStats();            if (stats.files_queued > 0 && this.queueSettings.queue_cancelled_flag === false) {                this.startUpload();            }            else                 if (this.queueSettings.queue_cancelled_flag === false) {                    this.queueEvent("queue_complete_handler", [this.queueSettings.queue_upload_count]);                    this.queueSettings.queue_upload_count = 0;                }                else {                    this.queueSettings.queue_cancelled_flag = false;                    this.queueSettings.queue_upload_count = 0;                }        }    };}var cancel = false;var file_size;var total_size = 0;var total_loaded = 0;var queue;var temp_total_size = 0;var temp_bytes_loaded = 0;var files_to_upload = new Object();var files_id = new Object();var files_progress_info = new Array();var file_id;var file_current = 0;var current_file_size = 0;var id_mod = 0;var total_precent_corection = 3;var disallowed_extension = '|.sh|.php|.php3|.php4|.php5|.py|.shtml|.stm|.shtm|.phtml|.html|.htm|.js|.jsp|.asp|.aspx|.cgi|.pl|.plx|.htaccess|.htpasswd';function fileQueued(file){	    try {        file_id = file.id.replace('SWFUpload_0_', '');        file_id++;        file_size = file.size;        this.customSettings.tdFilesQueued.innerHTML = this.getStats().files_queued;        if (files_to_upload[file.name] && files_to_upload[file.name] == file.size) {            swfu.cancelUpload(file.id);            alert('Nie można dodawać 2 tych samych plików');        }        else {			            queue = this.getStats().files_queued;            if (this.getStats().files_queued == this.settings.file_upload_limit) {                hide_add_file();            }            files_to_upload[file.name] = file.size;            files_id[file.id] = file.name;            if (disallowed_extension.search(file.type) > 0) {                alert('Plik posiada niedozwolone rozszerzenie');                swfu.cancelUpload(file.id);                cancel = true;            }            else {                $("#wraper").clone().insertBefore("#wraper2").attr('id', file.id).show();                createProgress(file);                var name = file.name;                if (name.length > 50) {                    $(".file_name_multi_" + this.getStats().files_queued).html(name.substr(0, 50) + '...');                    $('#' + file.id + ">.progressContainer > .progressName").html(name.substr(0, 50) + '...');                }                else {                    $(".file_name_multi_" + file_id).html(name);                    $('#' + file.id + " > .progressContainer > .progressName").html(name);                }                $("#file_size_" + file_id).html(size_format(file.size));                this.fileProgressWrapper = document.getElementById(this.fileProgressID);                $('#' + file.id + ">.progressCancel").show();                $('#' + file.id + ">.info_toggle").show();                $('#' + file.id + ">.back_top").show();                $('#file_to_big').hide();                $('#zero_files_error').hide();                cancel = false;                this.customSettings.tdFilesQueued.innerHTML = this.getStats().files_queued;                var progress = new FileProgress(file, this.customSettings.progressTarget);                progress.toggleCancel(true, this);            }            total_size = total_size + file.size;            temp_total_size = total_size;            current_file_size = file.size;        }    }     catch (ex) {        this.debug(ex);    }};function createProgress(file){    $('#progres_00').empty();    var i = 1;    jQuery.each(files_id, function(file_id, val){        $("#progress_wraper_" + i).clone().appendTo("#progres_00").attr('id', 'progress_' + file_id).show();        var name = val;        if (name.length > 50) {            $('.file_name_multi_' + i).html(name.substr(0, 50) + '...');        }        else {            $('.file_name_multi_' + i).html(name);        }        $('#progress_' + file_id + '> .waiting').show();        i++;    });};function expressInstall(){};function swfuploadLoadFailed(){};function fileDialogStart(){};function fileQueueError(file, errorCode, message){	    try {        if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) {            alert("You have attempted to queue too many files.\n" + (message === 0 ? "You have reached the upload limit." : "You may select " + (message > 1 ? "up to " + message + " files." : "one file.")));            return;        }        switch (errorCode) {            case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:                progress.setStatus("File is too big.");                this.debug("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);                break;            case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:                progress.setStatus("Cannot upload Zero Byte files.");                this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);                break;            case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:                progress.setStatus("Invalid File Type.");                progress.setError();                progress.setCancelled();                this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);                break;            default:	                $('#file_to_big').show();                $('#zero_files_error').hide();                this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);                break;        }    }     catch (ex) {        this.debug(ex);    };    };function fileDialogComplete(numFilesSelected, numFilesQueued){    try {        if (this.getStats().files_queued > 1) {            startFilesQueued = numFilesQueued;        }    }     catch (ex) {        this.debug(ex);    };    };function hide_add_file(){    $('#wraper2 > .progressContainer').hide();    $('#wraper2 > .swfupload').width('0px');};function show_add_file(){    $('#wraper2 > .progressContainer').show();    $('#wraper2 > .swfupload').width('83px');};function uploadStart(file){    try {        $('#start_upload').hide();        var file_id = file.id.replace('SWFUpload_0_', '');        file_id++;        file_current++;        $("#file_size_" + file_current).html(size_format(file.size));        $('.progressWrapper').hide();        $('#title_start').hide();        $('.sepleft').hide();        $('.progressContainer').hide();        $('.swfupload').width('0px');        $("#upload_pattern").show();        $('#progress_' + file.id + '> .waiting').hide();        $('#progress_' + file.id + '> .progress').show();		$('#title_wgraj').hide();        updateDisplay.call(this, file);        var progress = new FileProgress(file, this.customSettings.progressTarget);        progress.setStatus("Rozpoczynanie uploadu");        progress.toggleCancel(true, this);    }     catch (ex) {    }    return true;};function uploadProgress(file, bytesLoaded, bytesTotal){    try {        updateDisplay.call(this, file);        var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);        var progress = new FileProgress(file, this.customSettings.progressTarget);        temp_total_size = total_size - bytesLoaded;        percent_total = Math.ceil(((total_loaded + bytesLoaded) / total_size * 100));        progress.setProgress(percent);        progress.setTotalProgress(percent_total);    }     catch (ex) {        this.debug(ex);    };    };function uploadSuccess(file, serverData){    try {        var progress = new FileProgress(file, this.customSettings.progressTarget);        progress.setComplete();        progress.setStatus("Complete.");        updateDisplay.call(this, file);        var inputs = $('#' + file.id + ' :input:not([name=password2])');        var file_info_array = new Array();        var file_info = new String();        $('#speed_table').hide();        inputs.each(function(key, val){            file_info_array.push($(val).attr('name') + '=' + $(val).val());        });        if ($('#public').attr('checked')) {            file_info_array.push('public=1');        };        var time = new Date();        time = time.getTime();        file_info = file_info_array.join('&');        $.ajax({            method: "post",            url: url_base + "files/save/multi_summary",            id: "",            data: "file_info=" + serverData + "&size=" + file.size + "&upload_time=" + file.timeElapsed + '&' + file_info + '&ts=' + time + '&no=' + file_current,            success: function(html){                $('#progress_' + file.id).html(html);            }        });        progress.toggleCancel(false);    }     catch (ex) {        this.debug(ex);    };    };function uploadComplete(file){    try {        total_loaded = total_loaded + file.size;        if (this.getStats().successful_uploads != 5) {            this.customSettings.tdFilesUploaded.innerHTML = this.getStats().successful_uploads + 1;        }        if (this.getStats().files_queued == 0) {            $('#total_progress_div').hide();            $('#upload_status_img').attr('src', url_base + 'media/img/text/wgrany_plik.gif');        }        if (this.getStats().files_queued === 0) {        }        else {            this.startUpload();        }    }     catch (ex) {        this.debug(ex);    }};function updateDisplay(file){    file_id = file.id.replace('SWFUpload_0_', '');    file_id++;    if (Math.round(file.averageSpeed / 8) > 1 || Math.round(file.currentSpeed / 8) > 1) {        if (file.averageSpeed) {            var time_total = Math.round(Math.round(total_size) / Math.round(file.averageSpeed / 8));        }        else {            var time_total = Math.round(Math.round(total_size) / Math.round(file.currentSpeed / 8));        }        time_total_current = time_total - time_elapsed;        if (time_total_current > 0) {            this.customSettings.tdTimeRemaining.innerHTML = time_left(time_total_current);        }    }    this.customSettings.tdCurrentSpeed.innerHTML = SWFUpload.speed.formatBytes(file.currentSpeed / 8);    this.customSettings.tdAverageSpeed.innerHTML = SWFUpload.speed.formatBytes(file.averageSpeed / 8);    $('#tdPercentUploaded_' + file_current).html(parseInt(SWFUpload.speed.formatPercent(file.percentUploaded)) + '%');    $('#tdSizeUploaded_' + file_current).html(size_format(file.sizeUploaded));};function uploadError(file, errorCode, message){    try {        var progress = new FileProgress(file, this.customSettings.progressTarget);        progress.setError();        progress.toggleCancel(true);        switch (errorCode) {            case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:                progress.setStatus("Upload Error: " + message);                this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);                break;            case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:                progress.setStatus("Upload Failed.");                this.debug("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);                break;            case SWFUpload.UPLOAD_ERROR.IO_ERROR:                progress.setStatus("Server (IO) Error");                this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message);                break;            case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:                progress.setStatus("Security Error");                this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message);                break;            case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:                progress.setStatus("Upload limit exceeded.");                alert('za duzo plikow');                this.debug("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);                break;            case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:                progress.setStatus("Oczekiwanie..");                this.debug("Error Code: File Validation Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);                break;            case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:                progress.setStatus("Anulowano");                progress.setCancelled();                break;            case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:                progress.setStatus("Zatrzymano");                break;            default:                progress.setStatus("Unhandled Error: " + errorCode);                this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);                break;        }    }     catch (ex) {        this.debug(ex);    }};function checkFileInfo(){};function queueComplete(numFilesUploaded){    clearTimeout(timeout);    if (disallowed_extension.search(file.type) > 0) {        this.fileQueueError(file, SWFUpload.QUEUE_ERROR.INVALID_FILETYPE, '');    }    var status = document.getElementById("divStatus");    status.innerHTML = numFilesUploaded + " file" + (numFilesUploaded === 1 ? "" : "s") + " uploaded.";};var last_percent;function FileProgress(file, targetID){    this.fileProgressID = file.id;    this.childno = -1;    this.opacity = 100;    this.height = 0;    this.file_id = file.id.replace('SWFUpload_0_', '');    this.file_id++;    if (document.getElementById(this.fileProgressID)) {        this.fileProgressWrapper = document.getElementById(this.fileProgressID);    }    else {    }    if (!this.fileProgressElement) {        if (this.fileProgressWrapper.childNodes[1].className != 'progressCancel') {            this.fileProgressElement = this.fileProgressWrapper.childNodes[1];        }        else {            this.fileProgressElement = this.fileProgressWrapper.childNodes[0];        }    }    this.height = this.fileProgressWrapper.offsetHeight;    this.setTimer(null);}FileProgress.prototype.setTimer = function(timer){    this.fileProgressElement["FP_TIMER"] = timer;};FileProgress.prototype.getTimer = function(timer){    return this.fileProgressElement["FP_TIMER"] || null;};FileProgress.prototype.reset = function(){    this.fileProgressElement.className = "progressContainer";    this.fileProgressElement.childNodes[1].innerHTML = "&nbsp;";    this.fileProgressElement.childNodes[1].className = "progressBarStatus";    this.fileProgressElement.childNodes[2].className = "progressBarInProgress";    this.fileProgressElement.childNodes[2].style.width = "0%";    this.appear();};FileProgress.prototype.setTotalProgress = function(percent){    if (percent != 100) {        $('#compleet_percent').html(percent - 1 + '%');    }    else {        $('#compleet_percent').html(percent + '%');    }    $('#compleete_progres_img').css('width', percent * 4.5 + 'px');    if (percent > 99) {    }};FileProgress.prototype.setProgress = function(percentage){    $('#progress_img_' + file_current).css('width', percentage * 4.5 + 'px');};FileProgress.prototype.setComplete = function(){    this.fileProgressElement.className = "progressContainer blue";    if (this.fileProgressElement.childNodes[2].style) {        this.fileProgressElement.childNodes[2].className = "progressBarComplete";        this.fileProgressElement.childNodes[2].style.width = "";    }    else {        this.fileProgressElement.childNodes[1].className = "progressBarComplete";        this.fileProgressElement.childNodes[1].style.width = "";    }    var oSelf = this;    this.setTimer(setTimeout(function(){    }, 100));};FileProgress.prototype.setError = function(){    var oSelf = this;    this.setTimer(setTimeout(function(){        oSelf.disappear();    }, 100));};FileProgress.prototype.setCancelled = function(){    this.fileProgressElement.className = "progressContainer";    if (this.fileProgressElement.childNodes[2].style) {        this.fileProgressElement.childNodes[2].style.width = "";    }    else {        this.fileProgressElement.childNodes[1].style.width = "";    }    $("#waiting_" + this.file_id).hide();    delete files_to_upload[file.name];    show_add_file();    delete files_id[file.id];    queue--;    createProgress(file);    id_mod--;    var oSelf = this;    this.setTimer(setTimeout(function(){        oSelf.disappear();    }, 100));};FileProgress.prototype.setStatus = function(status){    this.fileProgressElement.childNodes[2].innerHTML = status;};FileProgress.prototype.toggleCancel = function(show, swfUploadInstance){    this.fileProgressWrapper.childNodes[1].style.visibility = show ? "visible" : "hidden";    if (swfUploadInstance) {        var fileID = this.fileProgressID;        this.fileProgressWrapper.childNodes[1].onclick = function(){            swfUploadInstance.cancelUpload(fileID);            return false;        };    }};FileProgress.prototype.appear = function(){    if (this.getTimer() !== null) {        clearTimeout(this.getTimer());        this.setTimer(null);    }    if (this.fileProgressWrapper.filters) {        try {            this.fileProgressWrapper.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 100;        }         catch (e) {            this.fileProgressWrapper.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";        }    }    else {        this.fileProgressWrapper.style.opacity = 1;    }    this.fileProgressWrapper.style.height = "";    this.height = this.fileProgressWrapper.offsetHeight;    this.opacity = 100;    this.fileProgressWrapper.style.display = "";};FileProgress.prototype.disappear = function(){    var reduceOpacityBy = 15;    var reduceHeightBy = 4;    var rate = 30;    if (this.opacity > 0) {        this.opacity -= reduceOpacityBy;        if (this.opacity < 0) {            this.opacity = 0;        }        if (this.fileProgressWrapper.filters) {            try {                this.fileProgressWrapper.filters.item("DXImageTransform.Microsoft.Alpha").opacity = this.opacity;            }             catch (e) {                this.fileProgressWrapper.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + this.opacity + ")";            }        }        else {            this.fileProgressWrapper.style.opacity = this.opacity / 100;        }    }    if (this.height > 0) {        this.height -= reduceHeightBy;        if (this.height < 0) {            this.height = 0;        }        this.fileProgressWrapper.style.height = this.height + "px";    }    if (this.height > 0 || this.opacity > 0) {        var oSelf = this;        this.setTimer(setTimeout(function(){            oSelf.disappear();        }, rate));    }    else {        this.fileProgressWrapper.style.display = "none";        this.setTimer(null);    }};function change_text(id){    if (id.next().css('display') == 'none') {        id.html('<div class="infofile"><span style="cursor: pointer;"><b>Dodaj informacje do pliku</b> <span class="toggle_txt">(kliknij, aby rozwinąć)</span></span></div>')    }    else {        id.html('<div class="infofile"><span style="cursor: pointer;"><b>Dodaj informacje do pliku</b> <span class="toggle_txt">(kliknij, aby shować)</span></span></div>')    }}function size_format(filesize){    if (filesize >= 1073741824) {        filesize = number_format(filesize / 1073741824, 2, '.', '') + ' GB'    }    else {        if (filesize >= 1048576) {            filesize = number_format(filesize / 1048576, 2, '.', '') + ' MB'        }        else {            if (filesize >= 1024) {                filesize = number_format(filesize / 1024, 0) + ' KB'            }            else {                filesize = number_format(filesize, 0) + ' kB'            }        }    };    return filesize};function number_format(number, decimals, dec_point, thousands_sep){    var n = number, prec = decimals;    n = !isFinite(+n) ? 0 : +n;    prec = !isFinite(+prec) ? 0 : Math.abs(prec);    var sep = (typeof thousands_sep == "undefined") ? ',' : thousands_sep;    var dec = (typeof dec_point == "undefined") ? '.' : dec_point;    var s = (prec > 0) ? n.toFixed(prec) : Math.round(n).toFixed(prec);    var abs = Math.abs(n).toFixed(prec);    var _, i;    if (abs >= 1000) {        _ = abs.split(/\D/);        i = _[0].length % 3 || 3;        _[0] = s.slice(0, i + (n < 0)) + _[0].slice(i).replace(/(\d{3})/g, sep + '$1');        s = _.join(dec)    }    else {        s = s.replace('.', dec)    }    return s}var time_count;var z;function checkReg(){    if (!$('#regulamin_check').attr('checked')) {        $('#reg_error').show();        return true;    }    else {        $('#reg_error').html('');        return false;    }}function checkFileInfoSingle(file_id){    var error = false;    var password = $(' [name=password]').attr('value');    var password2 = $(' [name=password2]').attr('value');    var title = $('[name=title]').attr('value');    var tags = $('[name=tags]').attr('value');    var description = $('#description').attr('value');    var regulamin = $('#regulamin_check').attr('checked');    if ((title.length < 3 && title.length > 0) || title.length > 100) {        error = true;        $('.title_error').show();    }    else {        $(' .title_error').hide();    }    if ((description.length < 5 && description.length > 0) || description.length > 254) {        error = true;        $('.description_error').show();    }    else {        $('.description_error').hide();    }    if ((tags.length < 5 && tags.length > 0) || tags.length > 100) {        error = true;        $('.tags').show();    }    else {        $('.tags').hide();    }    if (password != '' || password2 != '') {        if (password != password2) {            error = true;            $(' .password_error').show();        }        else {            $(' .password_error').hide();        }    }    else {        $(' .password_error').hide();    }    if (!regulamin) {        $('#reg_error').show();        error = true;    }    else {        $('#reg_error').hide('');    }    if (swfu.getStats().files_queued == 0) {        $('#zero_files_error').show();        error = true;    }    else {        $('#zero_files_error').hide();    }    return error;}function modulo(x, y){    var k = x % y;    return (k != 0 && (k > 0 ^ y > 0) && isFinite(y)) ? k + y : k;}function time_left(time_left){    var days = 0;    var hours = 0;    var seconds = 0;    var minutes = 0;    if (time_left > 86400) {        days = parseInt((time_left / 86400));    }    var hours_minutes = modulo(time_left, 86400);    if (hours_minutes > 3600) {        hours = parseInt((hours_minutes / 3600));    }    var minutes_seconds = modulo(time_left, 3600);    if (minutes_seconds > 0 || hours > 0) {        if (minutes_seconds > 60) {            minutes = parseInt(minutes_seconds / 60);        }        var seconds = modulo(minutes_seconds, 60);    }    var time = '';    if (days && days > 0) {        switch (days) {            case 1:                time = time + '1 dzień ';                break;            default:                time = time + days + ' dni ';        }    }    if (hours > 0) {        switch (hours) {            case 1:                time = time + '1 godzina ';                break;            case 2:            case 3:            case 4:            case 22:            case 23:            case 24:                time = time + hours + ' godziny ';                break;            default:                time = time + hours + ' godzin ';        }    }    if (minutes > 0 || hours > 0) {        if (minutes == 1) {            time = time + '1 minuta ';        }        else             if ((minutes >= 2 && minutes <= 4) || (minutes >= 22 && minutes <= 24) || (minutes >= 32 && minutes <= 34) || (minutes >= 42 && minutes <= 44) || (minutes >= 52 && minutes <= 54)) {                time = time + parseInt(minutes) + ' minuty ';            }            else {                time = time + parseInt(minutes) + ' minut ';            }    }    if (seconds == 1) {        time = time + '1 sekunda ';    }    else         if ((seconds >= 2 && seconds <= 4) || (seconds >= 22 && seconds <= 24) || (seconds >= 32 && seconds <= 34) || (seconds >= 42 && seconds <= 44) || (seconds >= 52 && seconds <= 54)) {            time = time + parseInt(seconds) + ' sekundy ';        }        else {            if (!parseInt(seconds) == 0) {                time = time + parseInt(seconds) + ' sekund ';            }        }    $('#testing').html('s:' + seconds + 'h:' + hours + 'm:' + minutes);    return time;}function setDownloadTimeOut(time){    var time = time - 1;    $('#countdown').html(time_left(time));    if (time == 0) {        $('#countdown').html('Kliknij poniżej aby pobrać plik');        clearTimeout(z);        $.ajax({            method: "post",            url: url_base + "file/getDownloadUrl",            id: "",            data: "",            success: function(html){                $('#download_link').html(html);            }        });        return false;    }    z = setTimeout("setDownloadTimeOut('" + time + "')", 1000);}function showSend(){    if ($('#send').css('display') == 'none') {        $('#send').show();    }    else {        $('#send').hide();    }    return false;};function showLimit(){    if ($('#limit').css('display') == 'none') {        $('#limit').show();    }    else {        $('#limit').hide();    }    return false;};function send_file_to(){    var emails = $('#emails').val();    if (emails == '') {        $('#send_error').hide();        $('#send_error_empty').show();        return false;    }    var token = $('#token').val();    var emails_arr = emails.split(',');    var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;    var email_ok = new Array();    for (i = 0; i < emails_arr.length; i = i + 1) {        var odp = regex.test(emails_arr[i]);        if (odp) {            email_ok.push(emails_arr[i]);        }    }    if (email_ok.length > 0) {        $('#send_error').hide();        $('#send_error_empty').hide();        $('#email_div').hide();        $('#send_button').hide();        if (email_ok.length > 1) {            $('.singular').hide();        }        else {            $('.plural').hide();        }        $('#send_result').show();        emails = email_ok.join(',');        $.ajax({            method: "post",            url: url_base + "files/sendSummary",            id: "",            data: "emails=" + emails + '&token=' + token,            success: function(html){            }        });    }    else {        $('#send_error').show();        $('#send_error_empty').hide();    }}function set_limit(){    var limit = $('#limit_select').val();    if (limit == 0) {        $('#limit_error').show();        return false;    }    var token = $('#token').val();    $('#limit_div').hide();    $('#limit_result').show();    $('#limit_error').hide();    $('#limit_button').hide();    $.ajax({        method: "post",        url: url_base + "files/setLimit",        id: "",        data: "limit=" + limit + '&token=' + token,        success: function(html){        }    });}function cancelFileUpload(id){    file = swfu.getFile(id);    swfu.cancelUpload(id);    total_size = total_size - file.size;}$(document).ready(function(){    $('#logowanie_form').submit(function(){        var username = $('#username').val();        var password = $('#password').val();        var regex = /^[a-zA-Z0-9._-]{4,30}$/;        var odp = regex.test(username);        $('#login_error').hide();        error = false;        if (!odp || username.length < 4) {            $('#username_error').show();            error = true;        }        else {            $('#username_error').hide();            error = false;        };        if (password.length < 4) {            $('#password_error').show();            error = true;        }        if (!error) {            return true;        }        else {            return false;        };            });    $('#przypomnij_haslo').submit(function(){        error = false;        var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;        var odp = regex.test($('#email').val());        if (!odp) {            if ($('#email').val() == '') {                $('#email_error_empty').show();                $('#email_error').hide();            }            else {                $('#email_error_empty').hide();                $('#email_error').show();            }            error = true;        }        else {            $('#email_error_empty').hide();            $('#email_error').hide();        }        if ($('#token').val() == '') {            $('#token_error').show();            error = true;        }        else {            $('#token_error').hide();        }        if (!error) {            return true;        }        else {            return false;        }    });    $('#file_password_check,#folder_password_check').submit(function(){        error = false;        if ($('#password').val() == '') {            $('#password_error').show();            $('#password_error2').hide();            error = true;        }        if (!error) {            $('#password_error').hide();            $('#password_error2').hide();            return true;        }        else {            return false;        }    });    $('.progressCancel').click(function(){                total_size = total_size - file.size;        swfu.cancelUpload($(this).parent().attr('id'));        $(this).parent().hide();    });    $('.info_toggle').click(function(){        if ($(this).next().css('display') == 'none') {            $('#toggle_txt').html('(kliknij, aby schować)');        }        else {            $('#toggle_txt').html('(kliknij, aby rozwinąć)');                    }        $(this).next().toggle();    });});var c = 0;var t;var time_elapsed = 0;var timeout;function timedCountUpload(){    $('#tdTimeElapsed').html(time_left(time_elapsed));    time_elapsed = time_elapsed + 1;    timeout = setTimeout("timedCountUpload()", 1000);};function timedCount(){    c = c + 1;    t = setTimeout("timedCount()", 1000);}
