// Dynamic Link builder script
// Copyright 2007 Gennadiy Shvets
// The program is distributed under the terms of the GNU General
// Public License 3.0
//
// To use this script:
// 1. [Optional] Set URL prefix - this prefix will be pre-pended to URLs 
//    of all links that this script will create:
//
//    var L_urlPrefix = 'http://allmyscripts.com';
//
// 2. Create new array containing link id and link URL in format:
//
//    var L_allLinks = new Array ('widgets', '/widgets/index.html',
//      'gadgets', '/gadgets/index.html');
//
// 3. Add javascript to your HTML page
//
//    <script type="text/javascript" src="gs_links.js"></script>

var L_urlPrefix = '';
var L_allLinks = new Array (
'AMD64', '/Glossary/A/AMD64_technology.html',
'AUTOHALT_MODE', '/Glossary/A/Auto_Halt_Power_Down_state.html',
'CLOCK_MULT', '/Glossary/B/Bus_clock_multiplier.html',
'COOLCORE', '/Glossary/C/CoolCore_technology.html',
'DEEP_SLEEP_MODE', '/Glossary/D/Deep_Sleep_state.html',
'DUAL_DYN_POWER', '/Glossary/D/Dual_dynamic_power_management.html',
'EM64T', '/Glossary/E/Extended_Memory_64_technology_(EM64T).html',
'ENH_POWERNOW', '/Glossary/E/Enhanced_PowerNow_technology.html',
'ENH_SSTEP', '/Glossary/E/Enhanced_SpeedStep_technology.html',
'EVP_XD', '/Glossary/E/EVP_XD.html',
'FREQ', '/Glossary/C/CPU_Frequency.html',
'FSB', '/Glossary/F/Front_Side_Bus_(FSB).html',
'HTRANSPORT', '/Glossary/H/HyperTransport_technology.html',
'INDEP_DYN_CORE', '/Glossary/I/Independent_dynamic_core_technology.html',
'L1', '/Glossary/L/Level_1_cache.html',
'L2', '/Glossary/L/Level_2_cache.html',
'MIN_MAX_POWER', '/Glossary/M/Minimum_Maximum_power_dissipation.html',
'MIN_MAX_TEMP', '/Glossary/M/Minimum_Maximum_operating_temperatures.html',
'MODELN', '/Glossary/P/Processor_Model_number.html',
'SLEEP_MODE', '/Glossary/S/Sleep_state.html',
'SSPEC', '/Glossary/S/Specification_(S-Spec)_number.html',
'SSTEP', '/Glossary/S/SpeedStep_technology.html',
'STOP_GRANT_MODE', '/Glossary/S/Stop_Grant_state.html',
'TDP', '/Glossary/T/Thermal_Design_Power_(TDP).html',
'VCORE', '/Glossary/C/Core_voltage.html'
);

var L_text2Link = new Array ();

function L_findLinks ()
{

	// Copy all data to associative array
	var len = L_allLinks.length;
	for (var i = 0; i < L_allLinks.length; i += 2)
	{
		L_text2Link[L_allLinks[i]] = L_allLinks[i + 1];
	}
	// Loop through all DIV and SPAN tags on the page
	L__processElements ('DIV');
	L__processElements ('SPAN');
	// Free some memory
	L_text2Link = null;

	if	(window.onload_gsl_saved)
		window.onload_gsl_saved();
}

function L__processElements (p_type)
{

	var array = document.getElementsByTagName(p_type);
	if	(array == null)  return;
	var cl;
	var one_el;
	var text;
	var url;
	var prefix = (L_urlPrefix == null)? '': L_urlPrefix;
	for (var i = 0; i < array.length; i++)
	{
		one_el = array[i];
		cl = one_el.className;
		if	(!cl.match(/^_link(\s+|$)/))  continue;
		text = cl.replace(/^_link\s*/, '');
		text = text.replace(/^[^\s_]\S+\s*/, '');
		if	(!text.match(/^_/))
			text = text.replace(/^\S+\s*/, '');
		if	(text)
			text = text.replace(/^_/, '');
		else
		{
			text = one_el.innerHTML.replace(/<[^>]+>/g, '');
			text = text.replace(/&nbsp;/g, '');
		}
		url = L_text2Link[text];
		if	(url == null)  continue;
		one_el.innerHTML = '<a href="' + prefix + url + '" target="_blank">' + one_el.innerHTML + '</a>';
	}
}

if	(window.onload)
    window.onload_gsl_saved = window.onload;
window.onload = L_findLinks;
