// ==UserScript==
// @name Redditfix
// @author Arve Bersvendsen
// @namespace http://virtuelvis.com/
// @version 0.1
// @description Fixes minor squiggles with Reddit
// @include http://reddit.com/*
// @include http://*.reddit.com/*
// ==/UserScript==

/* 
 * Copyright (c) 2007, Arve Bersvendsen 
 * All rights reserved. 
 * Redistribution and use in source and binary forms, with or without 
 * modification, are permitted provided that the following conditions are met: 
 * 
 *     * Redistributions of source code must retain the above copyright 
 *       notice, this list of conditions and the following disclaimer. 
 *     * Redistributions in binary form must reproduce the above copyright 
 *       notice, this list of conditions and the following disclaimer in the 
 *       documentation and/or other materials provided with the distribution. 
 *     * Neither the name of Opera Software ASA nor the 
 *       names of its contributors may be used to endorse or promote products 
 *       derived from this software without specific prior written permission. 
 * 
 * THIS SOFTWARE IS PROVIDED BY OPERA SOFTWARE ASA AND CONTRIBUTORS ``AS IS'' AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
 * DISCLAIMED. IN NO EVENT SHALL OPERA SOFTWARE ASA AND CONTRIBUTORS BE LIABLE FOR ANY 
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 */ 


if ((/reddit.com$/.test(window.location.hostname)) && (window == window.top)){

  (function(){
    if (!(/(info)/.test(window.location.pathname))){
      window.addEventListener('DOMContentLoaded',insertDetails,false);
    }
    else
    {
      window.addEventListener('DOMContentLoaded', expandComments, false);
    }

    function expandComments()
    {
      var links = document.body.getElementsByTagName('a');
      for (var i = 0; ele = links[i]; i++)
      {
        if (/^more_/.test(ele.id))
        {
          ele.click();
        }
      }
    }


    function insertDetails()
    {
      var re = /\/comments\/$/;
      var ele;
      var eles = document.getElementsByClassName('bylink');
      opera.postError(eles.length);
      for (var i = 0; ele = eles[i]; i++)
      {
        if (ele.href && re.test(ele.href))
        {
          var a = document.createElement('a');
          a.className = 'bylink';
          a.href= ele.href.replace('comments','details');
          a.textContent = 'details';
          var r = document.createElement('a');
          r.className = 'bylink';
          r.href= ele.href.replace('comments','related');
          r.textContent = 'related';
          ele.parentElement.insertBefore(r,ele.nextSibling);
          ele.parentElement.insertBefore(a,ele.nextSibling);
        }
      }
    }

 })()
}
