var SocialStream = SocialStream || {};
SocialStream.Linkser = SocialStream.Linkser || {};
SocialStream.Linkser.initiate = function() {
  $.preloadImages("<%= asset_path('loading.gif') %>");
  var urlDetect = function() {
    this.currentValue = $("#input_activities").val();
    if(this.lastValue == null)
      this.lastValue = "";

    var regexp = /^(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&;:\/~+#-]*[\w@?^=%&;\/~+#-])?$/
    if(regexp.test($("#input_activities").val())) {
      $("#link_url").val($("#input_activities").val());
      $("#link_loaded").val(false);
      $("#new_post").attr("action", "/links");
      if(this.currentValue != this.lastValue) {
        $("#link_preview").html($('<img>').attr('src', '<%= asset_path('loading.gif') %>').addClass('loading'));
        this.lastValue = this.currentValue;
        var url = this.currentValue;
        var urlDetect = this;
        $.ajax({
          type : "GET",
          url : "/linkser_parse?url=" + url,
          success : function(html) {
            if($("#input_activities").val() == url) {//Only show if input value is still the same
              $("#link_preview").html(html);
              $("#link_loaded").val(true);
            }
          },
          error : function(xhr, ajaxOptions, thrownError) {
            if($("#input_activities").val() == url) {//Only show if input value is still the same
              $("#link_preview").html($('<div>').addClass('loading').html("<%= I18n.t('link.errors.loading') %> " + url));
            }
          }
        });
      }
      $("#link_preview").show();
    } else {
      $("#new_post").attr("action", "/posts");
      $("#link_preview").hide();
      $("#link_preview").html("");
      $("#link_url").val("");
    }
  }
  if($("#new_post").length) {
    $("#input_activities").change(urlDetect).keyup(urlDetect);
    $("#new_post").append($('<input>').attr('type', 'hidden').attr('name', 'link[owner_id]').attr('id', 'link_owner_id').val($("#post_owner_id").val()));
    $("#new_post").append($('<input>').attr('type', 'hidden').attr('name', 'link[url]').attr('id', 'link_url'));
    $("#new_post").append($('<input>').attr('type', 'hidden').attr('name', 'link[loaded]').attr('id', 'link_loaded').val(false));
    $("#new_post").append($('<div>').attr('id', 'link_preview').css('display', 'none'));
  }
}

SocialStream.Linkser.openCallback = function(id,url,w,h){
      var height='353';
      if(w>0 && h>0) {
          height=470*h/w;
      }
      $("#" + id).html($('<iframe>').attr('src',url).attr('width','470').attr('height',height));
}

$(function(){
  SocialStream.Linkser.initiate();
});