﻿var currentTier = 0;
var currentElementName = '';

function SetCurrentTier(ele, tier){
    currentTier = tier;
    currentElementName = ele.id;
}

function ShowSubMenu(ele, childTier, navId, offsetX, offsetY){
    var popup = document.getElementById("Tier" + childTier);
    if (popup){
        popup.style.visibilty = 'hidden';
    } 
    
    currentTier = childTier;


    DPH.MarketingSite.PLL.Ajax.GetSubmenu(navId, ele.id, function(value, ctx, method) {
        var tierID = "Tier" + childTier;
        var menu = fnCreateElement("", tierID, "div", value, "subMenuContainer");
        menu.style.position = "absolute";
        if (getIEBrowserVersion() == 8) {
            menu.style.zIndex = "20";
            menu.style.backgroundColor = "#fff";
            menu.style.borderTop = "solid 1px #666666";
            menu.style.borderLeft = "solid 1px #666666";
            menu.style.borderRight = "solid 1px #666666";
            menu.style.cursor = "pointer";
            menu.style.opacity = 0.95;
            menu.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=95)";
        }
        if (offsetY > 0) {
            menu.style.top = FindPosY(ele.id) + ele.offsetHeight + "px";
        }
        else {
            menu.style.top = FindPosY(ele.id) + "px";
        }
        if (offsetX > 0) {
            menu.style.left = FindPosX(ele.id) + ele.offsetWidth + "px";
        }
        else {
            menu.style.left = FindPosX(ele.id) + "px";
        }
        menu.style.visibility = 'visible';
        if (document.recalc) {
            document.recalc();
        }
    }, null);
}

function HideSubMenu(parentId){
    var i = parseInt(currentTier) + 1;
    
    if (currentElementName == parentId){
        i++;
    }
    var ele = document.getElementById("Tier" + i);
        
    while(ele){
        ele.style.visibility = 'hidden';
        i++;
        ele = document.getElementById("Tier" + i);
    }
}

function SwapMenuImage(ImageId, imagePath) {
    var imageEle = document.getElementById(ImageId);
    imageEle.src = imagePath;
}

var arVersion = navigator.appVersion.split("MSIE");
var version = parseFloat(arVersion[1]);

function fixPNG(myImageId, swapImgPath) {
    if ((version >= 5.5) && (version < 7) && (document.body.filters)) {
    var myImage = document.getElementById(myImageId);
    var par = myImage.parentNode;
    var imgID = (myImage.id) ? "id='" + myImage.id + "' " : "";
    var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : "";
    var imgTitle = (myImage.title) ? "title='" + myImage.title + "' " : "title='" + myImage.alt + "' ";
    var imgStyle = "display:inline-block;" + myImage.style.cssText;
    var strNewHTML = "<span " + imgID + imgClass + imgTitle + "onmouseover='" + par.onmouseover + "' onmouseout='" + par.onmouseout + "'" +
                     " style=\"" + "width:" + myImage.width + 
                     "px; height:" + myImage.height + "px;" +
                      imgStyle + ";"
                      + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src=\'" + swapImgPath + "\', sizingMethod='crop');\" ></span>";
    myImage.outerHTML = strNewHTML;
    }
} 

function fnCreateElement(parentID, elementID, elementTag, elementHtmlBody, elementClass){
    
    // create new element if it does not exist
    if (document.getElementById(elementID) == null){
        newEle = document.createElement(elementTag);    // create element
        newEle.setAttribute("id", elementID);           // set id
        
        // set element css class
        newEle.setAttribute((document.all ? "className":"class"), elementClass);   
          
        newEle.innerHTML = elementHtmlBody;             // set element html body stuff
        
        // attemt to add to parent container - if parent does not exists add to body
        if (parentID.length == 0 || document.getElementById(parentID) == null){       
            document.body.appendChild(newEle);        
        }else{
            document.getElementById(parentID).appendChild(newEle);
        }// if-else
        return newEle;
        
    }else{
        // get existing element and set its body
        curEle = document.getElementById(elementID);
        curEle.innerHTML = elementHtmlBody;
        return curEle;
    }// if-else
};

/*****
Title: FindPosX()
Description: Finds the x position of an element.
*****/
function FindPosX(elementId) {
    var obj = new Object();
    obj = document.getElementById(elementId);

    var curleft = 0;
    if(obj != null){
        if (obj.offsetParent)
            while(1) 
            {
              curleft += obj.offsetLeft;
              if(!obj.offsetParent)
                break;
              obj = obj.offsetParent;
            }
        else if(obj.x)
            curleft += obj.x;
    }// if
    return curleft;
};

/*****
Title: FindPosY()
Description: Finds the y position of an element.
*****/
function FindPosY(elementId) {
    var obj = new Object();
    obj = document.getElementById(elementId);
    var curtop = 0;
    if(obj != null){
        if(obj.offsetParent)
            while(1)
            {
              curtop += obj.offsetTop;
              if(!obj.offsetParent)
                break;
              obj = obj.offsetParent;
            }
        else if(obj.y)
            curtop += obj.y;
    }// if
    return curtop;
};

function getIEBrowserVersion() {
    var retVal = 0;
    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
        retVal = new Number(RegExp.$1) // capture x.x portion and store as a number
    }
    return retVal;
}