view app/assets/javascripts/init.tabs.js @ 114:b72f99d7b8cf

Dynamic url based on options selected. Yes, I'm having too much fun.
author Edho Arief <edho@myconan.net>
date Mon, 12 Nov 2012 13:31:18 +0700
parents 2b1041e8c35e
children 546381cf83c2
line wrap: on
line source

$(document).ready(function() {
  if ($('#paste-tabs').length == 1) {
    raw = $('#plain pre').text();

    $('#highlight pre').text(raw);
    window.prettyPrint && prettyPrint();

    $('#markdown div').html(marked(raw));

    update_state = function() {
      var paste = $('#paste'),
        mode = paste.data('mode'),
        width = paste.data('width'),
        qstring = '?' + mode + '.' + width;
      if ((mode == 'plain') && (width == 'full')) {
        qstring = '?';
      }
      history.replaceState(null, '', qstring);
    };

    paste_resize = function(size) {
      var paste = $('#paste'),
        title = $('#tab-resize a.btn');
      title.html(title.html().replace(/(full|\d+px)/, size));
      if (size == 'full') {
        paste.css('width', '');
        paste.data('width', size);
      } else {
        paste.css('width', size);
        paste.data('width', size);
      }
      update_state();
    }

    $('#paste-tabs > li > a').click(function() {
      $('#paste').data('mode', $(this).prop('href').split('#')[1]);
      update_state();
    });
    $('#tab-resize ul a').click(function() {
      paste_resize($(this).data('size'));
    });

    mode = window.location.search.substr(1).split('.');
    if (mode[0] == 'highlight') { $('#paste-tabs li:eq(1) a').click(); }
    else if (mode[0] == 'markdown') { $('#paste-tabs li:eq(2) a').click(); }
    if (mode[1] && mode[1].match(/^\d+px$/)) { paste_resize(mode[1]); }

  }
});