// ==UserScript==
// @name           naver ruby
// @namespace      http://code.google.com/p/naver-ruby-greasemonkey/
// @description    네이버 사전에서 후리가나를 보여줍니다.
// @version        0.2
// @include        http://jpdic.naver.com/*
// ==/UserScript==

var thisElement, prevElement;
var rubyHTML;
var i, j;

var tagSUP = document.getElementsByTagName('SUP');

if (tagSUP)

{
    
        for ( i=0 ; i<tagSUP.length ; i++)
        
        { 
                
                thisElement = tagSUP[i];
                
                if (thisElement.getAttribute('class') == 'huri')

                {
                        prevElement = thisElement.previousSibling;
                        
                        if (prevElement.nodeName == 'SPAN' && prevElement.getAttribute('class') == 'han')
                        {
                                rubyHTML = "";
                                
                                while (prevElement.nodeName == 'SPAN' && prevElement.getAttribute('class') == 'han')
                                {
                                    rubyHTML=rubyHTML+"<span class=\"han\">"+prevElement.innerHTML+"</span>";
                                    prevElement.innerHTML = "";
                                    if (prevElement.previousSibling)
                                    {
                                        prevElement = prevElement.previousSibling;
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }
                                
                                
                                newElement = document.createElement('ruby');
                                newElement.innerHTML = "<rb>"+rubyHTML+"</rb><rt><span class=\"huri\">"+thisElement.innerHTML+"</span></rt>";
                                thisElement.innerHTML = "";
                                thisElement.parentNode.insertBefore(newElement, thisElement);

                                
                        }
                        
                        else if (prevElement.nodeName == 'B'
                                 && prevElement.lastChild.nodeName == 'SPAN' && prevElement.lastChild.getAttribute('class') == 'jp'
                                 && prevElement.lastChild.lastChild.nodeName == 'SPAN' && prevElement.lastChild.lastChild.getAttribute('class') == 'han')
                        {
                                
                                prevElement = prevElement.lastChild.lastChild;
                                
                        
                                if (prevElement.nodeName == 'SPAN' && prevElement.getAttribute('class') == 'han')
                                {
                                       
                                        rubyHTML = "";
                                        
                                        while (prevElement.nodeName == 'SPAN' && prevElement.getAttribute('class') == 'han')
                                        {
                                            rubyHTML=rubyHTML+"<span class=\"han\">"+prevElement.innerHTML+"</span>";
                                            prevElement.innerHTML = "";
                                            if (prevElement.previousSibling)
                                            {
                                                prevElement = prevElement.previousSibling;
                                            }
                                            else
                                            {
                                                break;
                                            }
                                        }
                                        
                                        
                                        newElement = document.createElement('ruby');
                                        newElement.innerHTML = "<b><rb><span class=\"jp\">"+rubyHTML+"</span></rb></b><rt><b><span class=\"huri\">"+thisElement.innerHTML+"</span></b></rt>";
                                        thisElement.innerHTML = "";
                                        thisElement.parentNode.insertBefore(newElement, thisElement);

                                }

                                
                        }
                     
                }        
                
                   
                        
                
        }
            
}
   


