﻿var DESCRIPTION_BESTBUY = "Get the holiday-helping tool for the season. Click to buy Office Home and Student now at BestBuy.com.";
var DESCRIPTION_OFFICEDEPOT = "Get the holiday-helping tool for the season. Click to buy Office Home and Student now at OfficeDepot.com.";
var DESCRIPTION_STAPLES = "Get the holiday-helping tool for the season. Click to buy Office Home and Student now at Staples.com.";

function PageLoad() {
    var retailerCount = 0;
    var retailers = document.getElementsByTagName('td');
    for (index = 0; index < retailers.length; index++) {
        var retailer = retailers[index];
        if (retailer.className == 'column1' & retailerCount < 3) {
            retailerCount++;
            var description = "";
            if(retailer.innerHTML.indexOf('Best Buy') > -1){
                description = DESCRIPTION_BESTBUY;
            }
            if (retailer.innerHTML.indexOf('Office Depot') > -1) {
                description = DESCRIPTION_OFFICEDEPOT
            }
            if (retailer.innerHTML.indexOf('Staples') > -1) {
                description = DESCRIPTION_STAPLES;
            }
            
            document.getElementById('RetailerDescription' + retailerCount).innerHTML = description;
        }
    }

    var anchors = document.getElementsByTagName('a');
    for (index = 0; index < anchors.length; index++) {
        var anchor = anchors[index];
        if (anchor.href.indexOf('BuyProduct') > -1) {
            anchor.destination = anchor.href;
            anchor.href = 'javascript:void(0);';
            AddHandler(anchor, 'click', OpenDestination);
        }
    }

    var pagination = new PaginationControl();
    pagination.AddPage(document.getElementById('Product1'), document.getElementById('ProductMenuItem1'));
    pagination.AddPage(document.getElementById('Product2'), document.getElementById('ProductMenuItem2'));
    pagination.AddPage(document.getElementById('Product3'), document.getElementById('ProductMenuItem3'));
    pagination.AddPage(document.getElementById('Product4'), document.getElementById('ProductMenuItem4'));

    tracking.track('15');
}

function OpenDestination(e) {
    e = e || window.event;

    var link = e.srcElement || e.target;
    if (link.tagName == 'IMG') {
        link = link.parentNode;
    }

    var dest = 'Retailer.aspx?js=' + link.destination;
    dest = dest.replace('javascript:', "");

    var popup = window.open(dest, 'cis', 'toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
    popup.focus();
}



//*********************** Pagination Control ***************************
function PaginationControl() {
    this.m_PageList = new Array();
}

PaginationControl.prototype.AddPage = function(page, trigger) {
    var pair = new PageTriggerPair(page, trigger);
    this.m_PageList.push(pair);
    
    trigger.Page = page.id;
    AddHandler(trigger, 'mouseover', CreateDelegate(this, this.ChangePage));
}

PaginationControl.prototype.ChangePage = function(e) {
    e = e || window.event;

    var trigger = e.srcElement || e.target;
    if (trigger.className.indexOf("ProductInfoMenuItem") == -1) {
        trigger = trigger.parentNode;
    }

    for (index = 0; index < this.m_PageList.length; index++) {
        var pair = this.m_PageList[index];
        pair.m_Page.style.display = 'none';
        pair.m_Trigger.style.borderRightColor = '#CCCCCC';
        pair.m_Trigger.childNodes[0].style.color = '#666666';
    }

    trigger.style.borderRightColor = '#F1F1F1';
    trigger.childNodes[0].style.color = '#000000';
    document.getElementById(trigger.Page).style.display = 'block';
}

function PageTriggerPair(page, trigger) {
    this.m_Page = page;
    this.m_Trigger = trigger;
}



//*********************** Event Handler Creation ***************************
function AddHandler(object, eventName, handler) {
    if (object.addEventListener) { object.addEventListener(eventName, handler, false); }
    else { object.attachEvent("on" + eventName, handler); }
}

function RemoveHandler(object, eventName, handler) {
    if (object.removeEventListener) { object.removeEventListener(eventName, handler, false); }
    else { object.detachEvent("on" + eventName, handler); }
}

function CreateDelegate(object, method) {
    return (function() { return method.apply(object, arguments); })
}

