var $E = YAHOO.util.Event;
var $  = YAHOO.util.Dom.get;
var $D = YAHOO.util.Dom;

// Upload progress specific functions 
var ProgressInterval;

function postwith (to,p) {
    var myForm = document.createElement("form");
    myForm.method="post" ;
    myForm.action = to ;
    for (var k in p) {
        var myInput = document.createElement("input") ;
        myInput.setAttribute("name", k) ;
        myInput.setAttribute("value", p[k]);
        myForm.appendChild(myInput) ;
    }
    document.body.appendChild(myForm) ;
    myForm.submit() ;
    document.body.removeChild(myForm) ;
}

var uploadProgressHandler = {
    success:function(o) {
        var r = eval('(' + o.responseText + ')');
        var percentage = Math.ceil((r['current'] / r['total'])*100);
        myJsProgressBarHandler.setPercentage('progressbar',percentage);
        if (r['total'] > maxUploadFileSize) {
            postwith('error.php', {message:"Sorry but file size exceeded maximum upload size \""+maxUploadFileSizeDisp+"\" limit"});
        }
    }
}

var downloadProgressHandler = {
    success:function(o) {
        var r = eval('(' + o.responseText + ')');
        var percentage = Math.ceil((r['current'] / r['total'])*100);
        myJsProgressBarHandler.setPercentage('progressbar',percentage);
    }
}

function uploadProgress() {
    progress_key = document.getElementById('progress_key').value;
    YAHOO.util.Connect.asyncRequest('GET','/scripts/uploadProgress.php?progress_key='+progress_key, uploadProgressHandler);
}

function downloadProgress() {
    progress_key = document.getElementById('download_progress_key').value;
    YAHOO.util.Connect.asyncRequest('GET','/scripts/downloadProgress.php?progress_key='+progress_key, downloadProgressHandler);
}

//Event fired when upload button is clicked
var onUploadButtonClick = function(e){

        if($('input_file').value == '') {
            alert('Please press the browse button and pick a file to convert.');
            return false;
        } else if($('file_output_format').value.length >= 10) {
            alert('Please select an output format in which your want to convert your file.');
            return false;
        }
        $('upload_file_button').disabled=true;
    var uploadHandler = {
        upload: function(o) {
            var r = eval('(' + o.responseText + ')');
            if(r.hasError){
                var errorString = '';
                for(var i=0; i < r.errors.length; i++){
                    errorString += r.errors[i];
                }
                postwith("error.php", {message:errorString});
            }else{
            clearInterval(ProgressInterval);
            myJsProgressBarHandler.setPercentage('progressbar',100);
            var conversionURL = '/converting.php?fileToConvert='+r.uploadedFilename+'&outputFormat='+r.outputFormat;
            window.location.href = conversionURL;
            }
        }
    };
    YAHOO.util.Connect.setForm('file_conversion_form', true);
    YAHOO.util.Connect.asyncRequest('POST', '/scripts/uploadFile.php', uploadHandler);
    $D.setStyle('upload_progress_bar_container', 'display', 'block');
    ProgressInterval = setInterval("uploadProgress()", 1000);
}

//Event fired when upload button is clicked
var onDownloadButtonClick = function(e){
        if($('video_url').value == '') {
            alert('Please enter a valid URL.');
            return false;
        } else if($('video_output_format').value.length >= 10) {
            alert('Please select an output format in which your want to convert your video.');
            return false;
        }
        $('download_video_button').disabled=true;
    var downloadHandler = {
        success: function(o) {
            var r = eval('(' + o.responseText + ')');
            if(r.hasError){
                var errorString = '';
                for(var i=0; i < r.errors.length; i++){
                    errorString += r.errors[i];
                }
                postwith("error.php", {message:errorString});
            }else{
            clearInterval(ProgressInterval);
            myJsProgressBarHandler.setPercentage('progressbar',100);
            var conversionURL = '/converting.php?fileToConvert='+r.videoFilename+'&outputFormat='+r.outputFormat;
            window.location.href = conversionURL;
            }
        }
    };
    YAHOO.util.Connect.setForm('video_download_form');
    YAHOO.util.Connect.asyncRequest('POST', '/scripts/downloadVideo.php', downloadHandler);
    $D.setStyle('upload_progress_bar_container', 'display', 'block');
    ProgressInterval = setInterval("downloadProgress()", 1000);
}

//function handleTabClick(e) {
//    pageTracker._trackPageview('/outgoing3/duplicatefilescan-tabview');
//}

//On load event listner
function init() {
    var mainTabs = new YAHOO.widget.TabView("tabs_container");
    //var adsTab = mainTabs.getTab(2);
    //adsTab.addListener('click', handleTabClick);

    $D.setStyle('upload_progress_bar_container', 'display', 'none');
    $E.on('upload_file_button', 'click', onUploadButtonClick);
    $E.on('download_video_button', 'click', onDownloadButtonClick);
    updateOnlineVideoFormats();
}
$E.on(window, 'load', init)
