var resume = null;
var messageSize = '<h2>You need upgrade your subscription to convert file with this size</h2>'
//var messageUrl = '<h2>You need upgrade you subscription to download from this site</h2>'

var messageUrl = '<h2>You need upgrade you subscription to download from this site. Please choose any of the <a href="/subscription">subscription plans</a></h2>'
var mess = '<h2>Error</h2>'
var inactiveTab='#type_file';
var wget = false; //мы отправили для wget?
var id = 0;
var convert = false;
var browse = false;


function preloader()
{
     // counter
     var i = 0;

     // create object
     imageObj = new Array();
     // set image list
     images = new Array();
     images[0]="/images/progressbg_yellow.gif"
     images[1]="/images/tab_by_upload_unactive.png"
     images[2]='/images/tab_by_upload_active.png'
     images[3]="/images/tab_by_url_active.png"
     images[4]='/images/tab_by_url_unactive.png'
     images[5]='/images/tab_by_url.png'
     images[5]='/images/tab_by_url.png'
     images[6]='/images/tab_by_download.png'
     images[6]='/images/tab_by_download_unactive.png'

     // start preloading
     for(i  in images)
     {
         imageObj[i] = new Image();
          imageObj[i].src=images[i];
     }
}


var progress = new ProgressBar(//interval, onstart, onprogress, ondone
    2000,
    function() { // onstart
        $("#progress").progressBar({ barImage: 'images/progressbg_yellow.gif'} );
        $('#progress').show();
        $('.divProgress').show();
        if (wget == false & browse == false)
            $('#progress-info').html('Converting...');
        if( wget == true)
            $('#progress-info').html('Resolving host...');
        if( browse == true)
            $('#progress-info').html('Downloading file...');
    },
    function(percent) { //onprogress
        $('#progress').progressBar(percent);
        if (percent == 0 && wget)
            $('#progress-info').html('Resolving host...');
        if(percent != 0 && wget)
            $('#progress-info').html('Downloading file...');
        if(percent != 0 && ! wget && !browse)
             $('#progress-info').html('Converting...');
    },
    function(is_ok) { // ondone
        $('#traveler').hide();

        if (is_ok) {
            if (convert) {
                $('#progress-info').html('Convert Complete');
                $(".params").empty();
                $(".params").append('Please wait while redirecting...');
                $(".params").show();
        	 document.location = "/download/"+id;
        //        $.post("/download/getlink", 1,
         //           function(data) {
           //             document.location = data.link;
             //       }, 'json'
		//    );
            } else {
                uploadComplete();
            }
        }
        else {
            if (convert) {
                $('#progress-info').html('Convert Error');
                stop_url = "/convert/convert-stop/";
                } else {
                stop_url = "/convert/upload-stop/";
                $('#progress-info').html('Upload Error');
            }
            $.get(stop_url,
                function(data) {
                    setTimeout("document.location = ''",2000);
                });
        }
    }
);

$(document).ready(function() {


    preloader()
    $('#type_down').click(function(){
            l = $('#link_url').val();
                    if(l!=''){
                                h = $(this).parent().attr('href');
                                            $(this).parent().attr('href',h+'?url='+l);
                                                    }
            });
    $("#type_url").click(
        function(){
            inactiveTab='#type_file';
            $(".uploadUrl").show();
            $(".uploadFile").hide();
            $("#upload_url").show();
            $("#upload_file").hide();
            $("#type_file").attr('src','/images/tab_by_upload_unactive.png')
            $("#type_file").css('cursor','pointer')
            $(this).css('cursor','default')
            $(this).attr('src','/images/tab_by_url_active.png')
            $("#type_down").attr('src','/images/tab_download.png')
            $("#form_selector").val("upload-form");
        }
    );
    $("#type_file").click(
        function(){
            inactiveTab='#type_url';
            $(".uploadFile").show();
            $(".uploadUrl").hide();
            $("#upload_file").show();
            $("#upload_url").hide();
            $("#type_url").css('cursor','pointer')
            $(this).css('cursor','default')
            $(this).attr('src','/images/tab_by_upload_active.png')
            $("#type_url").attr('src','/images/tab_by_url_unactive.png')
            $("#type_down").attr('src','/images/tab_download_unactive.png')
            $("#form_selector").val("browse-form");
        }
    );

    $("#upload_submit").click(
        function(){
			if(!$('#accept_terms').attr('checked')){
				alert('Please accept terms of service')
				return false;
			}
            $('#'+$("#form_selector").val()).submit();

            return false;
        }
    );



    function resumeWget() {
        $("#form").hide();
        return $.post("/upload/wget-continue/", 1,
            function(data) {
                if (data.ok) {
                    $(".params").empty();
                    startUpload();
                    wget = true;
		    id = data.id;
                    progress.startCross(data.id, data.server+"/wget/"+data.id);
                }
            }, 'json'
        );
    }

    function resumeBrowse() {
        $("#form").hide();
        $('.divProgress').show();

        $('#progress-info').html('Upload Complete');

        return $.post("/upload/browse-continue/", 1,
            function(data) {
                if (data.ok) {
                    startUpload();
                    uploadComplete()
                }
            }, 'json'
        );
    }

    function resumeConvert() {
        $("#form").hide();

        return $.post("/convert/convert-continue/", 1,
            function(data) {
                if (data.ok) {
                    convert = true;
                    startUpload();
		    id = data.id;
                    progress.startCross(data.id, data.server+"/convert/"+data.id);

                  // progress.start(data.id, "/convert/convert-progress");
                    $('#progress').progressBar(data.progress);
                }
            }, 'json'
        );
    }

    resume = function(stage) {
        if (stage == 1) {
            resumeWget();
        } else if (stage == 2 || stage == 3) {
            resumeBrowse();
        } else if (stage == 4) {
            resumeConvert();
        }
    }


function isUrl(s) {
    var regexp = /(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?( +)?/
    return regexp.test(s);
}

    //upload-form
    $('#upload-form').submit(
        function () {
if(!$('#accept_terms').attr('checked')){
                alert('Please accept terms of service')
                return false;
            }
            if(!isUrl($('#link_url').val())){
                alert('Enter url');
                $('#link_url').focus()
                return false;
            }
            $("#form").hide('fast');
            startUpload();
            $.post("/upload/wget-start", $(this.elements).serialize(),
                function(data) {
                    if (data.ok) {
                        $(".params").empty();
                        //$(".params").append(data.form);
                        //$(".params").show();
                        //loadFormParams();
                        wget = true;
			id = data.id;
                        progress.startCross(data.id, data.server+"/wget/"+data.id);
                    } else {
                        urlError(data.error);
                    }
                }, 'json'
            );
            return false;
        }
    );

    // browse_form
    var browse_form = $('#browse-form');
    var second = false;

    $('#browse-form').submit(

        function () {
if(!$('#accept_terms').attr('checked')){
                alert('Please accept terms of service')
                return false;
            }
            if (second) {
                second = false;
                browse = true;
                progress.start(id, "/upload/browse-progress");
                return true;
            }
            else {
                path = $("#file").val();
                start = path.lastIndexOf(".");
                ext = path.substring(start + 1, path.length).toLowerCase();
        if (ext == 'php' || ext == 'py') {
                    uploadError()
                    alert('Invalid file !');
                    return false;
                }    $('.aleft').hide();

                startUpload();
                //$("#upload").hide();
                browse_form.attr('target', 'iframe');
                $.post("/upload/browse-before-start/", { "filename": $("#file").val() },
                    function(data) {
                        if (data.form != false) {
                            $(".params").empty();
                        }
                            id = $('#APC_UPLOAD_PROGRESS', browse_form).attr('value');
                            second = true;
                            browse_form.submit();

                    }, 'json'
                );

                return false;
            }
        }
    );

    $('#iframe').load(
        function () {
            if(top.frames.iframe.document.body.innerHTML=='ok'){
                window.location.reload(true);
            };
        }
    );
    $('#cancelbtn').click(
            function () {
                document.location = '/convert/upload-stop';
                return false;
            }
        );
    function loadFormParams() {



    }
});
function startUpload(){
    $('.aleft').hide();
    $('#browse-form').hide()
    $('.divProgress').show();
    $('#progress-info').html('Please wait...');
    $('#step').html('STEP 2/3');
    $('.prev').show();

    $(inactiveTab).hide();
    $("#type_url").attr('src','/images/tab_by_url.png')
//    $('#type_down').attr('src','/images/tab_download_unactive.png');
 $('#type_down').hide()

    $("#upload_submit").unbind();
    $("#upload_submit").click(function(){return false});
    $("#upload_submit").css('cursor','default')
}

//var presets = {iphone:{vquality:'22222',aquality:'16',format:'3gp'},}
function setPresetParams(preset){
    pr = presets[preset];
    if(pr){

        $("#aqual").val(pr.aquality);
        $("#format").val(pr.format);
        if(pr.video){
            $("#vqual").removeClass('disabled');
            $("#vres").removeClass('disabled');
            $("#vqual").attr('disabled',false)
            $("#vres").attr('disabled',false)
            $("#vqual").val(pr.vquality);
            $("#vres").val(pr.vres);
        } else {
            $("#vqual").addClass('disabled');
            $("#vres").addClass('disabled');
            $("#vqual").attr('disabled',true)
            $("#vres").attr('disabled',true)
        }
    }
}
function setConvertForm(){
    $("#upload_submit").unbind();
    $.post("/convert/", 1,
        function(data) {
            if(data == 'error'){
                convertError('filesize');
                return false;
            }
            //$(".params").empty();
            $(".params").append(data);
            $(".params").show();
            $("#vqual").focus(function(){
                if($(this).val()=="default")
                    $(this).val('')
            })
            $("#preset").change(function(){
                setPresetParams($(this).val())
            })
            $("#preset").val('mp3')
            $("#preset").change()
            $("#upload_submit").css('cursor','pointer')
            $("#upload_submit").click(
              function () {
                  $('.next').hide();
                  $(".params").hide();
                  $('.divProgress').show();
                  $('#progress-info').html('Please wait...');
                                                  $('#step').html('STEP 3/3');

                       $('#cancelbtn').unbind();
                          $('#cancelbtn').click(
                                function () {
                                        document.location = '/convert/convert-stop';
                                        return false;
                                    }
                                );
                $.post("/convert/convert-start", $("#convert-params").serialize(),
                        function(data) {
                            if (data.ok) {
                                wget = false;
                                browse = false;
                                convert = true;
                                id = data.id;
                                $(".params").hide();
                                progress.startCross(data.id, data.server+"/convert/"+data.id);
                            } else {
                                convertError(data.error);
                                $('.next').show();
                            }
                        }, 'json'
                    );
                return false;
            });
    });
}
function uploadError(){
    $('.aleft').show();
    $('.divProgress').hide();
    $('#step').html('STEP 1/3');
    $(inactiveTab).show();
    $("#upload_submit").click(function(){
            startUpload();
            $('#'+$("#form_selector").val()).submit();
            return false;
    });
    $("#upload_submit").css('cursor','pointer')
    $('.prev').hide();
}
function convertError(error){
    $('.divProgress').hide();
    if(error=='filesize'){
        mess = messageSize;
    }
    $('#params').html(mess);
    $('#params').show();
}
function uploadComplete(){
   $('#progress-info').html('Upload Complete');
    $('#progress').progressBar(100);

    setConvertForm();
}
//Function You need to change tarif for download fron
function urlError(error){
    $('.divProgress').hide();
    if(error=='tarif'){
        mess = messageUrl;
    }
    $('#params').html(mess);
    $('#params').show();
}
