// ==UserScript==
// @name           Google Dict
// @namespace      http://www.matrix67.com
// @description    Add a reference from dict.cn
// @include        http://www.google.*
// ==/UserScript==

function getDict()
{
	var dictLoad = document.createElement("div");
    dictLoad.innerHTML = "<font size=-1>Google Dict Loading...</font>";
    document.body.insertBefore(dictLoad, document.getElementById("res"));

	var dictWord = document.getElementsByName("q")[0].value
    GM_xmlhttpRequest({
        method: "GET",
        url: "http://dict.cn/ws.php?utf8=true&q="+dictWord,
        headers: {
            "User-agent": "Mozilla/4.0 (compatible) Greasemonkey",
            "Accept": "application/xml,text/xml",
        },
        onload: function(responseDetails) {
            var dictParser = new DOMParser();
            var dictDom = dictParser.parseFromString(responseDetails.responseText,
                "application/xml");
            
            var dictPron,dictDef
            
            if(dictDom.getElementsByTagName("pron").length)
               dictPron = dictDom.getElementsByTagName("pron")[0].textContent;
            else{dictPron = "N/A"}
            
            if(dictDom.getElementsByTagName("def").length)
               dictDef = dictDom.getElementsByTagName("def")[0].textContent;
            else{dictDef = "N/A"}
            
            var dictContent = document.createElement("div");
            dictContent.innerHTML = "<font size=-1>Pronunciation: " + dictPron +
            	                    "<br /> Definition: " + dictDef +
        	                        "<br /><a href=\"http://dict.cn/search/?q=" + dictWord + 
        	                        "\" target=\"_blank\">View More</a></font>";
        	dictLoad.parentNode.removeChild(dictLoad);
            document.body.insertBefore(dictContent, document.getElementById("res"));
        }
    });
}

if (document.getElementById("res") && document.getElementsByName("q").length)getDict();
