﻿        //Global variables
        var intervalID = 0;
        var subintervalID = 0;
        var fileUpload;
        var form;
        var previousClass = '';
        var filename = '';
        var hdnImage;
        var count = 0;

        //Register the form
        function register(form, fileUpload, hdnImage) {
            this.form = form;
            this.fileUpload = fileUpload;
            this.hdnImage = hdnImage;
        }
        
      //Start upload process
        function onUploadClick() {
            document.getElementById("saveUploadFile").style.display = "none";
            if (validateFileUploadInputDetails()) {
                document.getElementById("ChooseFile").style.display = "none";
                if (document.getElementById("ctl00_button1") != null)
                    document.getElementById("ctl00_button1").click();
                else if (document.getElementById("ctl00_ctl00_button1") != null)
                    document.getElementById("ctl00_ctl00_button1").click();

                document.getElementById('uploadImg').setAttribute("class", "uploading")

            } //end of validation
        }

        function clearFiles() {
            kw(slickControlID).clear();
        }

        function cancelUpload() {
            document.getElementById("cancelButton").style.display = "none";
            kw(slickControlID).cancel();
            checkUploadCancelState();
        }

        function checkUploadCancelState() {
            var chooseFileSelecter;
            var uploadProgress;
            if (document.getElementById("ctl00_slickUpload_selector") != null) {
                chooseFileSelecter = document.getElementById("ctl00_slickUpload_selector");
                uploadProgress = document.getElementById("ctl00_slickUpload_display");
            }
            else {
                chooseFileSelecter = document.getElementById("ctl00_ctl00_slickUpload_selector");
                uploadProgress = document.getElementById("ctl00_ctl00_slickUpload_display");
            }

            if (uploadProgress.style.display == "block") {
                setTimeout('checkUploadCancelState()', 20);
            }
            else {
                $("#saveUploadFile").show();
                $("#ChooseFile").show();
                $("#uploadImg").attr("class", "upload");
                document.getElementById("cancelButton").style.display = "none";
                $("#uploadImg").attr("class", "upload");
                ClearUploadInformation();
            }
        }

        function OnFileUploadClick() {
            //__doPostBack('<%=updatePanel1.ClientID %>', 'Refresh:0,1,2');

        }

        function onFileSelectionChanged(data) {
            validFileCount = 0;

            document.getElementById(uploadButtonID).className = "button" + (kw(slickControlID).get_Files().length > 0 ? "" : " disabled");

            var spanFileNameObject = $('.su-validationmessage');
            if (spanFileNameObject != null)
                spanFileNameObject.attr("style", "");

            //validateFileUploadInputDetails();
        }

        function onSessionStarted(data) {
            count = 0;
            document.getElementById(uploadButtonID).style.display = "none";
            document.getElementById("cancelButton").style.display = "block";
            document.getElementById("ChooseFile").style.display = "none";
            //document.getElementById('validationMessage').style.display = "none";
            document.getElementById("progressWarn").style.display = "block";

            var errorDiv = $get('uploadErrorDiv');
            errorDiv.innerHTML = "";

            if (document.getElementById("ctl00_slickUpload_list") != null)
                document.getElementById("ctl00_slickUpload_list").style.display = "none";
            if (document.getElementById("ctl00_ctl00_slickUpload_list") != null)
                document.getElementById("ctl00_ctl00_slickUpload_list").style.display = "none";
        }

        function onBeforeSessionEnd(data) {
            var fileName = "";
            var fileSize = "";

            count = count + 1;

            if (kw(slickControlID).get_Files()[0] != null)
                fileName = kw(slickControlID).get_Files()[0].get_Name();
            else {

                return; // if file upload is cancelled
            }
            fileName = escape(fileName);

            if (count == 1) {
                PageMethods.ValidateFileAttributes1(fileName, OnFileAttributesValidateCompleted);
            } // end of if count = 1
        }

        function OnFileAttributesValidateCompleted(result) {
            fileAtributesStatus = result;
            javascript_abort(fileAtributesStatus);
        }

        function javascript_abort(uploadfilestatus) {
            if (uploadfilestatus == "Success") {
                document.getElementById(uploadButtonID).style.display = "none";
                document.getElementById("cancelButton").style.display = "none";
                var spanFileNameObject = $('.su-filename');
                var spanFileSizeObject = $('.su-filesize');

                var fileName = "";
                var fileSize = "";

                if (kw(slickControlID).get_Files()[0] != null)
                    fileName = kw(slickControlID).get_Files()[0].get_Name();

                if (spanFileSizeObject != null)
                    fileSize = spanFileSizeObject.text();

                var fileUploadDescription = $('#ctl00_txtFileUploadDescription').val();

                var categoryvalue = $('#ctl00_ddlcategory').val();

                var fileUploadStatus = $('#ctl00_uploadStatus').text();

                if ($get('ctl00_txtFileUploadDescription') == null)
                    fileUploadDescription = $('#ctl00_ctl00_txtFileUploadDescription').val();

                if ($get('ctl00_ddlcategory') == null)
                    categoryvalue = $('#ctl00_ctl00_ddlcategory').val();

                if ($get('ctl00_uploadStatus') == null)
                    fileUploadStatus = $('#ctl00_ctl00_uploadStatus').text();

                fileUploadDescription = fileUploadDescription.replace(/\r\n/g, '\n');

                fileUploadDescription = escape(fileUploadDescription);

                var title = $('#txtFileUploadLabel').val();
                title = escape(title);

                var tags = $('#txtFileUploadTags').val();
                tags = escape(tags);

                fileName = escape(fileName);

                var errorDiv = $get('uploadErrorDiv');
                var errText = "";

                errorDiv.style.display = "none";

                var uploadStatus = "";

                $.ajax({
                    type: "POST",
                    async: false,
                    url: "/UI/SynchronousPageMethods.aspx/ValidateFileAttributes_Synchronous",
                    data: "{title:'" + title + "',tags:'" + tags + "',description:'" + fileUploadDescription + "',category:'" + categoryvalue + "',privacy:'" + $('#ddlPrivacy').val() + "',fileName:'" + fileName + "',fileSize:'" + fileSize + "',contentType:'" + $('#ddlcontentType').val() + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {
                        var filesizeResult = msg.d;
                        OnFileUplodValidationCompleted(filesizeResult);
                    }
                });
                //PageMethods.ValidateFileAttributes($('#txtFileUploadLabel').val(), $('#txtFileUploadTags').val(), fileUploadDescription, categoryvalue, $('#ddlPrivacy').val(), fileName, fileSize, $('#ddlcontentType').val(), OnFileUplodValidationCompleted);
                //throw new Error('This is not an error. This is just to abort javascript');
            }
            else if (uploadfilestatus == "Fail") {
                var errText = "Your media file was unreadable. Please try a different file.";
                checkUploadState("Fail", errText, "inline1");
                return false;
            }
            else {
                var errText = uploadfilestatus;
                checkUploadState("Fail", errText, "inline1");
                return false;
            }
        }

        function checkUploadState(status, result, displayPosition) {
            var chooseFileSelecter;
            var uploadProgress;

            if (document.getElementById("ctl00_slickUpload_selector") != null) {
                chooseFileSelecter = document.getElementById("ctl00_slickUpload_selector");
                uploadProgress = document.getElementById("ctl00_slickUpload_display");
            }
            else {
                chooseFileSelecter = document.getElementById("ctl00_ctl00_slickUpload_selector");
                uploadProgress = document.getElementById("ctl00_ctl00_slickUpload_display");
            }

            if (uploadProgress.style.display == "block") {
                setTimeout("checkUploadState('" + status + "','" + result + "','" + displayPosition + "');", 20);
            }
            else {
                if (displayPosition == "overlay")
                    ShowUploadStatus(result, "");
                else if (displayPosition == "inline1") {
                    var errorDiv = $get('uploadErrorDiv');
                    errorDiv.style.display = "block";
                    errorDiv.innerHTML = "<li> " + result + " </li>";
                    $("#ChooseFile").show();
                    $("#saveUploadFile").show();
                    $('#uploadImg').attr("class", "upload menu-open");
                    clearFiles();
                }
            }
        }

        function OnFileUplodValidationCompleted(result) {
            if (result.indexOf("Success") != -1) {
                checkUploadState("Success", result, "overlay");
            }
            else {
                checkUploadState("Fail", result, "overlay");
            }
        }

        function Validate_SlickUploadRequiredFiles(source, args) {
            args.IsValid = true; //(kw("<%=slickUpload.ClientID %>").get_Files().length > 0);
        }


        function Validate_SlickUploadValidFiles(source, args) {
            args.IsValid = false;
            var errorDiv = $get('uploadErrorDiv');

            var hiddenField = $get('hdnFileStatus');
            if ((document.getElementById('upload_menu').style.display == "none") || (document.getElementById('upload_menu').style.display == "")) {
                args.IsValid = true;
            }
            else {
                if (errorDiv.innerHTML == "") {
                    args.IsValid = true;
                    $('#progressWarn').show();
                }
                else {
                    args.IsValid = false;

                    $("#ChooseFile").show();
                    $("#saveUploadFile").show();
                    $('#uploadImg').attr("class", "upload menu-open");
                    $('#progressWarn').hide();
                    return false;
                }
            }
        }
        
function OnUploadFileComplete(result) {
    $("#video-convertion-wrapper").hide();
    $("fieldset#upload_menu").hide();
    $('#uploadImg').attr("class", "upload");
}

function OnUploadFileError(result) {
    $("#video-convertion-wrapper").hide();
    $("fieldset#upload_menu").hide();
    $("#uploadSuccessDIV").hide();
    $(".upload").removeClass("menu-open");
}

function ChangeUploadImageClass() {
    $('#uploadImg').attr("class", "upload menu-open");
}

function fileExists(fileuploadObject) {
    var selectedFile = fileuploadObject.value.split('\\');
    return '';
}

function fnTrim(str) {
    return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

var fileSizevalidationText = "";

var initCount = 0;

function validateFileUploadInput() {
    var title = $get('txtFileUploadLabel');

    var tags = $get('txtFileUploadTags');

    var desc = $get('ctl00_txtFileUploadDescription');
    if (desc == null)
        desc = $get('ctl00_ctl00_txtFileUploadDescription');

    var category = $get('ctl00_ddlcategory');
    if (category == null)
        category = $get('ctl00_ctl00_ddlcategory');

    var privacy = $get('ddlPrivacy');

    var SupportedFileFormats = $get('ctl00_lblSupportedFileFormats');
    if (SupportedFileFormats == null)
        SupportedFileFormats = $get('ctl00_ctl00_lblSupportedFileFormats');

    var errText = "";

    if (fnTrim(title.value) == "")
        errText = errText + "<li> Please Enter Title </li>";
    if (fnTrim(title.value).length > 75) 
        errText = errText + "<li>Title length should be max of 75 characters.</li>"
    var loopCount = 0;
    var wordLengthCnt = 0;
    if (fnTrim(title.value) != '') {
        var newMediaTitle = "";
        var MediaTitleArr1 = fnTrim(title.value).split('\n');
        if (MediaTitleArr1.length > 1) {
            for (loopCount1 = 0; loopCount1 < MediaTitleArr1.length; loopCount1++) {
                newMediaTitle = newMediaTitle + " " + MediaTitleArr1[loopCount1];
            }
        }
        else {
            newMediaTitle = fnTrim(title.value);
        } 
        var MediaTitleArr = new Array();
        var loopCount = 0;
        MediaTitleArr = fnTrim(newMediaTitle).split(" ");
        for (loopCount = 0; loopCount < MediaTitleArr.length; loopCount++) {
            if (MediaTitleArr[loopCount].length > 20) {
                wordLengthCnt += 1;
            }
        }
        if (wordLengthCnt > 0) {
            errText = errText + "<li> Each word length should be less than 20 characters for Title </li>";
        }
        wordLengthCnt = 0;
        if (MediaTitleArr.length <= 0) {
            errText = errText + "<li> Continuous wording is not allowed for Title </li>";
        }
    }
//    if (fnTrim(tags.value) == "")
//        errText = errText + "<li> Please Enter Tags </li>";

    if (fnTrim(desc.value) == "")
        errText = errText + "<li> Please Enter Description </li>";
    if (fnTrim(desc.value) != "") {
        if (!validateHtmlTags(fnTrim(desc.value))) {
            errText = errText + "<li> Html Tags are not allowed for Description. </li>";    
        }
    }
    if (fnTrim(desc.value) != '') {
        var newMediaDesc = "";
        var mediaDesc = fnTrim(desc.value).replace(/\r\n/g, '\n');
        var MediaDescArr1 = mediaDesc.split('\n');
        if (MediaDescArr1.length > 1) {
            for (loopCount1 = 0; loopCount1 < MediaDescArr1.length; loopCount1++) {
                newMediaDesc = newMediaDesc + " " + MediaDescArr1[loopCount1];
            }
        }
        else {
            newMediaDesc = fnTrim(desc.value);
        }
        var MediaDescArr = new Array();
        var loopCount = 0;
        MediaDescArr = fnTrim(newMediaDesc).split(" ");
        for (loopCount = 0; loopCount < MediaDescArr.length; loopCount++) {
            if (MediaDescArr[loopCount].length > 20) {
                wordLengthCnt += 1;
            }
        }
        if (wordLengthCnt > 0) {
            errText = errText + "<li> Each word length should be less than 20 characters for Description </li>";
        }
        wordLengthCnt = 0;
        if (MediaDescArr.length <= 0) {
            errText = errText + "<li> Continuous wording is not allowed for Description </li>";
        }
    }
    if (category.value == "0")
        errText = errText + "<li> Please Select Category </li>";

    if (privacy.value == "")
        errText = errText + "<li> Please Select Privacy </li>";

    var spanFileNameObject = $('.su-filename');
    if (spanFileNameObject != null) {
        if (spanFileNameObject.text() == "")
            errText = errText + "<li> Please Select a File </li>";
        else
        if (SupportedFileFormats.innerHTML != '') {
            var selectedFileExt = spanFileNameObject.text().split('.');
            var supportedFilesExtensions = SupportedFileFormats.innerHTML;
            var tempSupportedFlesExtensions = supportedFilesExtensions;
            tempSupportedFlesExtensions = tempSupportedFlesExtensions.replace(", wmv", ",wmv");
            tempSupportedFlesExtensions = "," + tempSupportedFlesExtensions + ",";

            var selectedFileExtension = selectedFileExt[selectedFileExt.length - 1].toLowerCase();
            selectedFileExtension = "," + selectedFileExtension + ",";
            
            if ((tempSupportedFlesExtensions.indexOf(selectedFileExtension)) == -1) {
                errText = errText + "<li> Please select a valid file format. ( " + supportedFilesExtensions + " ) </li>";
            }
        }
    }
    
    var spanCustomValidationObject = $('.su-validationmessage');
    if (spanCustomValidationObject != null) {
        if (spanCustomValidationObject.text() != "") {
            errText = errText + "<li> " + spanCustomValidationObject.text() + "</li>";
        }
    }
    
    //if all the initial validation is success then check for file size
    if (errText == "") {
        var spanFileSizeObject = $('.su-filesize');
        var spanFileNameObject = $('.su-filename');
        var fileName = "";
        if (spanFileNameObject != null) {
            fileName = spanFileNameObject.text();
        }
        if (spanFileSizeObject != null) {
            var fileSize = spanFileSizeObject.text();
        }
         
        fileName = escape(fileName);
        
        if ((fileName != "") && (fileSize != "")) {
            $.ajax({
                type: "POST",
                async: false,
                url: "/UI/SynchronousPageMethods.aspx/ValidateFileSize_Synchronous",
                data: "{fileSize:'" + fileSize + "',fileName:'" + fileName + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    var filesizeResult = msg.d;
                    var hiddenField = $get('hdnFileStatus');
                    hiddenField.value = filesizeResult;
                    if (filesizeResult != "Valid") {
                        if (filesizeResult == "LoginError") {
                            window.location.href = "../ui/HomeMain.aspx";
                        }
                        else {
                            //                            var errorDiv = $get('uploadErrorDiv');
                            //                            errorDiv.style.display = "block";
                            //errorDiv.innerHTML = "<li>" + filesizeResult + "</li>";
                            errText = errText + "<li>" + filesizeResult + "</li>"
                        }
                    }
                }
            });
        }
          //  PageMethods.ValidateFileSize(fileSize, fileName, onFileSizeValidationComplte)
    } // end of if errtext == ""
    //}

    return errText;
}

function onFileSizeValidationComplte(filesizeResult) {
    var hiddenField = $get('hdnFileStatus');
    hiddenField.value = filesizeResult;
    if (filesizeResult != "Valid") {
            if (filesizeResult == "LoginError") {
                window.location.href = "../ui/HomeMain.aspx";
            }
            else {
                var errorDiv = $get('uploadErrorDiv');
                errorDiv.style.display = "block";
                errorDiv.innerHTML = "<li>" + filesizeResult + "</li>";
                return false;
            }
        }
}

function validateFileUploadInputDetails() {
    
    var errorDiv = $get('uploadErrorDiv');
    var errText = validateFileUploadInput();
    
    if (errText != "") {
        var timeOut = 3000;
        errorDiv.style.display = "block";
        errorDiv.innerHTML = errText;
        document.getElementById("saveUploadFile").style.display = "block";
        return false;
    }
    else {
        errorDiv.style.display = "none";
        errorDiv.innerHTML = "";
        return true;
    }

}

function validateMediaDescHtmlTags(Desc) {
    if ((Desc.indexOf("<") != -1) || (Desc.indexOf(">") != -1)) {
        return false;
    }
    else {
        return true;
    }
//    var re = new RegExp("<(.|\n)*?>", "g");
//    var myArray = Desc.match(re)
//    if (myArray != null) {
//        return false;
//    }
//    else {
//        return true;
//    }
}

function ValidateMediaDescCount(evnt) {

    var Desc = "";
    if(document.getElementById('ctl00_txtFileUploadDescription') != null)
        Desc = document.getElementById('ctl00_txtFileUploadDescription').value;
    else
        Desc = document.getElementById('ctl00_ctl00_txtFileUploadDescription').value;
    Desc = Desc.replace(/\r\n/g, '\n');
    var evntKeyCode = evnt.keyCode;
    // Ignore keys such as Delete, Backspace, Shift, Ctrl, Alt, Insert, Delete, Home, End, Page Up, Page Down and arrow keys
    var escChars = ",8,17,18,19,33,34,35,36,37,38,39,40,45,46,";
    var back_DelChars = ",8,46,";
    if (escChars.indexOf(',' + evntKeyCode + ',') == -1) {
        if (Desc.length > 750) {
            if (back_DelChars.indexOf(',' + evntKeyCode + ',') != -1) {
                PrintMediaDescCount();
                return true;
            }
            return false;
        }
    }
    return true;
}
function PrintMediaDescCount() {
    var Desc = "";
    if(document.getElementById('ctl00_txtFileUploadDescription') != null)
        Desc = document.getElementById('ctl00_txtFileUploadDescription').value;
    else
        Desc = document.getElementById('ctl00_ctl00_txtFileUploadDescription').value;
    Desc = Desc.replace(/\r\n/g, '\n');
    if (Desc.length > 750) {
        if(document.getElementById('ctl00_txtFileUploadDescription')!=null)
            document.getElementById('ctl00_txtFileUploadDescription').value = Desc.substring(0, 750);
        else
            document.getElementById('ctl00_ctl00_txtFileUploadDescription').value = Desc.substring(0, 750);
        
          if(document.getElementById('ctl00_txtFileUploadDescription') != null)
            Desc = document.getElementById('ctl00_txtFileUploadDescription').value;
        else
            Desc = document.getElementById('ctl00_ctl00_txtFileUploadDescription').value;
    }
    if(document.getElementById('ctl00_spnMediaDescLimit')!=null)
        document.getElementById('ctl00_spnMediaDescLimit').innerHTML = (750 - Desc.length) + "/750 Characters";
    else
        document.getElementById('ctl00_ctl00_spnMediaDescLimit').innerHTML = (750 - Desc.length) + "/750 Characters";
}

