jkuchar/MultipleFileUpload

View on GitHub
public/swfupload/js/swfupload.cookies.js

Summary

Maintainability
A
1 hr
Test Coverage
/*
    Cookie Plug-in
    
    This plug in automatically gets all the cookies for this site and adds them to the post_params.
    Cookies are loaded only on initialization.  The refreshCookies function can be called to update the post_params.
    The cookies will override any other post params with the same name.
*/

var SWFUpload;
if (typeof(SWFUpload) === "function") {
    SWFUpload.prototype.initSettings = function (oldInitSettings) {
        return function (userSettings) {
            if (typeof(oldInitSettings) === "function") {
                oldInitSettings.call(this, userSettings);
            }
            
            this.refreshCookies(false);    // The false parameter must be sent since SWFUpload has not initialzed at this point
        };
    }(SWFUpload.prototype.initSettings);
    
    // refreshes the post_params and updates SWFUpload.  The sendToFlash parameters is optional and defaults to True
    SWFUpload.prototype.refreshCookies = function (sendToFlash) {
        if (sendToFlash === undefined) {
            sendToFlash = true;
        }
        sendToFlash = !!sendToFlash;
        
        // Get the post_params object
        var postParams = this.settings.post_params;
        
        // Get the cookies
        var i, cookieArray = document.cookie.split(';'), caLength = cookieArray.length, c, eqIndex, name, value;
        for (i = 0; i < caLength; i++) {
            c = cookieArray[i];
            
            // Left Trim spaces
            while (c.charAt(0) === " ") {
                c = c.substring(1, c.length);
            }
            eqIndex = c.indexOf("=");
            if (eqIndex > 0) {
                name = c.substring(0, eqIndex);
                value = c.substring(eqIndex + 1);
                postParams[name] = value;
            }
        }
        
        if (sendToFlash) {
            this.setPostParams(postParams);
        }
    };

}