﻿// Written: SEL Jan 2007
// Take in an array of elements and returns an array with just those containing the class name specified 
function getElementsByClassName(elementArray, NameofClass)
{
	var matchedArray = new Array();
	
	for (var i = 0; i < elementArray.length; i++)
	{
 		var pattern = new RegExp("(^| )" + NameofClass + "( |$)");

		if (pattern.test(elementArray[i].className))
		{
			matchedArray[matchedArray.length] = elementArray[i];
		}
      }
      return matchedArray;
 }

// Written: Aug 2006 (SEL)
// Show or hide an element
function elementHide(elementId)
{	
	//support legacy browsers
	if (document.all)
		el = document.all[elementId];
	else
		el  = document.getElementById(elementId);

	el.style.display = 'none';
}
function elementShow(elementId)
{	
	//support legacy browsers
	if (document.all)
		el = document.all[elementId];
	else
		el  = document.getElementById(elementId);

	el.style.display = '';
}

// HRBS 2008 (based on above) : apply a CSS class to an element
function classifyElement(elementId, cssClass)
{	
	//support legacy browsers
	if (document.all)
		el = document.all[elementId];
	else
		el  = document.getElementById(elementId);

	el.className = cssClass;
}

// HRBS 2008: choose search tab to display
function chooseTab(tab, prefix)
{
    if (tab == 'web')
    {
        elementShow(prefix + 'pnlWebResults');
        elementHide(prefix + 'pnlDocResults');
        elementHide(prefix + 'pnlDldResults');
        elementHide(prefix + 'pnlImgResults');

        classifyElement(prefix + 'WebTab', 'selectedTab');
        classifyElement(prefix + 'DocTab', 'unselectedTab');
        classifyElement(prefix + 'DldTab', 'unselectedTab');
        classifyElement(prefix + 'ImgTab', 'unselectedTab');      
    }
    else if (tab == 'doc')
    {
        elementHide(prefix + 'pnlWebResults');
        elementShow(prefix + 'pnlDocResults');
        elementHide(prefix + 'pnlDldResults');
        elementHide(prefix + 'pnlImgResults');

        classifyElement(prefix + 'WebTab', 'unselectedTab');
        classifyElement(prefix + 'DocTab', 'selectedTab');
        classifyElement(prefix + 'DldTab', 'unselectedTab');
        classifyElement(prefix + 'ImgTab', 'unselectedTab');      
    }
    else if (tab == 'dld')
    {
        elementHide(prefix + 'pnlWebResults');
        elementHide(prefix + 'pnlDocResults');
        elementShow(prefix + 'pnlDldResults');
        elementHide(prefix + 'pnlImgResults');

        classifyElement(prefix + 'WebTab', 'unselectedTab');
        classifyElement(prefix + 'DocTab', 'unselectedTab');
        classifyElement(prefix + 'DldTab', 'selectedTab');
        classifyElement(prefix + 'ImgTab', 'unselectedTab');     
    }
    else if (tab == 'img')
    {
        elementHide(prefix + 'pnlWebResults');
        elementHide(prefix + 'pnlDocResults');
        elementHide(prefix + 'pnlDldResults');
        elementShow(prefix + 'pnlImgResults');

        classifyElement(prefix + 'WebTab', 'unselectedTab');
        classifyElement(prefix + 'DocTab', 'unselectedTab');
        classifyElement(prefix + 'DldTab', 'unselectedTab');
        classifyElement(prefix + 'ImgTab', 'selectedTab');     
    }
}

// HRBS 2008: Disable hrefs in tab links (use fast JS switching instead if JS enabled)
function loseLinks()
{
    var tabLinks = getElementsByClassName(document.links, 'tabText');
    for (var i = 0; i < tabLinks.length; i++)
    {
        tabLinks[i].href = '#';
    }
}

// HRBS 2008: copy selected text to search boxes
var startSelectText;
function SearchSelection()
{
    var searchBoxes = getElementsByClassName(document.getElementsByTagName('input'), 'searchBox');
    for (var i = 0; i < searchBoxes.length; i++) {
        var target = searchBoxes[i];
        var text = '';
        if (!startSelectText)
        {startSelectText = target.value;}
        var sel;
        if (document.selection && document.selection.createRange){ /*IE*/
            sel = document.selection.createRange();
            if (sel.text){                
            text = sel.text.substring(0,48);
            }
        }
        else if (window.getSelection()){ /*Non-IE*/
        sel = window.getSelection();
        if (sel.rangeCount > 0) 
            {
            text = sel.toString().substring(0,48);
            }
        }
        if (text.length > 2){
        target.value = text;
        }
        else{
        target.value = startSelectText;
        }
    }
}

function clearSearchText(target, defaultText) {
    if (!startSelectText && target.value != '') {
        startSelectText = defaultText;
    }
    if (target.value == defaultText) {
        target.value = '';
    }
}

function setSearchText(target) {
    if (target.value == '' && startSelectText) {
        target.value = startSelectText;
    }
}
function FixLhsMenuTemp()
{
	$('#page10360 #colLeft .menuLHS').hide();
	$('#page10360 #colLeft').append('<ul class="menuLHS"><li class="menuItem menu-depth-1 live"><a href="/cmmsupport/knowledgebase/" title="Knowledgebase search">Knowledgebase search</a></li><li class="menuItem menu-depth-1 live"><a href="/cmmsupport/knowledgebase/en/cmm-product-compatibility-tables--12127" title="UCC software compatibility tables">UCC software compatibility tables</a></li></ul>');
}
//$(document).ready(FixLhsMenuTemp);
