/* Document for loading XML and glossary hoverovers */

var tempDef;

//var xOffset = -83;
var yOffset = 0;

var xOffset = -83;

var glossaryDef = "";
var glossaryTemplate = "<div id=\"glossaryContainer\"><div id=\"glossaryTop\"></div><div id=\"glossaryMid\"><div id=\"glossaryText\">Loading glossary definition...</div></div><div id=\"glossaryBot\"></div></div>";

var curURL = window.location.href;
curURL = curURL.toLowerCase();

$(document).ready(function() {
    $.jCache.clear();
    $.ajax({ type: "GET", url: "/documents/glossary.xml", datatype: "xml", success: parseXML });
    $(glossaryTemplate).insertAfter("#printFooter");
    $("body").mousemove(function(e) { moveGlossary(e); });
});

function parseXML(xml) {
	
	
    /* Dictating size is optional */
    

	$.jCache.maxSize = 200;



    $(xml).find("term").each(function() {
        $.jCache.setItem($(this).find("id").text(), $(this).find("definition").text());
    });
    
    
    if (curURL.indexOf('lilly-glossary.aspx') > 0) {
        $("#subContent").append("<ul>");
        $(xml).find("term").each(function() {
		$("#subContent ul:first").append("<li><h4>" + $(this).find("title").text() + "</h4><span>" + $(this).find("definition").text() + "</span></li>");
        });

        $("#subContent ul:first").addClass("glossaryTerms");

        $(".glossaryInDef").hover(function() {
            $(this).addClass("hover");
            showGlossary('indication');
        }, function() {
            $(this).removeClass("hover");
            hideGlossary(this);
        });
    }
    else {
        $(".glossary").hover(function() { showGlossary($(this).attr("title")); }, function() { hideGlossary(); });
	//getClassName('glossary');
    }
    
    $(".glossary").click(function(){
    	return false;
    });
}

function moveGlossary(e) {
  	if( typeof( window.innerWidth ) == 'number' ) {
//Non-IE
    		if((e.pageX + 275) > window.innerWidth)
			{
			$("#glossaryContainer").css("top", e.pageY - yOffset + "px").css("left", e.pageX + xOffset - (e.pageX + 275 - window.innerWidth) + "px");
		}
		else
		{
			$("#glossaryContainer").css("top", e.pageY - yOffset + "px").css("left", e.pageX + xOffset + "px");
		}
  	} 
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
//IE 6+ in 'standards compliant mode'
    		if((e.clientX + 275) > document.body.clientWidth)
		{
			$("#glossaryContainer").css("top", e.pageY - yOffset + "px").css("left", e.clientX + xOffset - (e.clientX + 275 - document.body.clientWidth) + "px");
		}
		else
		{
			//alert("e.pageY--> " + e.pageY);
			//alert("yOffset--> " + yOffset);
			//alert("e.pageY - yOffset--> " + (e.pageY - yOffset));
			$("#glossaryContainer").css("top", e.pageY - yOffset + "px").css("left", e.clientX + xOffset + "px");
		}
	}
}



function showGlossary(term) {
	
    /* Place definition in glossary template */
    tempDef = $.jCache.getItem(term);

    $("#glossaryText").html(tempDef);

    yOffset = $("#glossaryContainer").outerHeight() + 10;

    $("#glossaryContainer").show();
	
}

function hideGlossary() {
	

    $("#glossaryContainer").hide();
	
}



