function initGloss()
{

	// DEFINIR O NOME DAS DIVs QUE SERÃO PESQUISADAS //////////////////////////////////
	var divName_Produto = "descricaoProduto";
	var divName_Conteudo = "luPortalConteudo";
	var divName;
	
	var qs = new Querystring();
	var dType, genID, callF;
	// Utilizar lowerCase
	if (qs.contains("id")){ genID = qs.get("id"); dType = "C"; divName = divName_Conteudo; callF=true; }
	if (qs.contains("produto")){ genID = qs.get("produto"); dType = "P"; divName = divName_Produto; callF=true; }
	
	if (callF == true)
			toggleGlossaryOn(genID,dType,divName);		
}

function Querystring(qs) {
	this.params = {};
	
	if (qs == null) qs = location.search.substring(1, location.search.length);
	if (qs.length == 0) return;

	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); 
	
// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]).toLowerCase(); //para facilitar as comparacoes
		
		var value = (pair.length==2)
			? decodeURIComponent(pair[1])
			: name;
		
		this.params[name] = value;
	}
}
Querystring.prototype.get = function(key, default_) {
	var value = this.params[key];
	return (value != null) ? value : default_;
}
Querystring.prototype.contains = function(key) {
	var value = this.params[key];
	return (value != null);
}


function toggleGlossaryOn(_id,_dType,_divName) 
{
//	alert("_id:" + _id);
//	alert("_dType:" + _dType);  	
  $.getJSON(
			"http://www.magazineluiza.com.br/services/glossario.asp", 
			{id:_id, dType:_dType},			
			function(response) 
			{
				for (i = 0; i < response.j.length; i++)
				{

					findAndReplace(		'\\b' + response.j[i].Termo + '\\b',
										function(term)
										{
											var strReturn;
											strReturn = '<a href="#" class="glossario" id="glossario" title="<strong>';
											strReturn += term + ': ';
											strReturn += '</strong>';
											strReturn += response.j[i].Significado;
											if (response.j[i].Sinonimos.length > 0)
											{
												strReturn += ' - Sin&ocirc;nimos: ';
												strReturn += response.j[i].Sinonimos;
											}
											strReturn += '.">';
											strReturn += term;
											strReturn += '</a>';											
											return strReturn;
										},
										document.getElementById(_divName)
				   					);
					
				}
				applyToolTip();
		    }
		  );
  
} 

function findAndReplace(searchText, replacement, searchNode) {
    
	if (!searchText || typeof replacement === 'undefined') {       
        return;
    }
	
    var regex = typeof searchText === 'string' ?
                new RegExp(searchText, 'ig') : searchText,
        childNodes = ( searchNode || document.body).childNodes,
        cnLength = childNodes.length,
        excludes = 'html,head,style,title,link,meta,script,object,iframe';
    while (cnLength--) {
        var currentNode = childNodes[cnLength];
        if (currentNode.nodeType === 1 &&
            (excludes + ',').indexOf(currentNode.nodeName.toLowerCase() + ',') === -1) {
            arguments.callee(searchText, replacement, currentNode);
        }
        if (currentNode.nodeType !== 3 || !regex.test(currentNode.data) ) {
            continue;
        }
        var parent = currentNode.parentNode,
            frag = (function(){
                var html = currentNode.data.replace(regex, replacement),
                    wrap = document.createElement('div'),
                    frag = document.createDocumentFragment();				
                wrap.innerHTML = html;				
                while (wrap.firstChild) {
                    frag.appendChild(wrap.firstChild);							
                }
                return frag;
            })();

        parent.insertBefore(frag, currentNode);
        parent.removeChild(currentNode);		
		
		
    }

}


