var d=YAHOO.util.Dom;

var Loader = {};

Loader.custLogo = function () {
  if(   document.frm_video.over[1].checked 
     || $("#over2").attr('checked')
    ) {
    $('#custom_logo_box').show("fast");
  } else {
    $('#custom_logo_box').hide("fast");
  }
}

Loader.show = function () {
  Loader.opaco('show');
  $('#loadframe').show();
}

Loader.hide = function () {
  $('#loadframe').hide();
  $('#progress_bar').hide();
}

Loader.step1 = function (o) {
  $('#_firebugConsole').append('<hr>' + 'Loader.js.step1 start');

  var resp = o.responseText;

  if(resp.substr(0,6).toLowerCase()=='error:') {
    $('#_firebugConsole').append('<hr>' + 'Error! ' + o.responseText);
    Loader.ShowError(resp.substr(6));
  } else {
    var output = 'Downloading video. This may take some time. Please wait.. Please click also on our Sponsors, thanks.';
    $('#tgt').html(output);
                                         	
    $('#_firebugConsole').append('<hr>' + output);

    Loader.videoURL = o.responseText;
    
    $('#_firebugConsole').append('<hr>' + Loader.loaderUrl+'/store/' + 'url = '+escape(Loader.videoURL));
    
    Loader._callback.success = Loader.step2;
    //Loader._callback.failure = Loader.ShowError("Download failed. Can not find any video on this URL.");

    //YAHOO.util.Connect.setForm(d.get('frm_video'), true);
    var request = YAHOO.util.Connect.asyncRequest('POST', Loader.loaderUrl+'/store/', Loader._callback, 'url='+escape(Loader.videoURL));
  }
}

Loader.step2 = function (o) {
  $('#_firebugConsole').append('<hr>' + 'Loader.js.step2 start');
  if(o.responseText.substr(0,6).toLowerCase()=='error:') {
    $('#_firebugConsole').append('<hr>' + 'Error! ' + o.responseText);
    $('#tgt').html(o.responseText.substr(6));
    $('#progress_bar').hide();
  } else {
    var output = 'Converting. This may take some time. Please wait...  Please click also on our Sponsors, thanks.'/*+"\n<br /><br />"+o.responseText*/;
    
    $('#_firebugConsole').append('<hr>' + output);
    
    $('#tgt').html(output);
    //Loader.videoURL = o.responseText;
    Loader._callback.success = Loader.step3;
    Loader._callback.upload =  Loader.step3;
    
    //Loader.videoURL = $('#url').val();
    //YAHOO.util.Connect.setForm(d.get('frm_video'), true);
    var request = YAHOO.util.Connect.asyncRequest('POST', Loader.loaderUrl+'/convert/', Loader._callback, 'url='+escape(Loader.videoURL)+'&type='+Loader.videoType); 
  }
}

Loader.step3 = function (o) {
  $('#_firebugConsole').append('<hr>' + 'Loader.js.step3 start');
  $('#loader_bar').hide();
  if(o.responseText.substr(0,6).toLowerCase()=='error:') {
    $('#_firebugConsole').append('<hr>' + 'Error! ' + o.responseText);
    $('#tgt').html(o.responseText.substr(6));
  } else {

    $('#_firebugConsole').append('<hr>' + 'responseText=' + o.responseText);

    Loader.convertedFile = o.responseText;
		var getUrl = Loader.loaderUrl+'/get/'+Loader.convertedFile;
    var output = 'Your file is ready. <a href="'+ getUrl +'">download</a>';
    $('#tgt').html(output);

    $('#_firebugConsole').append('<hr>' + result);

    document.location=getUrl;
  }
}

Loader.ShowError = function(text){
  $('#loader_bar').hide();
  $('#tgt').html(text);
  $('#loadframe').css('background', 'red');
  $('#close_button').css('color', 'black');
}

Loader.connFailed = function (o) {
  Loader.ShowError('Connection failed, please try again.');
}

Loader._callback = {
  success: Loader.step1,
  failure: Loader.connFailed
}

Loader.open = function() {

  $('#loadframe').css('background', "#539DBC");

  $('#_firebugConsole').html('')
                       .show()
                       .css('font-family', 'Tahoma')
                       .css('font-size'  , '10px')
                       .css('padding'    , '3px')
                       .css('background' , 'lightgrey');

  this.pageUrl = document.frm_video.url.value;
  this.videoType = document.frm_video.type.value;

  $('#_firebugConsole').append('<hr>' + 'Loader.open:<br />pageUrl=' + this.pageUrl + '<br />videoType=' + this.videoType);

  // multiple choices for radio button
  if(this.videoType == undefined) {
    radioLen = document.frm_video.type.length;
    for(var i=0; i< radioLen; i++){
      if(document.frm_video.type[i].checked){
        this.videoType = document.frm_video.type[i].value;
      }
    }
  }

  if(this.videoType == undefined) {
    var types = document.getElementsByName('type');
    for(var i=0; i< types.length; i++){
      if(types[i].checked == true){
        this.videoType = types[i].value;
      }
    }
  }

  if(this.videoType == undefined) {
    this.videoType = $('type').value();
  }

  $('#_firebugConsole').append(' (processed videoType=' + this.videoType + ')');

  this.show();
  $('#progress_bar').show();
  this._callback.success = this.step1;
  $('#tgt').html('Parsing page. This may take some time. Please wait.. Please click also on our Sponsors, thanks.');
  
  $('#_firebugConsole').append('<hr>Parsing page. This may take some time. Please wait.. Please click also on our Sponsors, thanks.');

  var request = YAHOO.util.Connect.asyncRequest('POST', this.loaderUrl+'/parse/', this._callback, 'url='+escape(this.pageUrl)); 
}

Loader.close = function() {
  $('#_firebugConsole').html('').hide();
  Loader.opaco('hide');
  this.hide();
}

Loader.opaco = function (action){
  switch (action) {
    case 'show':
      if($.browser.msie){
        $('#opaco').height($(document).height())
                   .toggleClass('hidden')
                   .click(function(){Loader.close();});
      } else {
       $('#opaco').height($(document).height())
                  .toggleClass('hidden')
                  .fadeTo('slow', 0.7)
                  .click(function(){Loader.close();});
      }
      break;
    case 'hide':
    default:
      $('#opaco').toggleClass('hidden').removeAttr('style').unbind('click');
      break;
  }
}

