
function switchid(id){
	hideallids();
	showdiv(id);
}

function hideallids(){
	//loop through the array and hide each element by id
	for (var i=0;i<ids.length;i++){
		hidediv(ids[i]);
	}
}

function hidediv(id) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'none';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'none';
		}
		else { // IE 4
			document.all.id.style.display = 'none';
		}
	}
}

function showdiv(id) {
	//safe function to show an element with a specified id

	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'block';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'block';
		}
		else { // IE 4
			document.all.id.style.display = 'block';
		}
	}
}



String.prototype.trim = function ()
{
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function getSortName(pItem)
{
    var rSortName = '';
    var vThisItemsNodes = pItem.getElementsByTagName("li");

    for (var i = 0; i < vThisItemsNodes.length; i++)
    {
        if (vThisItemsNodes[i].getAttributeNode("class").nodeValue == 'csmsortname')
        {
            rSortName = vThisItemsNodes[i].firstChild.nodeValue;
        }

    }
    rSortName = rSortName.trim();
    return rSortName;
}


function getLiId(pItem)
{
    var rLiId;
    var vThisItemsNodes = pItem.getElementsByTagName("li");

    for (var i = 0; i < vThisItemsNodes.length; i++)
    {
        if (vThisItemsNodes[i].getAttributeNode("class").nodeValue == 'csmli')
        {
            rLiId = vThisItemsNodes[i].firstChild.nodeValue;
        }
    }
    rLiId = rLiId.trim();
    return rLiId;
}


function getDivId(pItem)
{
    var rDivId;
    var vThisItemsNodes = pItem.getElementsByTagName("li");

    for (var i = 0; i < vThisItemsNodes.length; i++)
    {
        if (vThisItemsNodes[i].getAttributeNode("class").nodeValue == 'csmdiv')
        {
            rDivId = vThisItemsNodes[i].firstChild.nodeValue;
        }
    }
    rDivId = rDivId.trim();
    return rDivId;
}


function sortSwitcherItems(a, b)
{
    var rReturnCode;
    var vImageName1 = normalizeName(getSortName(a));
    var vImageName2 = normalizeName(getSortName(b));
    var vImageType1 = getImageType(vImageName1);
    var vImageType2 = getImageType(vImageName2);

    if (vImageType1 == vImageType2)
    {
        if (vImageName1 > vImageName2)
        {
            rReturnCode = 1;
        }
        else if (vImageName1 < vImageName2)
        {
            rReturnCode = -1;
        }
        else
        {
            rReturnCode = 0;
        }
    }
    else
    {
        // photos come before graphics
        if (vImageType1 == 'p')
        {
            rReturnCode = -1;
        }
        else
        {
            rReturnCode = 1;
        }
    }
    return rReturnCode;
}


function getImageType(vImageName)
{
    var rImageType = '';
    var vIndex = vImageName.indexOf('_');

    if (vIndex > 0)
    {
        rImageType = vImageName.substring(vIndex + 1, vIndex + 2);
    }
    return rImageType;
}


function normalizeName(pName)
{
    var rName = pName.toLowerCase();
    var vExtension = rName.lastIndexOf('.');

    // remove any extensions
    if(vExtension < 0)
    {
        vEnd = rName.length;
    }
    else
    {
        vEnd = vExtension;
    }
    rName = rName.slice(0,vEnd);
    return rName;
}


function reorderImages()
{
    var vSwitcherMap = document.getElementById("switchermap");
    var vSwitcherItems = vSwitcherMap.getElementsByTagName("ul");


    var vItems = [];
    var vOrderedSwitcherItems = [];
    var vListItems = [];
    var vOrderedListItems = [];
    var vItemId;
    var vIdNodeToAdd;

    for (var i = 0; i < vSwitcherItems.length; i++)
    {
        vItems[i] = vSwitcherItems[i];
    }

    vItems.sort(sortSwitcherItems);


    var vListItems = document.getElementById("container").getElementsByTagName("li");

    var vParentNode = vListItems[0].parentNode;


    // get li elements in the order to be displayed
    for (var i = 0; i < vItems.length; i++)
    {
        vIdNodeToAdd = getLiId(vItems[i]);

        vOrderedListItems[i] = document.getElementById(vIdNodeToAdd).cloneNode(true);
    }


    while (vParentNode.hasChildNodes())
    {
        vParentNode.removeChild(vParentNode.firstChild);
    }

    for (var i = 0; i < vOrderedListItems.length; i++)
    {
        vParentNode.appendChild(vOrderedListItems[i]);
    }

    // make the first image visible
    hideallids();
    document.getElementById(getDivId(vItems[0])).style.display = 'block';
}