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. 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 mp3 = 0;
var mp3_percent = 0;
var mp3_timer;
var server = '';
var convert = false;
var browse = false;
var wget_start_post = '';

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").addClass('blue');
            $("#type_file img").attr('src','/images/tab_by_upload_unactive.png');
            $("#type_file").css('cursor','pointer');
            $(this).css('cursor','default');
            $(this).removeClass('blue');
            $("#type_url img").attr('src','/images/tab_by_url_active.png')
            $("#type_down img").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").addClass('blue');
            $("#type_url").css('cursor','pointer');
            $(this).css('cursor','default')
            $(this).removeClass('blue');
            $("#type_file img").attr('src','/images/tab_by_upload_active.png')
            $("#type_url img").attr('src','/images/tab_by_url_unactive.png')
            $("#type_down img").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;
		         mp3 = data.mp3;
                       server = data.server;
                       if(mp3 && data.converted){
                           mp3Progress()
                       }
                       else if(mp3 && data.uploaded) {
                           uploadComplete()
                       } else {

			      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    uploadFormSubmit(){

        if(!isUrl($('#link_url').val())){
            alert('Enter url');
            $('#link_url').focus()
            return false;
        }

        $("#form").hide('fast');
        startUpload();
	if(wget_start_post == '')
	    wget_start_post = $(this.elements).serialize()

	
        $.post("/upload/wget-start", wget_start_post,
               function(data) {
                   if (data.ok) {
                       $(".params").empty();
                       wget = true;
		       id = data.id;
		       mp3 = data.mp3;
		       server = data.server;
		       if(mp3 && data.converted){
			   mp3Progress()
		       } 
		       else if(mp3 && data.uploaded) {
			   uploadComplete()
		       } else {
			   progress.startCross(data.id, data.server+"/wget/"+data.id);
		       }
                   } else if(data.captcha){
		       checkCaptcha()
		   } else {			
                       urlError(data.error);
                   }
               }, 'json'
              );
        return false;
    }


    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 captchaCallBack(captcha_data){

	if(captcha_data == 'ok'){

	    wget_start_post = wget_start_post +  "&captcha=1";
	    uploadFormSubmit()
	} else {
	    $("#form").html(captcha_data)
	    $("#form").show('fast')
	    $('#captcha_form').submit(function(){
		$.get("/get-url/code",$(this.elements).serialize(),captchaCallBack,'text')
		return false;
	    })
	}
    }

    function checkCaptcha(){
	$.get("/get-url/captcha",captchaCallBack,'text')

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

    //upload-form

    $('#upload-form').submit(
	uploadFormSubmit
    );

    // 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();
                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').hide()
    $("#upload_submit").unbind();
    $("#upload_submit").click(function(){return false});
    $("#upload_submit").css('cursor','default')
}

function mp3ProgressTimer(){
    mp3_percent = mp3_percent + Math.floor(Math.random()*20);
    if(mp3_percent > 100){	
	if(!convert){
	    convert = true;
	    $('#progress-info').html('Converting...');
	    $('#cancelbtn').unbind();
	    $('#cancelbtn').hide();
            $('.next').hide();
	    $('#step').html('STEP 3/3');    
	    mp3_percent = 0;
	} else {
	    mp3_percent = 100;
	    document.location = "/download/"+id;
	    clearInterval(mp3_timer)
	}
    }
    $('#progress').progressBar(mp3_percent);
}
function mp3Progress(){
    $("#form").hide();
    $("#upload_submit").unbind();
    $('#progress-info').html('Downloading file...');
    $('.divProgress').show();
    $("#progress").progressBar({ barImage: 'images/progressbg_yellow.gif'} );
    $('#progress').show();

    $('#step').html('STEP 2/3');    
    mp3_timer = setInterval(mp3ProgressTimer,1000);
}

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);
    if(mp3){
        wget = false;
        browse = false;
        convert = true;
	$("#upload_submit").unbind();
        $('#cancelbtn').unbind();
	$('#cancelbtn').hide();
	$('.next').hide();
	$('#progress-info').html('Please wait...');
        $('#step').html('STEP 3/3');
	progress.startCross(id, server+"/convert/"+id);
    } else{
	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();
}
