﻿//height and width of stats chart
var statsHeight;
var statsWidth = '360';
var pgName = GetPageName();

var boxHeight = 200;
var boxWidth = 330;

if(pgName == 'Term')
{
    statsHeight = '150';
}
else if (pgName == 'Domain')
{
    statsHeight = '180';
    statsWidth = '685';
    boxWidth = '335';
}
else
{
    statsHeight = '200';
}

//add statsChart Iframe
var statsIframe = document.createElement("iframe");
statsIframe.id = "statsChart";
statsIframe.name = "statsChart";
statsIframe.style.border = 0;
statsIframe.width = statsWidth;
statsIframe.height = statsHeight;
statsIframe.scrolling = "no";
statsIframe.src = BuildUrl(statsIframe, '');
var statsChartParent = document.getElementById('statsChartParent')
if (statsChartParent != null)
{
    statsChartParent.appendChild(statsIframe);
}

//initialize Organic Results iframe
var organicResultsIframe = document.createElement("iframe");
organicResultsIframe.id = "OrganicResultsIframe";
organicResultsIframe.name = "OrganicResultsIframe";
organicResultsIframe.style.border = 0;
organicResultsIframe.width = boxWidth;
organicResultsIframe.height = boxHeight;
organicResultsIframe.scrolling = "no";
organicResultsIframe.src = BuildUrl(organicResultsIframe, '');
var chartParent = document.getElementById('ctl00_LeftCol_ctl01_chartParent');
if(chartParent != null)
{
    chartParent.appendChild(organicResultsIframe);
}

var advertisementsIframe = document.createElement("iframe");
advertisementsIframe.id = "AdvertisementsIframe";
advertisementsIframe.name = "AdvertisementsIframe";
advertisementsIframe.style.border = 0;
advertisementsIframe.width = boxWidth;
advertisementsIframe.height = boxHeight;
advertisementsIframe.scrolling = "no";
advertisementsIframe.src = BuildUrl(advertisementsIframe, '');
var chartParent2 = document.getElementById('ctl00_LeftCol_ctl03_chartParent');
if(chartParent2 != null)
{
    chartParent2.appendChild(advertisementsIframe);
}

function ChangeChart(iframeId, chartName)
{
    var statsIframe = frames[iframeId];
    if(document.getElementById('isAuth'))
    {
        statsIframe.location = BuildUrl(statsIframe, chartName, iframeId);
    }
    else
    {
        //if the iframe isn't there, they must not be logged in.
        goToSubscribeOrLogin(iframeId, 'ChartView');
    }
}

function ChangeIframe(iframeId, url)
{
    var statsIframe = frames[iframeId];
    if(statsIframe != undefined)
    {
        statsIframe.location = url;
    }
    else
    {
        //if the iframe isn't there, they must not be logged in.
        goToSubscribeOrLogin(iframeId, 'ListView');
    }
}

function goToSubscribeOrLogin(iframeId, view)
{
    window.location = '/subscribeOrLogin.aspx?target=' + location.href + '&a=' + view + '_' + iframeId;
}

function BuildUrl(iframe, chartName, iframeId)
{   
    var iframeName = iframe.name;
    if(iframeName == "")
    {
        //IE work around
        iframeName = iframeId;
    }
    
    var idName = GetIdNameFromQueryString();
    var id = GetIdValueFromQueryString();
    var pageName = GetPageName();
    var path = GetPath();
    var height = iframe.height;
    var width = iframe.width;
    if(height == undefined)
    {
        //alert("height undefined");
        height = iframe.innerHeight;
        width = iframe.innerWidth;
    }
    if(height == undefined)
    {
        //alert("innerHeight undefined");
        height = iframe.clientHeight;
        width = iframe.clientWidth;
    }
    if(height == undefined)
    {
        //IE
        if(iframeName == "statsChart")
        {
            height = statsHeight;
            width = statsWidth;
        }
        else if(iframeName == "OrganicResultsIframe" || iframeName == "AdvertisementsIframe")
        {
            height = boxHeight;
            width = boxWidth;
        }
    }
    
    if(iframeName == "statsChart")
    {
        //alert("1");
        return path + "/Chart.aspx?pageName=" + pageName + "&idName=" + idName + "&chartName=" + chartName + "&id=" + id + "&height=" + height + "&width=" + width;
    }
    else if(iframeName == "OrganicResultsIframe" || iframeName == "AdvertisementsIframe")
    {
        if(chartName == "" || chartName == "DefaultList")
        {
            //alert("2");
            //return "/List.aspx?iframeName=" + iframeName + "&btnName=" + chartName + "&" + idName + "=" + id;
        }
        else if(chartName == "RankPie")
        {
            if(iframeName == "OrganicResultsIframe")
            {
                chartName = "organickeywords_rankbreakdown";
            }
            else if(iframeName == "AdvertisementsIframe")
            {
                chartName="paidkeywords_rankbreakdown";
            }            
            
            return path + "/Chart.aspx?pageName=" + pageName + "&idName=" + idName + "&chartName=" + chartName + "&id=" + id + "&height=" + height + "&width=" + width;
        }
        
    }
}

function GetPageName()
{
    var pg = document.location.toString();
    // left of querystring to make Dmoz Categories work...
    if (pg.indexOf("?") > 0)
    {
        pg = pg.substring(0, pg.indexOf("?"));
    }
    pg = pg.substring(pg.lastIndexOf("/")+1, pg.lastIndexOf("."));
    return pg;
}

function GetPath()
{
    var pth = document.location.toString();
    var firstSlash = pth.indexOf("/", 8);
    var secondSlash = pth.indexOf("/", pth.indexOf("/", 8)+1);
    var questionMark = pth.indexOf("?", 0);
    if(secondSlash == -1 || (questionMark != -1 && questionMark < secondSlash ))
    {
        return "";
    }
    
    pth = pth.substring(firstSlash, secondSlash);
    return pth;
}

function GetIdNameFromQueryString()
{
    var idName = GetFirstQueryStringParamName();
    if(idName == "r")
    {
        idName = GetSecondQueryStringParamName();
    }
    return idName;
}

function GetIdValueFromQueryString()
{
    var firstQueryStringParamName = GetFirstQueryStringParamName();

    var id = "";
    if(firstQueryStringParamName == 'r')
    {
        id = GetSecondQueryStringParamValue();
    }
    else
    {
        id = GetFirstQueryStringParamValue();
    }
        
    id = id.replace("#", "");
    return id;
}

function GetFirstQueryStringParamName()
{
    var name = document.location.toString();
    name = name.substring(name.indexOf("?", 0)+1, name.indexOf("="));
    return name;
}

function GetFirstQueryStringParamValue()
{
    var value = document.location.toString();
    value = value.substring(value.indexOf("=", 0)+1, value.length);
    return value;
}

function GetSecondQueryStringParamName()
{
    name = document.location.toString();
    name = name.substring(name.indexOf("&", 0)+1, name.indexOf("&")+2);
    return name;
}

function GetSecondQueryStringParamValue()
{
    var value = document.location.toString();
    value = value.substring(value.indexOf("&", 0)+3, value.length);
    return value;
}
