﻿//<!-- no script

// Contants
//ORIG: var BOX_OFFSET_Y        = 11;
//ORIG: var BOX_OFFSET_X        = 33;
var BOX_OFFSET_Y        = 13;
var BOX_OFFSET_X        = -250;
var FADE_OUT_DURATION   = 222;
var FADE_IN_DURATION    = 444;

// Properties
var isGlossaryPage      = false;
var isTwitterApiLoaded  = false;

$(document).ready(function()
{
    $("input[id*='ViewJobQuest_tbSearch']").parent('td').parent('tr').hide();
    
    $("#procure-glossary-box").each(function(index)
    {
        isGlossaryPage = true;
        
	    $.ajax(
	    {
		    type: "GET",
		    url: "/MediaService.aspx?method=GetGlossaryHtml",
		    dataType: "html",
		    success: function(html)
		    { 
		        $("#procure-glossary-box").html(html);
		    }
	    });
	});
	
	if(!isGlossaryPage)
	{
        // add glossary box to document body
        var glossaryBox = "<div id='glossaryBox' class='glossaryWrapper'><div class='glossaryTop'></div><div class='glossaryMiddle'></div><div class='glossaryBottom'></div></div>";
        $("body").append(glossaryBox);
        
	    // get glossary terms
	    $.ajax(
	    {
		    type: "GET",
		    url: "/MediaService.aspx?method=GetAllGlossary",
		    dataType: "xml",
		    success: function(xml){ HighlightGlossary(xml); }
	    });
	}
});

HighlightGlossary = function(xml)
{
	$(xml).find("GlossaryInfo").each(function()
	{
		var title = $(this).find("DisplayTerm").text();
		var description = $(this).find("Definition").text();

		var expression = "\\b(" + title + ")\\b";
		var regex = new RegExp(expression, "i");
		
        $("div[id*='HtmlModule']").each(function()
        {
            var tagId = $(this).attr("id");
            
            //if(tagId != "dnn_ctr823_HtmlModule_lblContent") // main
            if(tagId != "dnn_ctr849_HtmlModule_lblContent") // production
            {
                var htmlSplit = ($(this).html()).split(/<\/h1>/gi);
                
                var idx = 0;
                if (htmlSplit.length > 1) 
                    idx = 1;
                
                var boundaryBug = htmlSplit[idx].toLowerCase();

                if((boundaryBug.indexOf(" " + title.toLowerCase()) == boundaryBug.indexOf(title.toLowerCase()) - 1) || (boundaryBug.indexOf(">" + title.toLowerCase()) == boundaryBug.indexOf(title.toLowerCase()) - 1))
                {
                    var regexThis = htmlSplit[idx];
                    
                    htmlSplit[idx] = regexThis.replace(regex, function(glossaryText)
                    {
                        return "<span class='glossaryItem' title='" + description + "'>" + glossaryText + "</span>";
                    });
                }
                
                $(this).html(htmlSplit.join("</h1>"));      
            }      
        });
	});
	

	$(".glossaryItem").mouseover(function(event) 
    { 
		$(".glossaryMiddle").html("<h6>" + $(this).html() + "</h6>" + this.title);
		this.title = "";

	    $(".glossaryWrapper").css("top", (event.pageY  - BOX_OFFSET_Y) + "px");  
	    $(".glossaryWrapper").css("left", (event.pageX  + BOX_OFFSET_X) + "px");  
		$(".glossaryWrapper").fadeIn(FADE_IN_DURATION);
    	
    }).mousemove(function(event) 
    {  
	    $(".glossaryWrapper").css("top", (event.pageY  - BOX_OFFSET_Y) + "px");  
	    $(".glossaryWrapper").css("left", (event.pageX  + BOX_OFFSET_X) + "px");  

    }).mouseout(function(event) 
    {  
		//$(".glossaryWrapper").animate({top: -1000}, FADE_OUT_DURATION, "swing");
		$(".glossaryWrapper").fadeOut(FADE_IN_DURATION);
		this.title = ($(".glossaryWrapper").html().split(/<\/h6>/i)[1]).split(/<\/div>/i)[0];

    }).click(function(event) 
    {
	    event.preventDefault();
    }); 
};
//-->
