/*
* Grey Dragon Theme: JS support 
*/

jQuery.fn.extend({
  theme_ready: function() {
    try {
      Shadowbox.setup("a.g-fullsize-link", {player: 'img'});
      Shadowbox.setup("a.g-sb-preview", {player: 'img', gallery: "preview", animate: false, continuous: true, counterType: "skip", animSequence: "wh", slideshowDelay: 5 });

      Shadowbox.setup(".g-dialog-link",    {player: 'ajax', width: 500, height: 420, enableKeys: false, animate: false, onFinish: myAjaxSubmit});
      Shadowbox.setup("a#g-login-link",    {player: 'ajax', width: 340, height: 190, enableKeys: false, animate: false, onFinish: myAjaxLoginSubmit});
      Shadowbox.setup("a#g-exifdata-link", {player: 'ajax', width: 600, height: 420, animate: false});
      Shadowbox.setup("a#g-disclaimer",    {player: 'ajax', width: 600, height: 420});

      Shadowbox.setup("#g-site-menu .ui-icon-pencil",    {player: 'ajax', width: 500, height: 420, enableKeys: false, animate: false, onFinish: myAjaxSubmit});
      Shadowbox.setup(".g-context-menu .ui-icon-pencil", {player: 'ajax', width: 500, height: 420, enableKeys: false, animate: false, onFinish: myAjaxSubmit});
      
      Shadowbox.setup("#g-site-menu .ui-icon-plus",      {player: 'ajax', width: 500, height: 390, enableKeys: false, animate: false, onFinish: myAjaxSubmit});
      Shadowbox.setup(".g-context-menu .ui-icon-plus",   {player: 'ajax', width: 500, height: 390, enableKeys: false, animate: false, onFinish: myAjaxSubmit});

      Shadowbox.setup("#g-site-menu .ui-icon-note",      {player: 'ajax', width: 500, height: 370, enableKeys: false, animate: false, onFinish: myAjaxSubmit});
      Shadowbox.setup(".g-context-menu .ui-icon-note",   {player: 'ajax', width: 500, height: 370, enableKeys: false, animate: false, onFinish: myAjaxSubmit});

      Shadowbox.setup("#g-site-menu .ui-icon-key",       {player: 'ajax', width: 700, height: 300, enableKeys: false, animate: false, onFinish: myAjaxSubmit});
      Shadowbox.setup(".g-context-menu .ui-icon-key",    {player: 'ajax', width: 700, height: 300, enableKeys: false, animate: false, onFinish: myAjaxSubmit});

      Shadowbox.setup("#g-site-menu #g-menu-organize-link",   {player: 'ajax', width: 710, height: 460, enableKeys: false, animate: false, onFinish: myAjaxSubmit});
      Shadowbox.setup(".g-context-menu #g-menu-organize-link",{player: 'ajax', width: 710, height: 460, enableKeys: false, animate: false, onFinish: myAjaxSubmit});

      Shadowbox.setup(".g-context-menu .ui-icon-folder-open", {player: 'ajax', width: 400, height: 370, enableKeys: false, animate: false, onFinish: myAjaxSubmit});
      Shadowbox.setup(".g-context-menu .g-quick-delete",      {player: 'ajax', width: 400, height: 150, enableKeys: false, animate: false, onFinish: myAjaxSubmit});

      Shadowbox.setup("#g-user-profile .g-dialog-link", {player: 'ajax', width: 500, height: 280, enableKeys: false, animate: false, onFinish: myAjaxSubmit});
      
      Shadowbox.setup("#add_to_basket .g-dialog-link",  {player: 'ajax', width: 500, height: 360, enableKeys: false, animate: false, onFinish: myAjaxSubmit});
    } catch (e) { }

    try {
      $(".g-message-block").fadeOut(10000);
      $(".g-ajax-link").gallery_ajax();
    } catch (e) { }

    $("#g-site-menu>ul>li>ul").show();
    $("#g-login-menu").show();
    $(".g-context-menu").show();
  },

  gallery_dialog_postprocess: function(href, title) {
    Shadowbox.open({player: 'ajax', content: href, width: 500, height: 420, enableKeys: false, animate: false, title: title}); 
  }
});

var myAjaxLoginSubmitOps = {
  dataType: 'json', 
  success: function(data) {
    if (data.result == 'error') {
      $('#g-login').html(data.form);
      myAjaxLoginSubmit();
    } else {
      Shadowbox.close(); 
      window.location.reload(); 
    }
  }
};

var myAjaxSubmitOps = {
  dataType: 'json',
  success: function(data) {
    if (data.result == 'error') {
      $('#sb-content form').html(data.form);
      myAjaxSubmit();
    } else {
      Shadowbox.close();
      window.location.reload();
    }
  }
};

myAjaxLoginSubmit = function() {
  $('form#g-login-form').one('submit', function() {
    $(this).ajaxSubmit(myAjaxLoginSubmitOps); 
    return false;
  }
)};

myAjaxSubmit = function() {
  $('form').one('submit', function() {
    $(this).ajaxSubmit(myAjaxSubmitOps);
    return false;
  }
)};

(function($) {
  $.widget("ui.gallery_ajax",  {
    _init: function() {
      this.element.click(function(event) {
        eval("var ajax_handler = " + $(event.currentTarget).attr("ajax_handler"));
        $.get($(event.currentTarget).attr("href"), function(data) {
          eval("var data = " + data);
          ajax_handler(data);
        });
        event.preventDefault();
        return false;
      });
    }
  });

  $.widget("ui.gallery_dialog",  {
    _init: function() {
      var self = this;
      if (!self.options.immediate) {
        this.element.click(function(event) {
          event.preventDefault();
          var href = $(event.currentTarget).attr("href");
          var title = $(event.currentTarget).attr("title");
          setTimeout(function() { $().gallery_dialog_postprocess(href, title); }, 1000);
          return false;
        });
      } else {
        var href = this.element.attr("href");
        var title = this.element.attr("title");
        setTimeout(function() { $().gallery_dialog_postprocess(href, title); }, 1000);
      }
    }
  });
})(jQuery);

$(document).ready(function() {
  $().theme_ready();
});
