YAHOO.example.autoGrid = function(){
  var container = YAHOO.util.Dom.get('doc') || 
                  YAHOO.util.Dom.get('doc2') || 
                  YAHOO.util.Dom.get('doc4') || 
                  YAHOO.util.Dom.get('doc3') ||
                  YAHOO.util.Dom.get('doc-custom');
  if(container){
    var sidebar = null;
    var classes = container.className;
    if(classes.match(/yui-t[1-3]|yui-left/)){
       var sidebar = 'left';
    }
    if(classes.match(/yui-t[4-6]|yui-right/)){
       var sidebar = 'right';
    }
    function switchGrid(){
      var currentWidth = YAHOO.util.Dom.getViewportWidth();
      if(currentWidth > 950){
        container.id = 'doc2';
        if(sidebar){
          container.className = sidebar === 'left' ? 'yui-t3' : 'yui-t6';
        }
      }
      if(currentWidth < 950){
        container.id = 'doc';
        if(sidebar){
          container.className = sidebar === 'left' ? 'yui-t2' : 'yui-t5';
        }
      }
      if(currentWidth < 760){
        container.id = 'doc3';
        if(sidebar){
          container.className = sidebar === 'left' ? 'yui-t1' : 'yui-t4';
        }
      }
      if(currentWidth < 600){
        container.id = 'doc3';
        container.className = '';
      }
      var sbw = YAHOO.util.Dom.get('sb').offsetWidth;
      YAHOO.util.Dom.setStyle('pageslist','width',sbw+'px');
    };
    switchGrid();
    /* 
      Throttle by Nicholas Zakas to work around MSIE's resize nasties.
      http://www.nczonline.net/blog/2007/11/30/the_throttle_function
    */
    function throttle(method, scope) {
      clearTimeout(method._tId);
        method._tId= setTimeout(function(){
        method.call(scope);
      }, 100);
    };
    YAHOO.util.Event.on(window,'resize',function(){
      throttle(YAHOO.example.autoGrid.switchGrid,null);
    });
    /* uncomment this if you want collapsible tags and categories
    YAHOO.util.Event.on(window,'load',function(){
      var cats = YAHOO.util.Dom.getElementsByClassName('categories','ul');
      YAHOO.util.Dom.batch(cats,function(o){
        YAHOO.util.Dom.addClass(o,'hide');
        var x = o.previousSibling;
        var a = document.createElement('a');
        YAHOO.util.Dom.addClass(a,'parent');
        a.href = 'show categories';
        o.parentNode.insertBefore(a,o);
        a.appendChild(x);
      });
      var tags = YAHOO.util.Dom.getElementsByClassName('tags','ul');
      YAHOO.util.Dom.batch(tags,function(o){
        YAHOO.util.Dom.addClass(o,'hide');
        var x = o.previousSibling;
        var a = document.createElement('a');
        YAHOO.util.Dom.addClass(a,'parent');
        a.href = 'show tags';
        o.parentNode.insertBefore(a,o);
        a.appendChild(x);
      });
      var metas = YAHOO.util.Dom.getElementsByClassName('postmetadata','div');
      YAHOO.util.Dom.batch(metas,function(o){
        YAHOO.util.Event.on(o,'click',function(e){
          var t = YAHOO.util.Event.getTarget(e);
          if(YAHOO.util.Dom.hasClass(t,'open') || YAHOO.util.Dom.hasClass(t,'parent')){
           if(YAHOO.util.Dom.hasClass(t,'parent')){
             YAHOO.util.Dom.replaceClass(t,'parent','open');
             YAHOO.util.Dom.removeClass(t.nextSibling,'hide');
           } else {
             YAHOO.util.Dom.replaceClass(t,'open','parent');
             YAHOO.util.Dom.addClass(t.nextSibling,'hide');
           }
          }
          YAHOO.util.Event.preventDefault(e);
        });
      });
    });
    */
    
  };
  return {
    switchGrid:switchGrid
  };
}();
