var pb
function onLoad() {
    var imageNum = YAHOO.util.Dom.get('proImageSize').value;
    var firstView = ""
    if (imageNum != 0) {
        var displayImage = YAHOO.util.Dom.get('displayImage');
        var buyOnlineDisplayImage = YAHOO.util.Dom.get('buyOnlineDisplayImage');
        var fetchImage = YAHOO.util.Dom.get('normalImage_0');
        displayImage.src = fetchImage.value;
        buyOnlineDisplayImage.src = fetchImage.value;
        YAHOO.util.Dom.addClass('viewIcon_0', 'selected');
        firstView = fetchImage.name
    }
    for (var i = 0; i < imageNum; i++) {
        YAHOO.util.Event.addListener('viewIcon_' + i, 'click', switchImage);
    }
    YAHOO.util.Event.addListener('descriptionTab', 'click', changeContent, 'description');
    YAHOO.util.Event.addListener('technologyTab', 'click', changeContent, 'technology');
    YAHOO.util.Event.addListener('careTipsTab', 'click', changeContent, 'careTips');
    YAHOO.util.Event.addListener('printThisPage', 'click', printPage);
    YAHOO.util.Event.addListener('sizeChartLink', 'click', popUpWindow);
    var descContent = YAHOO.util.Dom.get('productDescription');
    descContent.innerHTML = YAHOO.util.Dom.get('descHidden').innerHTML
    YAHOO.util.Dom.addClass('descriptionTab', 'selected');
    pb = new ProductBillboard(firstView);
    //pb.slide(0);
    pb.zoom("btnProductImageZoom", "zoomBox");
    pb.buyOnline();
}

function popUpWindow(event) {
    var _target = YAHOO.util.Event.getTarget(event);
    
    if (!YAHOO.lang.isNull(_target) && _target.nodeName === "A")
    {
        var url = _target.getAttribute("href");
       
        //window.open (url,"popUpWindow","menubar=0,scrollbars=1,resizable=1,width=600,height=400");
        newwindow = window.open (url,"popUpWindow","menubar=0,scrollbars=0,resizable=1,width=600,height=400");
        if (window.focus) {newwindow.focus();}
        YAHOO.util.Event.preventDefault(event);
    }
}

var loader = new YAHOO.util.YUILoader({
    base: GORE.basePath + "yui/build/",
    require: ["container"],
    //    skin: {
    //        defaultSkin: "sam",
    //        overrides: {
    //            container: [""]
    //        }
    //    },
    onSuccess: onLoad
});
loader.insert();


function printPage(event) {
    window.print();
}

function switchImage(event) {
    var elTarget = YAHOO.util.Event.getTarget(event);
    var displayImage = YAHOO.util.Dom.get('displayImage');
    var buyOnlineDisplayImage = YAHOO.util.Dom.get('buyOnlineDisplayImage');
    var elArray = elTarget.id.split("_");
    var imageIndex = elArray[1]
    var imageView = ""
    if (elArray.length == 2) {
        var fetchImage = YAHOO.util.Dom.get('normalImage_' + imageIndex)
        displayImage.src = fetchImage.value;
        buyOnlineDisplayImage.src = fetchImage.value;
        imageView = fetchImage.name
    }
    var imageNum = YAHOO.util.Dom.get('proImageSize').value;
    for (var i = 0; i < imageNum; i++) {
        if (i == imageIndex) {
            YAHOO.util.Dom.replaceClass('viewIcon_' + i, '', 'selected')
        } else {
            YAHOO.util.Dom.removeClass('viewIcon_' + i, 'selected')
        }
    }
    pb.slide(imageView)
}

function changeContent(event, args) {
    var descContent = YAHOO.util.Dom.get('productDescription');
    descContent.innerHTML = "";
    if (args == 'description') {
        descContent.innerHTML = YAHOO.util.Dom.get('descHidden').innerHTML;
        YAHOO.util.Dom.replaceClass('descriptionTab', '', 'selected');
        YAHOO.util.Dom.removeClass('technologyTab', 'selected');
        YAHOO.util.Dom.removeClass('careTipsTab', 'selected');
    } else if (args == 'technology') {
        descContent.innerHTML = YAHOO.util.Dom.get('techHidden').innerHTML;
        YAHOO.util.Dom.removeClass('descriptionTab', 'selected');
        YAHOO.util.Dom.replaceClass('technologyTab', '', 'selected');
        YAHOO.util.Dom.removeClass('careTipsTab', 'selected');
    } else if (args == 'careTips') {
        descContent.innerHTML = YAHOO.util.Dom.get('careHidden').innerHTML;
        YAHOO.util.Dom.removeClass('descriptionTab', 'selected');
        YAHOO.util.Dom.removeClass('technologyTab', 'selected');
        YAHOO.util.Dom.replaceClass('careTipsTab', '', 'selected');
    } else if (args == 'buyNow') {
        descContent.innerHTML = YAHOO.util.Dom.get('buyHidden').innerHTML;
    } else if (args == 'findStore') {
        descContent.innerHTML = YAHOO.util.Dom.get('findStoreHidden').innerHTML;
    }
}

var ProductBillboard = function(index)
{
    var _index = index || 0;

    this.getIndex = function()
    {
        return _index;
    }

    this.setIndex = function(value)
    {
        _index = value;
    }
};

ProductBillboard.prototype = {

    slide: function(index)
    {
        this.setIndex(index);
    },

    zoom: function(zoomButtonId, zoomContentId)
    {
        var panel;

        var create = function()
        {
            if (!YAHOO.util.Dom.get(zoomContentId))
            {
                return new YAHOO.widget.Panel(
                        zoomContentId,
                {
                    visible: false,
                    draggable: false,
                    close: true,
                    fixedcenter: true,
                    zIndex: 3,
                    underlay: "none",
                    modal: true
                }
                        );
            }
        };

        var present = function(event)
        {
            if (YAHOO.util.Event.getTarget(event, true).id == zoomButtonId)
            {
                var imgUrl, panelContent, altText;
                var imageNum = YAHOO.util.Dom.get('proImageSize').value;
                for (var i = 0; i < imageNum; i ++) {
                    var largeImage = YAHOO.util.Dom.get("largeImage_" + i)
                    if (largeImage.name == this.getIndex()) {
                        imgUrl = largeImage.value
                        altText = YAHOO.util.Dom.get("largeImageName_" + i).value
                        break;
                    }
                }
                if (imgUrl == null) {
                    imgUrl = YAHOO.util.Dom.get("largeImage_" + "noImage").value;
                    altText = YAHOO.util.Dom.get("largeImageName_" + "noImage").value;
                }
                //imgUrl = YAHOO.util.Dom.get("largeImage_" + this.getIndex()).value;
				
				/* 
					Count Images
					IF nIMG > 1
						get elem .photoSelector
						modify anchors IDs
						remove zoom button
				*/
				
                panelContent = "<img src='" + imgUrl + "' alt='" + altText + "' />";

                if (YAHOO.lang.isUndefined(panel))
                {
                    panel = create();
                }
                panel.setHeader("");
                panel.setBody(panelContent);
                panel.setFooter("");
                panel.render(document.body);
                panel.show();
                var k = new YAHOO.util.KeyListener(document, { keys: 27 }, { fn: panel.hide,
                    scope: panel,
                    correctScope:true });
                k.enable();               
                panel.cfg.queueProperty("keylisteners", k);
                YAHOO.util.Event.preventDefault(event);
            }
            if (YAHOO.util.Event.getTarget(event, true).id === zoomContentId + "_mask")
            {
                panel.hide();
            }
            
        };

        YAHOO.util.Event.addListener(document.body, "click", present, this, true);
    },

    buyOnline: function()
    {
        var panel;

        var create = function()
        {
            if (!YAHOO.util.Dom.get("buyOnlineBox"))
            {
                return new YAHOO.widget.Panel(
                        "buyOnlineBox",
                {
                    visible: false,
                    draggable: false,
                    close: true,
                    fixedcenter: true,
                    zIndex: 3,
                    underlay: "none",
                    modal: true
                }
                        );
            }
        };

        var present = function(event)
        {
            if (YAHOO.util.Event.getTarget(event, true).id === "btnBuyOnline")
            {
                if (YAHOO.lang.isUndefined(panel))
                {
                    var panelContent = document.createDocumentFragment();
                    panelContent.appendChild(YAHOO.util.Dom.get("tab-buyOnline"));
                    panel = create();
                    panel.setHeader("");
                    panel.setBody(panelContent);
                    panel.setFooter("");
                    panel.render(document.body);
                }

                panel.show();
                var k = new YAHOO.util.KeyListener(document, { keys: 27 }, { fn: panel.hide,
                    scope: panel,
                    correctScope:true });
                k.enable();
                panel.cfg.queueProperty("keylisteners", k);

                YAHOO.util.Event.preventDefault(event);
            }
            if (YAHOO.util.Event.getTarget(event, true).id === "buyOnlineBox" + "_mask")
            {
                panel.hide();
            }
        };

        YAHOO.util.Event.addListener(document.body, "click", present, this, true);
    }

};






