aboutsummaryrefslogtreecommitdiff
path: root/jquery_drawer/drw/scripts.js
diff options
context:
space:
mode:
Diffstat (limited to 'jquery_drawer/drw/scripts.js')
-rw-r--r--jquery_drawer/drw/scripts.js101
1 files changed, 101 insertions, 0 deletions
diff --git a/jquery_drawer/drw/scripts.js b/jquery_drawer/drw/scripts.js
new file mode 100644
index 0000000..f9743b6
--- /dev/null
+++ b/jquery_drawer/drw/scripts.js
@@ -0,0 +1,101 @@
+/**
+ * @name jQuery.drawer
+ * @version 1.00, 2008/05/01
+ * @author inamorix <inamorix@metatype.jp>
+ * @copyright Copyright (c) 2008, metatype.jp.
+ * @license The MIT-style license.
+ */
+
+
+
+(function ($, loaded) {
+$.extend({ drawer: {
+ init: function () {
+ this.self = null;
+ this.closer = '<div id="drw_close"><a href="#" class="drw_close" title="close">close</a></div>';
+ this.loader = '<div id="drw_loader">loading...</div>';
+ this.setTabs();
+ $('#drw').html('<div id="drw_content"></div>');
+ },
+
+
+
+ setTabs: function () {
+ var tabs = $('#drw_tabs li');
+ var w = Math.floor(100 / tabs.size());
+ var w_rem = 100 % tabs.size();
+ tabs.each(function () {
+ $(this).css({ width: (w + ((w_rem-- > 0) ? 1 : 0)) + '%' });
+ });
+
+ $('#drw_tabs li:first').addClass('first');
+ $('#drw_tabs li:last').addClass('last');
+ $('#drw_tabs a[rel*=drw]').each(function () {
+ $('#' + this.href.split('#')[1]).hide();
+ $(this).click(function () {
+ $.drawer.close(($.drawer.self != this) ? this : null);
+ this.blur();
+ return false;
+ });
+ });
+ },
+
+
+
+ open: function () {
+ var content = $('#drw_content').empty();
+ $('#drw_tabs_focus').removeAttr('id');
+ if (!this.self) return;
+
+ this.self.id = 'drw_tabs_focus';
+ loaded = /(#[\w\-]+)$/.test(this.self.href);
+ content.append(loaded ? $(RegExp.$1).clone().show() : this.loader);
+ content.append(this.closer);
+ content.find('.drw_close').click(function () {
+ $.drawer.close(null);
+ this.blur();
+ return false;
+ });
+ content.css({ marginTop: content.height() * -1 }).animate({ marginTop: -1 }, function () {
+ if (!loaded) {
+ $.ajax({
+ url : $.drawer.self.href,
+ type : 'GET',
+ dataType: 'html',
+ cache : false,
+ success : function (html) {
+ if (!loaded) {
+ content.prepend('<div id="drw_ajax"></div>');
+ $('#drw_ajax').hide().append(html);
+ $('#drw_loader').animate({ height: $('#drw_ajax').height() }, function () {
+ $('#drw_loader').fadeOut(function () { $('#drw_ajax').fadeIn(); });
+ });
+ }
+ }
+ });
+ }
+ });
+ },
+
+
+
+ close: function (el) {
+ loaded = true;
+ this.self = el;
+ var content = $('#drw_content');
+ content.animate({ marginTop: content.height() * -1 }, function () { $.drawer.open(); });
+ }
+}});
+$(function () { $.drawer.init(); });
+})(jQuery);
+
+
+$(document).ready(function() {
+ if ( $.browser.msie ) {
+
+ w = $(window).width();
+
+
+ $('#drw_tabs').css('width',w+'px');
+ }
+}); \ No newline at end of file