﻿
function ReplaceVolusionWishList() {
    var btnaddtowishlist = document.getElementsByName("btnaddtowishlist");
    if (btnaddtowishlist.length > 0) {
        btnaddtowishlist = btnaddtowishlist[0];
        var addToMrButton = document.createElement("img");
        addToMrButton.id = "addToMrButton_volusion_replace";
        addToMrButton.src = mrUserCustom.AddToMrButtonImageSrc;
        //        addToMrButton.style.left = findPos(btnaddtowishlist).left;
        //        addToMrButton.style.top = findPos(btnaddtowishlist).top;
        addToMrButton.style.cursor = "pointer";
        //        addToMrButton.style.position = "absolute";
        addToMrButton.onclick = function () {
            CreateAddToMyRegistryWidget();
        };
        btnaddtowishlist.style.visibility = "hidden";
        var parentNode = btnaddtowishlist.parentNode;
        parentNode.align = "left";
        parentNode.style.padding = "0px 0px 0px 10px";
        parentNode.appendChild(addToMrButton);
        //   document.body.appendChild(addToMrButton);
    }
    else {
        PositionVolusionWishList();
    }
}

function ReplaceAddToMrButtonWithVolusion() {
    // replace wishlist with addtomr button
    var btnaddtowishlist = document.getElementsByName("btnaddtowishlist");
    if (btnaddtowishlist.length > 0) {
        btnaddtowishlist = btnaddtowishlist[0];
        var addToMrButton = document.createElement("img");
        addToMrButton.id = "addToMrButton_volusion_replace";
        addToMrButton.src = mrUserCustom.AddToMrButtonImageSrc;
        addToMrButton.style.cursor = "pointer";
        addToMrButton.onclick = function () {
            CreateAddToMyRegistryWidget();
        };
        btnaddtowishlist.style.display = "none";
        var parentNode = btnaddtowishlist.parentNode;
        parentNode.appendChild(addToMrButton);
    }
    // hide add to registry panel
    var allDivElements = document.getElementsByTagName("div");
    var wishpot_form = null;
    for (var i = 0; i < allDivElements.length; i++) {
        if (allDivElements[i].className == "wishpot_form") {
            wishpot_form = allDivElements[i];
            break;
        }
    }
    if (wishpot_form != null) {
        wishpot_form.style.display = "none";
    }
}

function getVolusionColor() {
    var result = "";
    var allSelectBoxElements = document.getElementsByTagName("select");
    for (var i = 0; i < allSelectBoxElements.length; i++) {
        if (allSelectBoxElements[i].options[0].text.toString().toLowerCase().indexOf("color") > -1) {
            result = allSelectBoxElements[i].options[allSelectBoxElements[i].selectedIndex].text;
        }
    }
    return result;
}

function PositionVolusionWishList() {
    var addtocartbutton = document.getElementsByName("btnaddtocart")[0];
    var leftPosition = findPos(addtocartbutton).left;
    var topPosition = findPos(addtocartbutton).top;
    var addToMrButton = document.createElement("img");
    addToMrButton.id = "addToMrButton_volusion_position";
    addToMrButton.src = mrUserCustom.AddToMrButtonImageSrc;
    addToMrButton.style.left = findPos(addtocartbutton).left + "px";
    addToMrButton.style.top = findPos(addtocartbutton).top + "px";
    addToMrButton.style.marginTop = mrUserCustom.addToMrButtonTopPadding;
    addToMrButton.style.cursor = "pointer";
    addToMrButton.style.position = "absolute";
    addToMrButton.onclick = function () {
        CreateAddToMyRegistryWidget();
    };
    document.body.appendChild(addToMrButton);



}

function getVolusionPrice() {
    var resultstring = "";
    var priceArray = document.getElementsByTagName("font");
    for (var i = 0; i < priceArray.length; i++) {
        if (priceArray[i].getAttribute("class")) {
            resultstring = priceArray[i].getAttribute("class");
            if (resultstring == "pricecolor colors_productprice") {
                return getProductPriceVolusion(priceArray[i].innerHTML);
            }
        }
        else if (priceArray[i].getAttribute("className")) {
            resultstring = priceArray[i].getAttribute("className");
            if (resultstring == "pricecolor colors_productprice") {
                return getProductPriceVolusion(priceArray[i].innerHTML);
            }
        }
        else {
        }
    }
}


function findPos(obj) {
    var objectParam = obj;
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    var elementParam = objectParam;
    elementParam.left = curleft;
    elementParam.top = curtop;
    return elementParam;
}

function CreateAddToMyRegistryWidget() {
    // get lastest values again
    mrUserCustom.giftPrice = getVolusionPrice();
    mrUserCustom.color = getVolusionColor();
    // create addtoMrScript
    var domainName = 'myregistry.com';
    var documentBody = document.getElementsByTagName('body')[0];
    var mr_CreateAddToMyRegistryWidget = document.createElement('script');
    mr_CreateAddToMyRegistryWidget.id = 'mr_CreateAddToMyRegistryWidget';
    mr_CreateAddToMyRegistryWidget.type = 'text/javascript';
    mr_CreateAddToMyRegistryWidget.src = 'http://www.' + domainName + '/addgiftmr/widgetjs.aspx';
    documentBody.appendChild(mr_CreateAddToMyRegistryWidget);
}

function getProductPriceVolusion(stringToSearch) {

    var str = stringToSearch;
    var reg = /\$([\d,.]+)/g;
    var prices = [];
    var price;

    while ((price = reg.exec(str)) != null) {

        if (price.toString().search(",") != -1) {
            price = price.toString().split(",")[1];
        }

        prices.push(price);
    }
    prices.sort(SortPricesVolusion);


    var topPrice = "";
    if (prices[0]) {
        if (prices.length == 1) {
            topPrice = prices[0];
        }
        else {
            var middleprice = parseInt(prices.length / 2);
            topPrice = prices[middleprice];
        }
    }

    if ((typeof (topPrice)).toString() == "undefined") {
        topPrice = "";
    }
    return topPrice;
}

function SortPricesVolusion(a, b) {
    return (b - a);
}
