var swfu;


function LoadAmazonUploader(name) {
    var settings = {
        flash_url: "/en/flash/swfupload.swf",
        upload_url: "http://subply.plymedia.com.s3.amazonaws.com/",
        post_params: {
        "key": "",
        "acl": "" ,
        "Content-Type": "" ,
        "AWSAccessKeyId": "" ,
        "xxx": "" ,
        "policy": "",
        "Signature": ""
        },
        file_size_limit: "250 MB",
        file_types: "*.*",
        file_types_description: "Video Files",
        file_upload_limit: 100,
        file_queue_limit: 0,
        custom_settings: {
            progressTarget: "fsUploadProgress",
            cancelButtonId: "btnCancel"
        },
        debug: true ,

        // Button settings
        button_image_url: "/en/images/Uplaod_Green_Button.png",
        //button_style: "width:100px;height:23px;background:url(/en/images/SubPLY_Sprite.png) no-repeat;background-position: -250px -530px;border:none;cursor:pointer;margin-top:2px;margin-bottom:4px; ",
        button_width: 100,
        button_height: 23,
        button_placeholder_id: "spanButtonPlaceHolder",
        /*button_text: '<input type="button" class="uploadButton" />',
        button_text_style: ".theFont { font-size: 16; }",
        button_text_left_padding: 12,
        button_text_top_padding: 3,*/

        // The event handler functions are defined in handlers.js
        file_queued_handler: fileQueued,
        file_queue_error_handler: fileQueueError,
        file_dialog_complete_handler: fileDialogToAmazonComplete,
        upload_start_handler: uploadStart,
        upload_progress_handler: uploadProgress,
        upload_error_handler: uploadError,
        upload_success_handler: uploadSuccess,
        upload_complete_handler: uploadComplete,
        queue_complete_handler: queueComplete	// Queue plugin event
    };

    swfu = new SWFUpload(settings);

}



function fileDialogToAmazonComplete(numFilesSelected, numFilesQueued) {
    $('progBar').morph('background:#5B8F0A; width: 0px;');
    try {
        if (numFilesSelected > 0) {
            //document.getElementById(this.customSettings.cancelButtonId).disabled = false;
        }


        var url= "/Request/Request_AmazonUploadFile/" + $('filePath').outerText;
        sr=ajaxRequest(url)
        var mySplitResult = sr.split("|");
        
        //http://subply.plymedia.com.s3.amazonaws.com/

        
        //swfu.customSettings.policy = mySplitResult[1];
        //swfu.customSettings.Signature = mySplitResult[0] ;
        swfu.setUploadURL("http://subply.plymedia.com.s3.amazonaws.com/");

        //__VIEWSTATE

        swfu.setFilePostName("file");


       // swfu.addPostParam("__VIEWSTATE", "/wEPDwULLTExOTQxOTMwMTJkZNeqYv/XIigj+mrrGg+WUWwt3dM8");

        swfu.addPostParam("key", "videos/" + $('filePath').outerText);
        
        
        swfu.addPostParam("Signature",mySplitResult[0]);
        swfu.addPostParam("policy", mySplitResult[1]);
        swfu.addPostParam("acl", "public-read");
        swfu.addPostParam("Content-Type", "application/octet-stream");
        swfu.addPostParam("AWSAccessKeyId", "0VV4DN0WD1Y1CBXSN402");
        swfu.addPostParam("xxx", "fdkdjkfd"); 
        
        
       

        /* I want auto start the upload and I can do that here */
        this.startUpload();
    } catch (ex) {
        alert(ex.message);
        this.debug(ex);
    }
}



function LoadUploader(name) {
    var settings = {
        flash_url: "/en/flash/swfupload.swf",
        upload_url: "/Orders/UploadFile",
        post_params: { "PHPSESSID": "" },
        file_size_limit: "250 MB",
        file_types: "*.*",
        file_types_description: "Video Files",
        file_upload_limit: 100,
        file_queue_limit: 0,
        custom_settings: {
            progressTarget: "fsUploadProgress",
            cancelButtonId: "btnCancel"
        },
        debug: false,

        // Button settings
        button_image_url: "/en/images/Uplaod_Green_Button.png",
        //button_style: "width:100px;height:23px;background:url(/en/images/SubPLY_Sprite.png) no-repeat;background-position: -250px -530px;border:none;cursor:pointer;margin-top:2px;margin-bottom:4px; ",
        button_width: 100,
        button_height: 23,
        button_placeholder_id: "spanButtonPlaceHolder",
        /*button_text: '<input type="button" class="uploadButton" />',
        button_text_style: ".theFont { font-size: 16; }",
        button_text_left_padding: 12,
        button_text_top_padding: 3,*/

        // The event handler functions are defined in handlers.js
        file_queued_handler: fileQueued,
        file_queue_error_handler: fileQueueError,
        file_dialog_complete_handler: fileDialogComplete,
        upload_start_handler: uploadStart,
        upload_progress_handler: uploadProgress,
        upload_error_handler: uploadError,
        upload_success_handler: uploadSuccess,
        upload_complete_handler: uploadComplete,
        queue_complete_handler: queueComplete	// Queue plugin event
    };

    swfu = new SWFUpload(settings);

}



function LoadVideoUploader(name) {
    var settings = {
        flash_url: "/en/flash/swfupload.swf",
        upload_url: "/Orders/UploadFile",
        post_params: { "PHPSESSID": "" },
        file_size_limit: "250 MB",
        file_types: "*.*",
        file_types_description: "Video Files",
        file_upload_limit: 100,
        file_queue_limit: 0,
        custom_settings: {
            progressTarget: "fsUploadProgress",
            cancelButtonId: "btnCancel"
        },
        debug: false,

        // Button settings
        button_image_url: "/en/images/Uplaod_Green_Button.png",
        //button_style: "width:100px;height:23px;background:url(/en/images/SubPLY_Sprite.png) no-repeat;background-position: -250px -530px;border:none;cursor:pointer;margin-top:2px;margin-bottom:4px; ",
        button_width: 100,
        button_height: 23,
        button_placeholder_id: "spanButtonPlaceHolder",
        /*button_text: '<input type="button" class="uploadButton" />',
        button_text_style: ".theFont { font-size: 16; }",
        button_text_left_padding: 12,
        button_text_top_padding: 3,*/

        // The event handler functions are defined in handlers.js
        file_queued_handler: fileQueued,
        file_queue_error_handler: fileQueueError,
        file_dialog_complete_handler: fileDialogComplete,
        upload_start_handler: uploadStartLetsStartEnterInformation,
        upload_progress_handler: uploadProgress,
        upload_error_handler: uploadError,
        upload_success_handler: uploadedSuccsessViewStage2,
        upload_complete_handler: enableNextBut,
        queue_complete_handler: queueComplete	// Queue plugin event
    };

    swfu = new SWFUpload(settings);

}



function fileQueued(file) {
    try {
        /*var progress = new FileProgress(file, this.customSettings.progressTarget);
        progress.setStatus("Pending...");
        progress.toggleCancel(true, this);*/
        $('srcByUploadProcess').show();
        //$('srcByUpload').hide();
        $('filePath').update(file.name);
        //this.setUploadURL("/Orders/UploadFile?fileName=" + file.name);
    } catch (ex) {
        alert(ex.message);
        //this.debug(ex);
    }

}

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;
        }

        //var progress = new FileProgress(file, this.customSettings.progressTarget);
        //progress.setError();
        //progress.toggleCancel(false);

        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.");
                this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
                break;
            default:
                if (file !== null) {
                    //progress.setStatus("Unhandled Error");
                }
                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) {
    $('progBar').morph('background:#5B8F0A; width: 0px;');
    try {
        if (numFilesSelected > 0) {
            //document.getElementById(this.customSettings.cancelButtonId).disabled = false;
        }

        /* I want auto start the upload and I can do that here */
        this.startUpload();
    } catch (ex) {
        alert(ex.message);
        this.debug(ex);
    }
}

function uploadStart(file) {
    try {
        $('progBar').morph('background:#5B8F0A; width: 0px;');
        $('currentS').update('0 MB');
        $('totalS').update('0 MB');
        $('SWFUpload_0').setStyle({ height: '0px' });
    }
    catch (ex) {
        alert(ex.message);
    }

    return true;
}

function uploadProgress(file, bytesLoaded, bytesTotal) {
    try {
        var percent = bytesLoaded / bytesTotal;
        var loaded;
        loaded = new String(bytesLoaded / 1024000);
        if (loaded.indexOf('.', 0) > 0) {
            loaded = loaded.substring(0, loaded.indexOf('.', 0) + 2);
        }
        var total;
        total = new String(bytesTotal / 1024000);
        if (total.indexOf('.', 0) > 0) {
            total = total.substring(0, loaded.indexOf('.', 0) + 2);
        }
        $('currentS').update(loaded + ' MB');
        $('totalS').update(total + ' MB');
        $('progBar').morph('background:#5B8F0A; width:' + percent * 440 + 'px;');
    } catch (ex) {
        this.debug(ex);
    }
}

function uploadSuccess(file, serverData) {
    try {
        //var progress = new FileProgress(file, this.customSettings.progressTarget);
        //progress.setComplete();
        //progress.setStatus("Complete.");
        //progress.toggleCancel(false);
        if (this.getStats().files_queued == 0) {
            $('txtSrc').value = "http://www.SubPLY.com/Uploads/" + file.name;
            $('uploadedFilePath').update(file.name);
            $('dvUploadMessage').update("Upload completed successfully");
            $('srcByUploadComplete').show();
            $('srcByUpload').hide();
            $('srcByUploadProcess').hide();
            txtSrcOnBlur();
        }
        
    } catch (ex) {
        this.debug(ex);
    }
}

function uploadError(file, errorCode, message) {
    try {
        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.");
                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("Failed Validation.  Upload skipped.");
                this.debug("Error Code: File Validation Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
                break;
            case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
                // If there aren't any files left (they were all cancelled) disable the cancel button
                $('progBar').setStyle({ width: '0px' });
                $('progBar').morph('background:#5B8F0A; width:0px;');
                $('currentS').update('0 MB');
                $('totalS').update('0 MB');
                $('srcByUploadProcess').hide();
                $('txtSrc').value = "";
                $('SWFUpload_0').setStyle({ height: '23px' });
                if (this.getStats().files_queued === 0) {
                    //document.getElementById(this.customSettings.cancelButtonId).disabled = true;
                }
                //progress.setStatus("Cancelled");
                //progress.setCancelled();
                //$('dvUploadMessage').update("Upload Cancelled");
                
                break;
            case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
                //progress.setStatus("Stopped");
                //alert("Stopped");
                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 uploadComplete(file) {
}

// This event comes from the Queue Plugin
function queueComplete(numFilesUploaded) {
    //var status = document.getElementById("divStatus");
    //status.innerHTML = numFilesUploaded + " file" + (numFilesUploaded === 1 ? "" : "s") + " uploaded.";
}

