﻿function toggleCaret(caret)
{
    // check if LI is on mouse over
    if (caret.parentNode.parentNode.style.backgroundImage.match(/.*selected/)) // LI selected, 
    {
        if (caret.src.match(/.*_selected/))
            caret.src = caret.src.replace('_selected', '_hover');
        else
            caret.src = caret.src.replace('_hover', '_selected'); 
    }
    else // mouse off the whole LI
    {
        if (caret.src.match(/.*_off/))
            caret.src = caret.src.replace('_off', '_hover');
        else
            caret.src = caret.src.replace('_hover', '_off');    
    }
}

function preloadImages()
{
    if (document.images)
    {
        preload_image_object = new Image();
        // set image url
        image_url = new Array();
        image_url[0] = "";
        image_url[1] = "/Images/HorizontalNav/menu_off.png";
        image_url[2] = "/Images/HorizontalNav/menu_selected.png";
        image_url[3] = "/Images/HorizontalNav/menusmall_hover.png";
        image_url[4] = "/Images/HorizontalNav/menusmall_off.png";
        image_url[5] = "/Images/HorizontalNav/menusmall_selected.png";
        image_url[6] = "/Images/HorizontalNav/noMenusmall_hover.png";
        image_url[7] = "/Images/HorizontalNav/noMenusmall_off.png";
        image_url[8] = "/Images/HorizontalNav/noMenusmall_selected.png";
        image_url[9] = "/Images/emailMediaKit-roll.png";
        image_url[10] = "/Images/excelMediaKit-roll.png";
        image_url[11] = "/Images/printMediaKit-roll.png";
        image_url[12] = "/Images/pdfMediaKit-roll.png";
        
        var i = 0;
        for(i=0; i<=image_url.length; i++) 
            preload_image_object.src = image_url[i];
    }
}

function toggleMediaKitLinks()
{
    var element;
    
    if(this.getElementsByTagName("IMG")[0])
        element = this.getElementsByTagName("IMG")[0];
    else
        element = this;
    
    if (element.src.match(/.*-roll/))
        element.src = element.src.replace('-roll','');
    else
        element.src = element.src.replace('.png','-roll.png');
}

function updateMainContentHeight()
{
    var mainContentDiv = document.getElementById("mainContent");
    var maxOffSet = document.getElementById("ctl00_ContentPlaceHolder1Wrapper").offsetHeight;
    maxOffSet += 44;
    mainContentDiv.style['height'] = maxOffSet + 'px';
    
    // show the footer
    document.getElementById("ctl00_footer").style['display'] = 'block'
}

function setupMagList()
{
    if (location.href.toLowerCase().indexOf('/magazines/') != -1 && location.href.toLowerCase().indexOf('mid=') != -1) // part of the Magazines pages
    {
        if (document.getElementById("ctl00_pageContent_ctl00_magsList"))
        {
            var mags = document.getElementById("ctl00_pageContent_ctl00_magsList").getElementsByTagName("LI");
            var selectedMagazine;
            
            for (var i=0; i<mags.length; i++)
            {
                if (mags[i].className == 'ListedMagazine')
                {
                    mags[i].getElementsByTagName("img")[0].onclick = toggleShowSubPanel
                }
            }
            
            for (var i=0; i<mags.length; i++)
            {
                if (mags[i].className == 'ListedMagazine')
                {
                    if (mags[i].getElementsByTagName("a")[0].href.toLowerCase().indexOf(location.search) != -1)
                    {
                        selectedMagazine = mags[i];
                        break;
                    }
                }
            }
            
            var anchor = selectedMagazine.getElementsByTagName("a")[0];
            var image = selectedMagazine.getElementsByTagName("img")[0];
            var div = selectedMagazine.getElementsByTagName("div")[0];
            
            if (image.src.indexOf('right')) // display the subPanel
            {
                anchor.style['color'] = '#891E14';
                anchor.style['fontWeight'] = 'bold';
                image.src = image.src.replace('right','down');
                div.style['display'] = 'block';
                div.style['cssFloat'] = 'left';
                
                // to get height
                var linksCount = selectedMagazine.getElementsByTagName("a").length;
                
                selectedMagazine.style['height'] = (130 + (linksCount - 7) * 17).toString() + 'px';
                
                var anchors = div.getElementsByTagName("a");
                
                for (var j=0; j<anchors.length; j++)
                {
                    if (anchors[j].href.indexOf(location.href) > -1)
                    {
                        anchors[j].style['color'] = '#891E14';
                        anchors[j].style['fontWeight'] = 'bold';
                        break;
                    }
                }
            }
        }
    }
}

function toggleShowSubPanel()
{
    var targetMag = this.parentNode;
    var anchor = targetMag.getElementsByTagName("a")[0];
    var image = targetMag.getElementsByTagName("img")[0];
    var div = targetMag.getElementsByTagName("div")[0];

    // to get height
    var linksCount = targetMag.getElementsByTagName("a").length;
    
    switch (image.src.indexOf('down'))
    {
        case -1: // show the subPanel
            anchor.style['color'] = '#891E14';
            image.src = image.src.replace('right','down');
            div.style['display'] = 'block';
            div.style['cssFloat'] = 'left';
            targetMag.style['height'] = (130 + (linksCount - 7) * 17).toString() + 'px';
            break;

        default: // hide the subPanel
            anchor.style['color'] = '#858484';
            image.src = image.src.replace('down','right');
            div.style['display'] = 'none';
            div.style['cssFloat'] = 'none';
            targetMag.style['height'] = '31px';
            break;
    }
}

function fixTableBorders(Url)
{
    var addHeight = 0;
    if (location.href.indexOf(Url) != -1)
    {
        var tables = document.getElementsByTagName("TABLE");
        for (var t=0; t < tables.length; t++)
        {
            addHeight++;
            var rows = tables[t].getElementsByTagName("TR");
            var bottomCells = rows[rows.length-1].getElementsByTagName("TD");
            for (var i=0; i < bottomCells.length; i++)
            {
                bottomCells[i].style['border'] = 'none';
            }
        }
        var mainContent = document.getElementById("mainContent");
        mainContent.style['height'] = mainContent.style['height'].replace(/px/, "")*1 + addHeight*1 + 'px';
    }
}

function initAdmin()
{    
    //enableTabs();        
}

function setupRelatedArticlesSeparator()
{
    // removes the separator from the first item. i.e. remove background for first item.
    if (document.getElementById("ctl00_pageContent_relatedArticlesPanel"))
    {
        var items = document.getElementById("ctl00_pageContent_relatedArticlesPanel").getElementsByTagName("LI");
        var backgroundImageUrl = document.getElementById('btnMagazines').src.replace(/(.*)(\/.*.png)/,"$1/relatedArticlesSeparator.gif");

        for (var i=1; i<items.length; i++)
        {
            items[i].style['backgroundImage'] = 'url(' + backgroundImageUrl + ')';
        }
    }
}

function setupBreadCrumbs()
{
    var breadCrumbs = document.getElementById('ctl00_breadCrumbs').getElementsByTagName('A');
    var displayBreadCrumbs = 'none';
    var articleButtonsPanel = document.getElementById('ctl00_articleButtons');
    
    if (location.href.indexOf('/Magazines/') == -1 && location.href.indexOf('/MediaKitBuilder') == -1)
    {
        articleButtonsPanel.style['display'] = 'block';
    }
    
    if (location.href.indexOf('MediaKitBuilder') != -1 && articleButtonsPanel != null)
    {
        document.getElementById('ctl00_rssLink2').style['display'] = "none";
    }

    for (var i=0; i < breadCrumbs.length; i++)
    {
        if (i < breadCrumbs.length-1)
            breadCrumbs[i].style['borderRight'] = 'solid 1px #858484';
        
        if (breadCrumbs[i].href != '')
        {
            if(location.href.toLowerCase().indexOf(breadCrumbs[i].href.toLowerCase()) > -1)
            {
                breadCrumbs[i].style['color'] = '#924243';
                breadCrumbs[i].style['fontWeight'] = 'bold';
                displayBreadCrumbs = 'block';
            }
        }
    }
}

function showMagazinesPanel() 
{
    var panel = document.getElementById('ctl00_pnlMagLinks');
    if (panel.style["visibility"] == "visible")
        panel.style["visibility"] = "hidden";
    else
        panel.style["visibility"] = "visible";
        
    closeSubMenus(document.getElementById("hNav"));        
}

function getDate()
{
    var d8 = new Date();
    return d8.toDateString();
}

function setupMediaKitPanel()
{
    var email;
    var pdf;
    var print;
    var excel;
    
    if (document.getElementById("ctl00_pageContent_magazineHeader1_mediaKitPanel_emailMediaKit"))
        email = document.getElementById("ctl00_pageContent_magazineHeader1_mediaKitPanel_emailMediaKit");
    else if (document.getElementById("ctl00_pageContent_emailMediaKit"))
        email = document.getElementById("ctl00_pageContent_emailMediaKit");
    
    if (document.getElementById("ctl00_pageContent_magazineHeader1_mediaKitPanel_pdfMediaKit")) 
        pdf = document.getElementById("ctl00_pageContent_magazineHeader1_mediaKitPanel_pdfMediaKit");
    else if (document.getElementById("ctl00_pageContent_pdfMediaKit"))
        pdf = document.getElementById("ctl00_pageContent_pdfMediaKit");
            
    if (document.getElementById("ctl00_pageContent_magazineHeader1_mediaKitPanel_printMediaKit")) 
        print = document.getElementById("ctl00_pageContent_magazineHeader1_mediaKitPanel_printMediaKit");
    else if (document.getElementById("ctl00_pageContent_printMediaKit"))
        print = document.getElementById("ctl00_pageContent_printMediaKit");
     
    if (document.getElementById("ctl00_pageContent_magazineHeader1_mediaKitPanel_excelMediaKit")) 
        excel = document.getElementById("ctl00_pageContent_magazineHeader1_mediaKitPanel_excelMediaKit");
    else if (document.getElementById("ctl00_pageContent_excelMediaKit"))
        excel = document.getElementById("ctl00_pageContent_excelMediaKit");
    
    if (email != null)
    {
        email.onmouseover = toggleMediaKitLinks;
        email.onmouseout = toggleMediaKitLinks;
    }
    if (pdf != null)
    {
        pdf.onmouseover = toggleMediaKitLinks;
        pdf.onmouseout = toggleMediaKitLinks;
    }
    if (print != null)
    {
        print.onmouseover = toggleMediaKitLinks;
        print.onmouseout = toggleMediaKitLinks;
    }
    if (excel != null)
    {
        excel.onmouseover = toggleMediaKitLinks;
        excel.onmouseout = toggleMediaKitLinks;
    }
}

function toggleSubmenu()
{
    var div = this.parentNode.parentNode.getElementsByTagName("DIV")[0];
    
    closeSubMenus(div); // close all submenus before opening new ones.
    
    if (div)
    {
        var links = div.getElementsByTagName("A");
        if (links)
        {
            if (div.style["visibility"] == "hidden" || div.style["visibility"] == "" || div.style["visibility"] == null)
                div.style["visibility"] = "visible";
            else
                div.style["visibility"] = "hidden";
        }
    }
    var panel = document.getElementById('ctl00_pnlMagLinks');
    if (panel.style["visibility"] == "visible")
        panel.style["visibility"] = "hidden";
}

function closeSubMenus(subMenu)
{
    var divs = document.getElementById("hNav").getElementsByTagName("DIV");
    
    for (var i=0; i < divs.length; i++)
    {
        var div = divs[i];
        if (subMenu.id != null && subMenu.id != '')
        {
            if (div.id != subMenu.id)
            {
                if (div.style["visibility"] == "visible")
                    div.style["visibility"] = "hidden";
            }
        }
    }
}

function hNavRollOn()
{
    var caret = this.getElementsByTagName("IMG")[0]; // expecting only 1 caret, this won't work if more than 1 caret
    caret.src = caret.src.replace('_off','_selected');
    this.style['backgroundImage'] = 'url('+caret.src.replace(/(.*)(\/.*.png)/,"$1/menu_selected.png")+')';
}

function hNavRollOff()
{
    var caret = this.getElementsByTagName("IMG")[0]; // expecting only 1 caret, this won't work if more than 1 caret
    caret.src = caret.src.replace('_selected','_off');
    this.style['backgroundImage'] = 'url('+caret.src.replace(/(.*)(\/.*.png)/,"$1/menu_off.png")+')';
}

function setupRollovers()
{
    var imgs = document.getElementsByTagName("IMG");
    
    for (var i = 0; i < imgs.length; i++)
    {
        var img = imgs[i];

        // set current button on
        
        if (img.parentNode && img.parentNode.href && (unescape(img.parentNode.href) == unescape(location.href)))
        {
            if (img.src.indexOf('_off') != -1)
                img.src = img.src.replace('_off', '_on');
        }
        else if (img.src.match(/.*_off/))
        {        
            img.onmouseover = rollOn;
            img.onmouseout = rollOff;
        }
        
    }
}

function rollOn()
{
    this.src = this.src.replace(/_off/, '_on');
}

function rollOff()
{
    this.src = this.src.replace(/_on/, '_off');
}

function clearSearchBox(box)
{
    // clear on focus
    if (box.value.length > 0 && box.value.substr(0, 1) == '[')   
    {
        box.value = '';
    }
        
    box.style.color = '';
    
}

function addBookmark() 
{
    var title = document.title;
    var url = window.location.href;

    var isMac=(navigator.userAgent.toLowerCase().indexOf('mac')!=-1);
    var button = (isMac ? 'Command/Cmd' : 'Ctrl');

    if (window.sidebar) // firefox
    {
	    // window.sidebar.addPanel(title, url, ""); // opens in sidebar
	    alert('Please press Ctrl+D to bookmark our site');
	}
    else if(window.opera && window.print) // opera
    { 
	    var elem = document.createElement('a');
	    elem.setAttribute('href',url);
	    elem.setAttribute('title',title);
	    elem.setAttribute('rel','sidebar');
	    elem.click();
	}
	else if(window.home) // Netscape
	{ 
      alert('Please press '+ button + ' + D to bookmark our site.');
    }
    else if(!window.print || isMac) // IE5/Mac and Safari 1.0
    { 
      alert('Please press Command/Cmd + D to bookmark our site.');    
	}
    else if(document.all) // ie
    {
	    window.external.AddFavorite(url, title);
	}
	else
	{
	    alert('Please use your browser Add Bookmark feature to add us');
	}
}

function setHomePage() 
{
   var url = window.location.href;

   var isMac=(navigator.userAgent.toLowerCase().indexOf('mac')!=-1);

  if (document.all)
  {
        document.body.style.behavior = "url(#default#homepage)";
        document.body.setHomePage(url);
  }
  else if (window.home)
  {
    alert("Please drag the icon in the address bar over your home button.");
  }
  else if (isMac)
  {
    alert('Please use your browser menu Safari/Preferences/General/Set To Current Page');  
  }  
  else
  {
    alert('Sorry - only available in IE. Please use your browser menu to set us as your Home Page');
  }
}  

// usage
// var xy = getPosition('div1');
// var left = xy[0];
// var top = xy[1];

function getPosition(id)
{
    var element = document.getElementById(id);
    
    var x=0;
    var y=0;
   
    while (element.offsetParent != null)
    { 
        x += element.offsetLeft;
        y += element.offsetTop;
        element = element.offsetParent;
    }
   
    x += element.offsetLeft;
    y += element.offsetTop;
   
    var arr = new Array;
    arr[0] = x;
    arr[1] = y;
   
    return arr;
}   

function selectAllCheckBoxes(isChecked, div)
{
    var chks = document.getElementById(div).getElementsByTagName("INPUT");
    
    for(var i = 0; i < chks.length; i++)
    {
        var chk = chks[i];
        
        if (chk.type == 'checkbox')
            chk.checked = isChecked;
    }
}

function selectType(isChecked, typeClass)
{
    var chks = document.getElementsByClassName(typeClass);
    
    for (var i=0; i < chks.length; i++)
    {
        var chk = chks[i].getElementsByTagName('INPUT')[0];
        
        if (chk.type == 'checkbox')
            chk.checked = isChecked;
    }
}

function selectTitleAll(isChecked, checkbox)
{
    var chks = document.getElementById(checkbox).parentNode.parentNode.parentNode.getElementsByTagName("input");
    
    for (var i=0; i < chks.length; i++)
    {
        var chk = chks[i];
        if (chk.type == 'checkbox')
            chk.checked = isChecked;
    }
}

function toggleEmailBlock()
{
    var emailBlock = document.getElementById("emailBlock");
    var emailPdf = document.getElementById("ctl00_pageContent_emailPdf");
    var emailExcel = document.getElementById("ctl00_pageContent_emailExcel");
    
    if (emailPdf.checked == true || emailExcel.checked == true)
    {
        emailBlock.style['display'] = 'block';
    }
    else
    {
        emailBlock.style['display'] = 'none';
    }
}    

function toggleDropdown()
{
    var panel = document.getElementById('mkEmailDropdown');
    if (panel.style['display'] == 'block')
        panel.style['display'] = 'none';
    else
        panel.style['display'] = 'block';
}

function passEmailAddress()
{
    var hiddenEmailAddress = document.getElementById("ctl00_hiddenEmailAddress");
    var txtfldEmail = document.getElementById("txtfldEmail");
    
    if (txtfldEmail.value != '')
    {
        if (document.getElementById('ctl00_pageContent_txtEmail'))
            document.getElementById('ctl00_pageContent_txtEmail').value = txtfldEmail.value;
        hiddenEmailAddress.value = txtfldEmail.value;
    }
}

function clickButton(e, buttonid){

      var evt = e ? e : window.event;

      var bt = document.getElementById(buttonid);

      if (bt){
          if (evt.keyCode == 13){
                bt.click();
                return false;
          }
      }
}

function setupHNav()
{
    var lis = document.getElementById("hNav").getElementsByTagName("LI");
    
    for (var i=0; i < lis.length; i++)
    {
        var li = lis[i];
        
        if (li.id.match('liMediaKitBuilder')==null)
        {
            li.onmouseover = hNavRollOn;
            li.onmouseout = hNavRollOff;
        }
                
        var caret = li.getElementsByTagName("IMG")[0]; // expecting only 1 caret, this won't work if more than 1 caret
        if (caret.className == 'Caret Pointer')
        {
            caret.onmouseover = function() {toggleCaret(this); document.onclick='';};
            caret.onmouseout = function () {toggleCaret(this); document.onclick=function () {closeSubMenus(document.getElementById("hNav"))};};
            caret.onclick = toggleSubmenu;
        }
        var link = li.getElementsByTagName("SPAN")[0].getElementsByTagName("A")[0].pathname; //expecting only 1 link, this won't work if more than 1 link
        
        if (link != '' && li.id.match('liMediaKitBuilder') == null && location.href.match(link) != null)
        {
            li.style['backgroundImage'] = 'url('+caret.src.replace(/(.*)(\/.*.png)/,"$1/menu_selected.png")+')';
            li.onmouseover='';
            li.onmouseout='';
            caret.src = caret.src.replace('_off', '_hover');
            caret.onmouseover = '';
            caret.onmouseout = '';
        }
    }
    var btnMags = document.getElementById("btnMagazines");
    btnMags.onmouseout = function() {
        document.onclick=function(){
            closeSubMenus(document.getElementById("hNav"));
                var panel = document.getElementById('ctl00_pnlMagLinks');
                if (panel.style["visibility"] == "visible")
                    panel.style["visibility"] = "hidden";
        }
    }
    btnMags.onmouseover=function(){document.onclick=''};
}

// TODO to be removed.
function appendVersion() {
    var links = document.getElementsByTagName("a");
    var querystring = window.location.search.substring(1);
    var appendString = "";
    //get the version part
    if (querystring.indexOf("ver") != -1) {
        appendString = querystring.substr(querystring.indexOf("ver"), 6);
    }
    for (var i=0; i<links.length; i++) {
        var link = links[i];
        if (link.href.indexOf("mailto") == -1) {
            if (link.href.indexOf("?") != -1) {
                link.href += "&" + appendString;
            }
            else {
                link.href += "?" + appendString;
            }
        }
    }
}

function init()
{   
    preloadImages();
    addReflections();
    //appendVersion();
    setupBreadCrumbs();
    setupHNav();
    setupRelatedArticlesSeparator();
    setupMediaKitPanel();
    fixTableBorders('Rates.aspx');
    fixTableBorders('Specifications.aspx');
    fixTableBorders('Deadlines.aspx');
    fixTableBorders('Contacts.aspx');
    fixTableBorders('Audience.aspx');
    fixTableBorders('MediaKitBuilder.aspx')
    setupMagList();
    updateMainContentHeight();
}

window.onload = init;