var BrowserDetect = {
    init: function () {
        this.browser = this.searchString(this.dataBrowser) || 'An unknown browser';
        this.version = this.searchVersion(navigator.userAgent)
            || this.searchVersion(navigator.appVersion)
            || 'an unknown version';
        this.OS = this.searchString(this.dataOS) || 'an unknown OS';
    },
    searchString: function (data) {
        for (var i=0;i<data.length;i++)	{
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    },
    dataBrowser: [
        { 	string: navigator.userAgent,
            subString: 'OmniWeb',
            versionSearch: 'OmniWeb/',
            identity: 'OmniWeb'
        },
        {
            string: navigator.vendor,
            subString: 'Apple',
            identity: 'Safari'
        },
        {
            prop: window.opera,
            identity: 'Opera'
        },
        {
            string: navigator.vendor,
            subString: 'iCab',
            identity: 'iCab'
        },
        {
            string: navigator.vendor,
            subString: 'KDE',
            identity: 'Konqueror'
        },
        {
            string: navigator.userAgent,
            subString: 'Firefox',
            identity: 'Firefox'
        },
        {
            string: navigator.vendor,
            subString: 'Camino',
            identity: 'Camino'
        },
        {		// for newer Netscapes (6+)
            string: navigator.userAgent,
            subString: 'Netscape',
            identity: 'Netscape'
        },
        {
            string: navigator.userAgent,
            subString: 'MSIE',
            identity: 'Explorer',
            versionSearch: 'MSIE'
        },
        {
            string: navigator.userAgent,
            subString: 'Gecko',
            identity: 'Mozilla',
            versionSearch: 'rv'
        },
        { 		// for older Netscapes (4-)
            string: navigator.userAgent,
            subString: 'Mozilla',
            identity: 'Netscape',
            versionSearch: 'Mozilla'
        }
    ],
    dataOS : [
        {
            string: navigator.platform,
            subString: 'Win',
            identity: 'Windows'
        },
        {
            string: navigator.platform,
            subString: 'Mac',
            identity: 'Mac'
        },
        {
            string: navigator.platform,
            subString: 'Linux',
            identity: 'Linux'
        }
    ]

    };
    
BrowserDetect.init();

function shrmgo(id) {
    if(document.getElementById) {
        obj = document.getElementById(id);
    }
    else if(document.all) {
        obj = document.all.item(id);
    }
    else {
        obj = null;
    }
    return obj;
}

function getAbsoluteLeft(divID) {
    leftObj = shrmgo(divID);
    oLeft = leftObj.offsetLeft;
    while(leftObj.offsetParent != null) {   // cycle through all parent objects and add ""left offset"" each time to var ""oLeft""
        parentObj = leftObj.offsetParent;
        oLeft += parentObj.offsetLeft;
        leftObj = parentObj;
    }
    return oLeft;
}

function shrmscp(topItemID, subMenuID)
{
    subMenu = shrmgo(subMenuID);  
    subMenu.style.display = 'block';                                                
    topItem = shrmgo(topItemID); 
    var newLeft = (subMenu.offsetWidth - topItem.offsetWidth) * -1;                                                                                              
    if (BrowserDetect.browser != 'Explorer')
    {
       newLeft = getAbsoluteLeft(topItemID) - subMenu.offsetWidth + topItem.offsetWidth;
    }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
    subMenu.style.left = newLeft + 'px';
}

function shrmscpLeft(topItemID, subMenuID)
{
    subMenu = shrmgo(subMenuID);  
    subMenu.style.display = 'block';                                                
    topItem = shrmgo(topItemID); 
    if (BrowserDetect.browser != 'Explorer')
    {
       var newLeft = getAbsoluteLeft(topItemID);
       subMenu.style.left = newLeft + 'px';
    }
}

function shrmomo(id)
{
    shrmgo(id).style.display = 'none';
}

function shrmdesc(id, txt)
{
    document.getElementById(id).innerHTML = txt;
}
