/***********************************************************************
 *  3M.com redesign JS for redesigned header code
 *  Copyright (c) 3M 2006. All rights reserved
 *  When compacting be sure to put back in IE hack for ie_domload.js
 ************************************************************************/
var actuatorOff = "/wps/themes/html/3M.com/images/lsnInd3.gif"; // when submenu is collapsed
var actuatorOn = "/wps/themes/html/3M.com/images/lsnInd2.gif"; // when submenu is expanded
var actuator1 = "/wps/themes/html/3M.com/images/lsnInd1.gif";
var actuatorLock = "/wps/themes/html/3M.com/images/lsnInd0.gif"; // when submenu is locked
var nav; // var for nav div
var menudone = new Array();

//Read a metatag
function readMetatagValue(tagname){
    //  Always Declare your variables
    var MetaTagList, MetaName, MetaContent, MetaTags, Success, i;
    
    // Initializiation of some variables
    MetaTags = "";
    Success = 0;
    
    if (document.all) {
        MetaTagList = document.all.tags("meta");
    }
    else 
        if (document.documentElement) {
            MetaTagList = document.getElementsByTagName("meta");
        }
    var ListLength = MetaTagList.length;
    
    for (i = 0; i < ListLength; i++) {
        MetaName = MetaTagList[i].name;
        if (MetaName == tagname) {
            Success = 1;
            return "" + MetaTagList[i].content;
        }
    }
    if (Success === 0) {
        return "No Meta Tag Found";
    }
}

//Impersonation Cookie Clearing
function clearCookies(){
    //clear the LtpaToken
    document.cookie = 'LtpaToken=clear; expires=Thu, 2 Aug 2001 20:47:11 UTC; path=/; domain=.3m.com';
    
    //clear current Java Session
    document.cookie = 'WPSJSESSIONID=clear; expires=Thu, 2 Aug 2001 20:47:11 UTC; path=/;';
    
    return true;
}

//MLTA Code

function redirect(obj, pnumId, referrerId){
    MLTAstring = "http://www3.3m.com/metrics/redirect.jsp?";
    MLTAstring += "pnum=" + pnumId;
    MLTAstring += "&referrer=" + referrerId + "&target=";
    MLTAstring += encodeURIComponent(document.all[obj.sourceIndex].href);
    document.all[obj.sourceIndex].href = MLTAstring;
}

function setActuators(){
    var lis, li, childMenu, a, actuator, selected;
    lis = nav.getElementsByTagName('li');
    for (var i = 0; i < lis.length; i++) {
        li = lis[i];
        childMenu = li.getElementsByTagName('ul')[0];
        selected = (li.className.indexOf('selected') != -1) ? true : false;
        lastVisHidden = (li.className.indexOf('lastVis') != -1) ? true : false;
        if (selected || lastVisHidden) {
            parentMenu = li.parentNode;
            while (parentMenu.nodeName == 'UL' || parentMenu.nodeName == 'LI') {
                if (parentMenu.nodeName == 'UL') {
                    parentMenu.style.display = 'block';
                }
                if (parentMenu.nodeName == 'LI') {
                    parentMenu.getElementsByTagName('img')[0].src = actuatorLock;
                    parentMenu.getElementsByTagName('img')[0].style.cursor = 'default';
                    parentMenu.className += ' locked';
                }
                parentMenu = parentMenu.parentNode;
            }
        }
        if (childMenu && menudone[i] !== true) {
            actuator = document.createElement('a');
            actuator.style.position = 'absolute';
            actuator.style.left = '-13px';
            actuator.style.top = '3px';
            actuator.style.zIndex = '5';
            actuator.style.backgroundColor = 'transparent';
            actuator.style.cursor = 'pointer';
            actuator.className += ' dontshow';
            img = document.createElement('img');
            (selected || lastVisHidden) ? img.setAttribute('src', actuatorOn) : img.setAttribute('src', actuatorOff);
            actuator.appendChild(img);
            li.insertBefore(actuator, li.getElementsByTagName('a')[0]);
            li.getElementsByTagName('a')[0].style.backgroundImage = 'none';
            li.getElementsByTagName('a')[1].style.backgroundImage = 'none';
            li.style.position = 'relative';
            if (selected) {
                childMenu.style.display = 'block';
            }
            else {
                childMenu.style.display = 'none';
            }
            actuator.onclick = function(){
                var li = this.parentNode;
                if (li.className.indexOf('locked') != -1) {
                    return;
                }
                else {
                    childMenu = li.getElementsByTagName('ul')[0];
                    if (childMenu.style.display == 'block') {
                        childMenu.style.display = 'none';
                        this.getElementsByTagName('img')[0].src = actuatorOff;
                    }
                    else {
                        childMenu.style.display = 'block';
                        this.getElementsByTagName('img')[0].src = actuatorOn;
                    }
                }
            };
            //alert("lastVis=" + lastVisHidden);
            if (lastVisHidden) {
                childMenu.style.display = 'block';
            }
            menudone[i] = true;
        }
    }
}

function initMenu(){
    // quit if this function has already been called
    if (arguments.callee.done) {
        return;
    }
    
    // flag this function so we don't do the same thing twice
    arguments.callee.done = true;
    
    if (document.getElementById && document.createElement) { // W3C DOM compliant
        nav = document.getElementById('lsnwrap'); // get nav div
        if (nav) { // nav exists
            setActuators(); // create actuators to expand and collapse menus
        }
    }
    return;
}

// Initialize Menu as soon as DOM is loaded :: http://dean.edwards.name/weblog/2005/09/busted/
// for w3c browsers

if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", initMenu, null);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
 document.write("<script defer src=/wps/themes/html/3M.com/ie_domload.js><"+"/script>");
 /*@end @*/
// trap for browsers that don't support either method above
window.onload = function(){
    initMenu();
}; // parse the menu
// Tab JS for corporate tab code
IE5 = NN6 = false;
if (document.all) {
    IE5 = true;
}
else 
    if (document.getElementById) {
        NN6 = true;
    }

function showDiv(what, which, numdivs){
    var fullImage = document.getElementById("tab" + which);
    
    //	TURN OFF ALL LAYERS AND/OR TABS
    for (i = 0; i < numdivs; i++) {
        if (IE5) {
            eval("document.all." + what + i + ".style.display='none'");
        }
        if (NN6) {
            eval("document.getElementById('" + what + i + "').style.display='none'");
        }
        if (what == "table") {
            var current = document.getElementById("tab" + i);
            current.className = '';
            fullImage = document.getElementById("tab" + i);
        }
    }
    //	GO BACK THROUGH AND TURN ON THE DESIRED LAYER AND/OR TABS
    if (IE5) {
        eval("document.all." + what + which + ".style.display='block'");
    }
    if (NN6) {
        eval("document.getElementById('" + what + which + "').style.display='inline'");
    }
    
    if (what == "table") {
        var current2 = document.getElementById("tab" + which);
        current2.className = 'current';
        fullImage = document.getElementById("tab" + which);
    }
}

/* to call an individual tab do this (works on base 1 array, not base 0 like the rest of the code):
 <script type="text/JavaScript">
 if (urlHash['tabNumber']) {
 showDiv('table',urlHash['tabNumber']-1,4);
 }
 else {
 showDiv('table',0,4);
 }
 </script>
 */
/***********************************************************************
 *	3M.COM DYNAMIC HTML PROGRAMMING INTERFACE AND APPLICATION
 *	Copyright (c) 3M 2003. All rights reserved.
 *	Authored by: Spencer H. Bennett, digital@jwt
 *	Sara Cowles/Elverse Jordan (rmgconnect) - Changes on 12/10/05
 *	Added isOver flag (line 17) to eliminate JavaScript errors produced when a user moused out of navigation
 *	image before mousing in (on initial load).
 *	Flag set in gsnOver, checked in gsnOut.
 *	Problems in Firefox noted - commented out superfluous lines in gsnInit that seemed to solve the problem.
 ***********************************************************************/
//-- USER AGENT OBJECT
initializedGSN = false;
isOver = false;

function clsUa(){
    this.ua = navigator.userAgent.toLowerCase();
    this.mac = (this.ua.indexOf("mac") != -1);
    this.ns4 = document.layers;
    this.w3c = (document.getElementById) ? 1 : 0;
    this.ieX = (document.all) ? 1 : 0;
    this.ie5 = (this.ieX && this.w3c) ? 1 : 0;
    this.objGsn = null;
    this.arrLsn = new Array();
    this.objLsn = null;
    this.arrLsnState = new Array();
    this.intImgId = 0;
}

//-- DHTML API METHODS

function getObj(id){
    return document.getElementById(id);
}

function divVis(obj, vis){
    (vis) ? obj.style.visibility = 'visible' : obj.style.visibility = 'hidden';
}

//-- GLOBAL SITE NAVIGATION METHODS

function gsnInit(){
    if (!objUa.w3c) {
        return;
    }
    var hshGsn = document.getElementsByTagName('gsn');
    for (var i = 0; i < hshGsn.length; i++) {
        var strGsn = 'gsn' + i, objGsn = getObj(strGsn), strGsnInd = 'gsnInd' + i, objGsnInd = getObj(strGsnInd);
        objGsn.booCrnt = (objUa.ieX) ? parseInt(hshGsn[i].booCrnt) : parseInt(hshGsn[i].attributes.booCrnt.value);
        //if (objUa.ieX && !objGsn.booCrnt){
        if (objUa.ieX) {
            objGsn.firstChild.objGsnInd = objGsnInd;
            objGsn.firstChild.onmouseover = gsnOver;
            objGsn.objGsnInd = objGsnInd;
            objGsn.strUrl = '';
            objGsn.onmouseover = gsnOver;
            objGsn.onmouseout = gsnOut;
            objGsn.onclick = gsnClick;
            objGsn.objGsnInd.strPath = objGsn.firstChild;
        } //else if (!objUa.ieX){
        //objGsn.style.paddingLeft = 0 + 'px';
        //objGsn.style.paddingRight = 0 + 'px';
        //}
    }
    initializedGSN = true;
}

function gsnOver(x){

    if (initializedGSN === false) {
        return;
    }
    if (!objUa.w3c) {
        return;
    }
    if (objUa.ieX) {
        var target = window.event.toElement, divGsnInd = target.objGsnInd;
        target.style.cursor = (objUa.ieX) ? 'hand' : 'pointer';
    }
    else {
        divGsnInd = getObj('gsnInd' + x);
    }
    divVis(divGsnInd, 1);
    objUa.objGsn = divGsnInd;
    isOver = true;
}

function gsnOut(evt){
    if (initializedGSN === false) {
        return;
    }
    if (isOver === false) {
        return;
    }
    if (!objUa.w3c) {
        return;
    }
    divVis(objUa.objGsn, 0);
}

function gsnClick(){
    if (initializedGSN === false) {
        return;
    }
    if (objUa.ieX) {
        window.location.href = objUa.objGsn.strPath;
    }
}

//-- LOCAL SITE NAVIGATION METHODS

function lsnCls(){
    this.booDisplay = 0;
}

function lsnSpawn(x){
    for (var i = 0; i < x.objDiv.childNodes.length; i++) {
        var objNode = x.objDiv.childNodes[i];
        if (objNode.tagName && objNode.tagName.toLowerCase() == 'span') {
            var booDisable = 0;
            x.booChild = 1;
            x.objChild = objNode;
            x.objImg.objChild = objNode;
            x.objImg.booActive = 1;
            if (objUa.ieX) {
                x.objImg.attachEvent('onmouseover', lsnOver);
                x.objImg.attachEvent('onclick', lsnClick);
            }
            else {
                x.objImg.onmouseover = lsnOver;
                x.objImg.onclick = lsnClick;
            }
            if (objUa.arrLsn[x.intLsn].booCrnt && objUa.booExposed || x.objDiv.id == 'y' && objUa.booExposed) {
                x.objImg.booDisplay = 1;
                x.objImg.objChild.style.display = 'block';
                if (x.objDiv.id != 'y') {
                    objUa.booExposed = 0;
                }
            }
            else 
                if (x.objDiv.id == 'y' && !objUa.booExposed && !objUa.mac) {
                    x.objImg.booDisplay = 1;
                    x.objImg.objChild.style.display = 'block';
                }
            if (!objUa.arrLsn[x.intLsn].booCrnt) {
                x.objImg.src = actuatorOff;
            }
            for (var ii = 0; ii < objNode.childNodes.length; ii++) {
                var strTagName = objNode.childNodes[ii].tagName;
                if (strTagName && strTagName.toLowerCase() == 'span') {
                    objUa.intImgId++;
                    var objLsn = new lsnCls(), strImgId = 'imgLsn' + objUa.intImgId, strHtml = '<table border="0" cellpadding="0" cellspacing="0"><tr valign="top">', booCrntPgElmnt = (objNode.childNodes[ii].id == 'x' || objNode.childNodes[ii].id == 'y') ? 1 : 0;
                    strImgId += ii;
                    var arrHtml = objNode.childNodes[ii].childNodes[0].innerHTML.split('|');
                    strHtml += '<td><img id="' + strImgId + '" src="' + actuator1 + '" width="9" height="9" hspace="5" vspace="2" alt="" /></td>';
                    strHtml += '<td><a href="' + arrHtml[0] + '" class="lsn">' + arrHtml[1] + '</a></td>';
                    strHtml += '</tr></table>';
                    if (!booCrntPgElmnt) {
                        objNode.childNodes[ii].childNodes[0].innerHTML = strHtml;
                    }
                    objLsn.intLsn = x.intLsn;
                    objLsn.objDiv = objNode.childNodes[ii];
                    objLsn.objImg = (booCrntPgElmnt) ? (objNode.childNodes[ii].id == 'y') ? objNode.childNodes[ii].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0] : objNode.childNodes[ii].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0] : getObj(strImgId);
                    if (booCrntPgElmnt) {
                        objLsn.objImg.booCrntPgElmnt = 1;
                    }
                    objLsn.arrFam = new Array();
                    if (eval(x.arrFam)) {
                        objLsn.arrFam = x.arrFam;
                        objLsn.arrFam[objLsn.arrFam.length] = x;
                    }
                    else {
                        objLsn.arrFam[0] = x;
                    }
                    
                    if (objNode.childNodes[ii].id == 'y') {
                        for (var iiii = 0; iiii < objLsn.arrFam.length; iiii++) {
                            objLsn.arrFam[iiii].objImg.booActive = 0;
                        }
                    }
                    lsnSpawn(objLsn);
                }
            }
        }
    }
}

function lsnInit(){
    var hshLsn = document.getElementsByTagName('lsn');
    for (var i = 0; i < hshLsn.length; i++) {
        var objLsn = new lsnCls();
        objLsn.intLsn = i;
        objLsn.strRef = (objUa.ieX) ? hshLsn[i].lsnId : hshLsn[i].attributes.lsnId.value;
        objLsn.booCrnt = (objUa.ieX) ? parseInt(hshLsn[i].booCrnt) : parseInt(hshLsn[i].attributes.booCrnt.value);
        objLsn.objDiv = getObj(objLsn.strRef);
        objLsn.objImg = getObj('pImgLsn' + i);
        objUa.arrLsn[i] = objLsn;
        lsnSpawn(objLsn);
    }
}

function lsnOver(evt){
    if (initializedGSN === false) {
        return;
    }
    var target = (window.event) ? window.event.toElement : target = evt.target;
    objUa.objLsn = target;
    if (objUa.objLsn.booActive) {
        target.style.cursor = (objUa.ieX) ? 'hand' : 'pointer';
    }
    else {
        return;
    }
}

function lsnClick(){
    if (initializedGSN === false) {
        return;
    }
    var objLsn = objUa.objLsn;
    if (!objLsn.booActive) {
        return;
    }
    objLsn.booDisplay = (objLsn.booDisplay) ? 0 : 1;
    objLsn.objChild.style.display = (objLsn.booDisplay) ? 'block' : 'none';
    objLsn.src = (objLsn.booDisplay) ? actuatorOn : actuatorOff;
}

/*
 /*
 CSS Browser Selector v0.3.5 (Feb 05, 2010)
 Rafael Lima (http://rafael.adm.br)
 http://rafael.adm.br/css_browser_selector
 License: http://creativecommons.org/licenses/by/2.5/
 Contributors: http://rafael.adm.br/css_browser_selector#contributors
 */
function css_browser_selector(u){
    var ua = u.toLowerCase(), is = function(t){
        return ua.indexOf(t) > -1;
    }, g = 'gecko', w = 'webkit', s = 'safari', o = 'opera', h = document.documentElement, b = [(!(/opera|webtv/i.test(ua)) && /msie\s(\d)/.test(ua)) ? ('ie ie' + RegExp.$1) : is('firefox/2') ? g + ' ff2' : is('firefox/3.5') ? g + ' ff3 ff3_5' : is('firefox/3') ? g + ' ff3' : is('gecko/') ? g : is('opera') ? o + (/version\/(\d+)/.test(ua) ? ' ' + o + RegExp.$1 : (/opera(\s|\/)(\d+)/.test(ua) ? ' ' + o + RegExp.$2 : '')) : is('konqueror') ? 'konqueror' : is('chrome') ? w + ' chrome' : is('iron') ? w + ' iron' : is('applewebkit/') ? w + ' ' + s + (/version\/(\d+)/.test(ua) ? ' ' + s + RegExp.$1 : '') : is('mozilla/') ? g : '', is('j2me') ? 'mobile' : is('iphone') ? 'iphone' : is('ipod') ? 'ipod' : is('mac') ? 'mac' : is('darwin') ? 'mac' : is('webtv') ? 'webtv' : is('win') ? 'win' : is('freebsd') ? 'freebsd' : (is('x11') || is('linux')) ? 'linux' : '', 'js'];
    c = b.join(' ');
    h.className += ' ' + c;
    return c;
};
css_browser_selector(navigator.userAgent);
/*function to get variables from the URL*/
function getUrlVars(){
    var vars = [], urlHash;
    var urlHashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for (var i = 0; i < urlHashes.length; i++) {
        urlHash = urlHashes[i].split('=');
        vars.push(urlHash[0]);
        vars[urlHash[0]] = urlHash[1];
    }
    return vars;
}

var urlHash = getUrlVars();
//example of how to use: var fname = hash['firstName'];

/*code to attach hover and active for IE6 for corporate Buy Now buttons*/
function addEvent(obj, type, fn){
    if (obj.addEventListener) {
        obj.addEventListener(type, fn, false);
    }
    else 
        if (obj.attachEvent) {
            obj["e" + type + fn] = fn;
            obj[type + fn] = function(){
                obj["e" + type + fn](window.event);
            }
            obj.attachEvent("on" + type, obj[type + fn]);
        }
        else {
            obj["on" + type] = obj["e" + type + fn];
        }
}

function DoHover(){
    this.className += ' submitBtnHover';
}

function DoActive(){
    this.className += ' submitBtnActive';
}

function RestoreHover(){
    this.className = this.className.replace(/\bsubmitBtnHover\b/, '');
}

function RestoreActive(){
    this.className = this.className.replace(/\bsubmitBtnActive\b/, '');
}

function addEventsToButtons(){
    var isIE = /*@cc_on!@*/ false;
    if (isIE !== false) {
        if (document.getElementById("buyOnlineButton")) {
            addEvent(document.getElementById("buyOnlineButton"), "mouseover", DoHover);
            addEvent(document.getElementById("buyOnlineButton"), "mouseout", RestoreHover);
            addEvent(document.getElementById("buyOnlineButton"), "mousedown", DoActive);
            addEvent(document.getElementById("buyOnlineButton"), "mouseup", RestoreActive);
        }
        else {/*do nothing*/
        }
        if (document.getElementById("buyOnlineLink")) {
            addEvent(document.getElementById("buyOnlineLink"), "mouseover", DoHover);
            addEvent(document.getElementById("buyOnlineLink"), "mouseout", RestoreHover);
            addEvent(document.getElementById("buyOnlineLink"), "mousedown", DoActive);
            addEvent(document.getElementById("buyOnlineLink"), "mouseup", RestoreActive);
        }
        else {/*do nothing*/
        }
    }
}

