/* These functions need Scripts2.js to be included */

var mouseOverElem = null;
var selected = new Array ();


function createKey (catalogID, categoryID)
{
    return catalogID+'-'+categoryID;
}
/*
    This function is installed as an JavaScript event handler for the mouse-over event in a category.
    It is installed by the <cumulus:categoryShowHideSelection> tag.
*/
function showSelector(catalogID, categoryID)
{
    var key = createKey(catalogID, categoryID);
    var elem = document.getElementById('imgID'+key);
    if (elem != null && mouseOverElem != key)
    {
        //elem.src = "../images/markerSelect3croped.gif";
		elem.src = "../images/transparent.gif";
        elem.alt = "Select more than one category to narrow the search";
        elem.title = "Select more than one category to narrow the search";
        mouseOverElem = key;
    }
}
/*
    This function is installed as an JavaScript event handler for the mouse-over event in a category.
    It is installed by the <cumulus:categoryShowHideSelection> tag.
*/
function hideSelector(catalogID, categoryID)
{
    var key = createKey(catalogID, categoryID);
    var elem = document.getElementById('imgID'+key);
    if (elem != null && mouseOverElem == key)
    {
        elem.src = "../images/transparent.gif";
        mouseOverElem = null;
    }
}

function selectCore(catalogID, categoryID, categoryName, categoryType)
{
    var key = createKey (catalogID, categoryID);
    var cat = selected["cat"+key];

    if (cat == null)
    {
        var elem = document.getElementById('nameID'+key);
        if (elem != null)
        {
            var desc = new Array (catalogID, categoryID, categoryName, categoryType);
            selected["cat"+key] = desc;
            elem.className = "selected";
            addToCategorySelection(catalogID, categoryID, categoryName, categoryType);//added to save state of selection between reloads
        }
    }
    else
    {
        selected["cat"+key] = null;
        var elem = document.getElementById('nameID'+key);
        elem.className = "deselected";
        removeFromCategorySelection(catalogID, categoryID, categoryName, categoryType);//added to save state of selection between reloads
    }
}

function select(catalogID, categoryID, categoryName, categoryType)
{
    var key = createKey (catalogID, categoryID);
    if (mouseOverElem == key)
    {
        selectCore (catalogID, categoryID, categoryName, categoryType);
    }
    var elem = document.getElementById('ahrefimgID'+key);
    elem.blur();
}

function expandCollapse(catalogID, categoryID, masterCategoryFilter)
{
    var recordView=parent.RecordViewTitle.recordView;
    //var href="CategoryView.jsp?recordView="+recordView   +"&catalogID="+'
	var href="CategoryView.jsp?recordView=SearchResult_ThumbnailView&catalogID="+
                                                   catalogID    +"&categoryID="+
                                                   categoryID   +"&masterCategoryFilter="+masterCategoryFilter
                                                   + "&ri="+Math.random()+
                                                   "#a"+catalogID+"-"+categoryID;
    window.location=href;
}
function categorySearch(catalogID, categoryID)
{
	
    var recordView=parent.RecordViewTitle.recordView;
	
    //var href="CategorySearch.jsp?recordView="+recordView   +"&catalogID="+
	// Har ändrat till ThumbnailView
	var href="CategorySearch.jsp?recordView=SearchResult_ThumbnailView&catalogID="+
                                            catalogID    +"&categoryID="+
                                            categoryID + "&ri="+Math.random();

    parent.invisibleFrame.location=href;
}

function subStringCategoryName(categoryName)
{
	return categoryName.substring(categoryName.lastIndexOf(':'),categoryName.length);
}

//########################## added to save state of selection between reloads #################
//There is a call to the LoadCookies() in the CategoryView.jsp body tag!
//There is a global array in the frameset that stores the category selections
//There is calls made to these functions from the selectCore method

function loadCategorySelectionState()
{
    for(var i=0;i<top.cookies.length;i++)
    {
        var arrParams = new Array();
        arrParams = top.cookies[i].split("_");
        selectCore(arrParams[0], arrParams[1], arrParams[2], arrParams[3]);
    }
}

function removeFromCategorySelection(catalogID, categoryID, categoryName, categoryType)
{
    var newCookies = new Array();

    for(var i=0;i<top.cookies.length;i++)
    {
        if(top.cookies[i] != (catalogID + "_" + categoryID + "_" + categoryName + "_" + categoryType))
        {
            newCookies[newCookies.length] = top.cookies[i];
        }
    }
    top.cookies = newCookies;
}

function addToCategorySelection(catalogID, categoryID, categoryName, categoryType)
{
    for(var i=0;i<top.cookies.length;i++)
    {
        if(top.cookies[i] == (catalogID + "_" + categoryID + "_" + categoryName + "_" + categoryType))
        {
            //array already contains the category
            return;
        }
    }

    top.cookies[top.cookies.length] = (catalogID + "_" + categoryID + "_" + categoryName + "_" + categoryType);
}

//########################## added to save state of selection between reloads #################

