// Tree and Common -->

var overlayDisplay = null;
var prevElement = null;
var prevOverlay = null;
var treeClientId = null;
var menuClientId = null;
function onCollapse(sender, eventArgs)
{   
    leftNav.expandAll();
}
function setOverlay(destObj, srcObj)
{
    var objLeft   = srcObj.offsetLeft;
    var objTop    = srcObj.offsetTop;
    var objParent = srcObj.parentNode;
    while( objParent != null && objParent.tagName.toUpperCase() != "BODY" )
    {
        objLeft  += objParent.offsetLeft;
        objTop   += objParent.offsetTop;
        objParent = objParent.parentNode; 
    }
    if(prevElement != null && prevElement.parentNode != null)
    {
        prevElement.parentNode.className = "percent";
        prevElement.className = "overlayArrow";
    }
    if (destObj.innerHTML!='')
    {
        destObj.style.left = (objLeft - 3) + "px";
        destObj.style.top = (objTop + 16) + "px";
        destObj.className = "overlayInfo";
        srcObj.parentNode.className = "percentHover";
        srcObj.className = "overlayArrowHover";
    }
}
function setRootPos(destObj, srcObj)
{
    var objLeft   = srcObj.offsetLeft;
    var objTop    = srcObj.offsetTop;
    var objParent = srcObj.offsetParent;
    while(objParent != null && objParent.tagName.toUpperCase() != "BODY" )
    {
        objLeft  += objParent.offsetLeft;
        objTop   += objParent.offsetTop;
        objParent = objParent.offsetParent;
    }
    destObj.style.left = objLeft + "px";
    destObj.style.top = objTop + "px";
}
function setTreePos(destObj, nodeY, nodeX)
{
    destObj.style.top = nodeY + "px";
    destObj.style.left = (nodeX + 180) + "px";
    destObj.className = "percent";
}
function TreeOverlay()
{
    leftNav.expandAll();   
    var rootNode = leftNav.get_nodes();
    for(var i=0; i<rootNode.get_length(); i++)
    {
        GetNodes(rootNode.getNode(i));
    }
}
function GetNodes(currentNode)
{
    var isNodeFound = false;
    var nodeUrl = currentNode.get_navigateUrl();
    var arrUrl = "";
    var parentElement = document.getElementById("treeOverlay");
    for(var count=0; count<arrOverlay.length; count++)
    {
        //adding iAppsCM for localhost only
        var menuUrl ="/" + arrOverlay[count][1].substring(0,arrOverlay[count][1].lastIndexOf("/"));
        if(menuUrl == nodeUrl)
        {
            isNodeFound = true;
            break;
        }
    }
    if(isNodeFound)
    {
        var htmlObject = document.createElement("div");
        var insertHTML = "<div class=\"overlayArrow\" onclick=\"OverlayClick('" + arrOverlay[count][0] + "', this);\">";
        insertHTML += arrOverlay[count][3] + "%";
        insertHTML += "</div>";
        htmlObject.innerHTML = insertHTML;
        setTreePos(htmlObject, currentNode.getY(), currentNode.getX());
        parentElement.appendChild(htmlObject);   
    }
    else
    {
        var htmlObject = document.createElement("div");
        var insertHTML = "<div class=\"overlayArrow\">";
        insertHTML += "0%";
        insertHTML += "</div>";
        htmlObject.innerHTML = insertHTML;
        setTreePos(htmlObject, currentNode.getY(), currentNode.getX());
        parentElement.appendChild(htmlObject);   
    }
    var childNodes = currentNode.get_nodes();
    if(childNodes.get_length() > 0)
    {
        for(var j=0; j<childNodes.get_length(); j++)
        {
            GetNodes(childNodes.getNode(j));
        }
    }
}
function OverlayClick(objectId, overlayObject)
{
    var parentElement = document.getElementById("treeOverlay");
    if(prevElement == null)
        prevElement = overlayObject;
    if(overlayDisplay != null && overlayDisplay.innerHTML!='' )
    {
        if (parentElement.innerHTML.indexOf(overlayDisplay.innerHTML) >0 )
        {            
            parentElement.removeChild(overlayDisplay);
        }
    }
    overlayDisplay = document.createElement("div");
    var overlayInfoText = GetOverlayDetails(objectId);
    if(overlayInfoText != "")
    {
        if(prevOverlay == overlayInfoText)
        {
            prevOverlay = null;
            setOverlay(overlayDisplay,overlayObject);
            overlayDisplay = null;            
        }
        else
        {
            prevOverlay = overlayInfoText;
            overlayDisplay.innerHTML = overlayInfoText;
            parentElement.appendChild(overlayDisplay);
            setOverlay(overlayDisplay,overlayObject);
            prevElement = overlayObject;
        }
    }
    else
    {
        setOverlay(overlayDisplay,overlayObject);
        overlayDisplay = null;
        prevOverlay = null;
    }
}
function GetOverlayDetails(objectId)
{
    var htmlItems = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">";
    for(var i=0; i < arrOverlay.length; i++)
    {
        if(arrOverlay[i][0] == objectId)
        {
            htmlItems += "<tr>";
            htmlItems += "<td style=\"padding-right:10px;text-align:right;\">" + arrOverlay[i][2] + "</td>";
            htmlItems += "<td>Clicks</td>";
            htmlItems += "</tr>";
            htmlItems += "<tr>";
            htmlItems += "<td style=\"padding-right:10px;text-align:right;\">" + arrOverlay[i][3] + "%</td>";
            htmlItems += "<td>Click %</td>";
            htmlItems += "</tr>";
            if(arrOverlay[i][4] != "" && arrOverlay[i][5] != "")
            {
                var arrWatchName = arrOverlay[i][4].split(",");
                var arrWatchPercentage = arrOverlay[i][5].split(",");
                for(var j=0; j < arrWatchName.length; j++)
                {
                    htmlItems += "<tr>";
                    htmlItems += "<td style=\"padding-right:10px;text-align:right;\">" + arrWatchPercentage[j] + "%</td>";
                    htmlItems += "<td> Watch: " + arrWatchName[j] + "</td>";
                    htmlItems += "</tr>";   
                }
            }
        }
    }
    htmlItems += "</table>";
    return(htmlItems);
}


// Menu  -->
function setMenuPos(destObj, srcObj, prev, width)
{
    var objLeft   = srcObj.offsetLeft;
    var objTop    = srcObj.offsetTop;
    var objParent = srcObj.offsetParent;
    while( objParent != null && objParent.tagName.toUpperCase() != "BODY" )
    {
        objLeft  += objParent.offsetLeft;
        objTop   += objParent.offsetTop;
        objParent = objParent.offsetParent;
    }
    destObj.style.left = (objLeft + (prev + width)-10) + "px";
    destObj.style.top = (objTop + 8) + "px";
    destObj.className = "percent";
}
function MenuOverlay()
{
    if (pageState=='Overlay')
    {
        var topItems = Menu1.get_items();
        var arrMenuIds = new Array(topItems.get_length());
        var findMenuMatched = false;
        for(var j=0; j<topItems.get_length(); j++)
        {
            arrMenuIds[j] = new Array(2);
            //only for localhost
            if (topItems.getItem(j).get_navigateUrl()!=null && topItems.getItem(j).get_navigateUrl()!= 'undefined')
            {
                //for localhost put arrMenuIds[j][0] = topItems.getItem(j).get_navigateUrl().replace("/iAppsCM/", "");
                arrMenuIds[j][0] = topItems.getItem(j).get_navigateUrl().replace("/", "");
            }
            arrMenuIds[j][1] = menuClientId + "_" + j;
        }
        
        var parentElement = document.getElementById("overlay");
        setRootPos(document.getElementById("overlay"),document.getElementById(menuClientId));
        var previousWidth = 0;
        var prevObjectPosition = 0;
        for(i=0;i<arrMenuIds.length;i++)
        {
            findMenuMatched = false;
            for(j=0;j<arrOverlay.length;j++)
            {
                count = 0;
                pos = arrOverlay[j][1].indexOf("/");
                while ( pos != -1 ) {
                   count++;
                   pos = arrOverlay[j][1].indexOf("/",pos+1);
                }
                if(arrMenuIds[i][0] != "" && arrOverlay[j][1].indexOf(arrMenuIds[i][0]) > -1 && count == 1)
                {
                    prevObjectPosition = i;
                    var menuItemObject = document.getElementById(arrMenuIds[i][1]);
                    var htmlObject = document.createElement("div");
                    var insertHTML = "<div class=\"overlayArrow\" onclick=\"OverlayClick('" + arrOverlay[j][0] + "', this);\">";
                    insertHTML += arrOverlay[j][3] + "%";
                    insertHTML += "</div>";
                    htmlObject.innerHTML = insertHTML;
                    if(i>0)
                    {
                        var prevMenuItemObject = document.getElementById(arrMenuIds[prevObjectPosition][1]);
                        previousWidth += prevMenuItemObject.offsetWidth;
                    }
                    if(menuItemObject != null)
                        setMenuPos(htmlObject,document.getElementById(menuClientId), menuItemObject.offsetLeft, menuItemObject.offsetWidth);
                    parentElement.appendChild(htmlObject);
                    findMenuMatched = true;
                }
            }
            if(!findMenuMatched && arrMenuIds[i][0] != "")
            {
                prevObjectPosition = i;
                var menuItemObject = document.getElementById(arrMenuIds[i][1]);
                var htmlObject = document.createElement("div");
                var insertHTML = "<div class=\"overlayArrow\">";
                insertHTML +=  "0%";
                insertHTML += "</div>";
                htmlObject.innerHTML = insertHTML;
                if(i>0)
                {
                    var prevMenuItemObject = document.getElementById(arrMenuIds[prevObjectPosition][1]);
                    previousWidth += prevMenuItemObject.offsetWidth;
                }
                if(menuItemObject != null)
                    setMenuPos(htmlObject,document.getElementById(menuClientId), menuItemObject.offsetLeft, menuItemObject.offsetWidth);
                parentElement.appendChild(htmlObject);                
            }
        }    
    }
}



// Anchor Tags 
function AnchorOverlay()
{
    var parentElement = document.getElementById("overlay");
    var findAnchorMatched = false;
    var emptyLinks = "";
    var dummyLinks = "#";
    var currentPageLinks = window.location + "";
    var isHttps = -1;
    currentPageLinks = currentPageLinks.toLowerCase() + "#";
    if (pageState=='Overlay')
    {
        var existingAnchors = document.getElementsByTagName("a");
        for(var count=0; count<existingAnchors.length; count++)
        {
            findAnchorMatched = false;
            var currentAnchor = existingAnchors[count].href.toLowerCase();
            if(currentAnchor != emptyLinks)
            {
                if(currentAnchor.indexOf("https://") > -1)
                {
                    isHttps = 1;
                }
                currentAnchor = isHttps > -1 ? currentAnchor.replace("https://","") : currentAnchor.replace("http://","");
                currentAnchor = currentAnchor.replace("///","/");
                currentAnchor = currentAnchor.replace("//","/");
                currentAnchor = isHttps > -1 ?  "https://" + currentAnchor : "http://" + currentAnchor;
                currentAnchor = unescape(currentAnchor);
            }
            for(var j=0;j<arrOverlay.length;j++)
            {
                if(currentAnchor.indexOf(arrOverlay[j][1].toLowerCase()) > -1 && currentAnchor != emptyLinks
                     && currentAnchor != dummyLinks && currentAnchor != currentPageLinks)
                {
                    var htmlObject = document.createElement("div");
                    var insertHTML = "<div class=\"overlayArrow\" onclick=\"OverlayClick('" + arrOverlay[j][0] + "', this);\">";
                    insertHTML += arrOverlay[j][3] + "%";
                    insertHTML += "</div>";
                    htmlObject.innerHTML = insertHTML;
                    setAnchorOverlay(htmlObject, existingAnchors[count]);
                    parentElement.appendChild(htmlObject);
                    findAnchorMatched = true;
                }
            }
            if (!findAnchorMatched && currentAnchor != emptyLinks && currentAnchor != dummyLinks && currentAnchor != currentPageLinks)
            {
                var htmlObject = document.createElement("div");
                var insertHTML = "<div class=\"overlayArrow\">";
                insertHTML +=  "0%";
                insertHTML += "</div>";
                htmlObject.innerHTML = insertHTML;
                setAnchorOverlay(htmlObject, existingAnchors[count]);
                parentElement.appendChild(htmlObject);
            }
        }
    }
}
function setAnchorOverlay(destObj, srcObj)
{
    var objLeft   = srcObj.offsetLeft;
    var objTop    = srcObj.offsetTop;
    var objParent = srcObj.offsetParent;
    while(objParent != null && objParent.tagName.toUpperCase() != "BODY")
    {
        objLeft  += objParent.offsetLeft;
        objTop   += objParent.offsetTop;
        objParent = objParent.offsetParent;
    }
    destObj.style.top = objTop + "px";
    destObj.style.left = (srcObj.offsetWidth + objLeft) + "px";
    destObj.className = "percent";
}

