YAHOO.namespace("au.tv");
YAHOO.au.tv.globalJS = function() {
    var YUD = YAHOO.util.Dom,
    YUE = YAHOO.util.Event,
    panelY, panelX, vpTop, modalTarget, thisImg, ssCount, ssActive, ssTnW, ssTnWmax, ssTnL, ssUl, ssTms, oldBtn;
    return {
        init: function() {
            YUD.setStyle("y7-modal-panel", "opacity", 0);
            YUD.setStyle("y7-modal-panel-content", "opacity", 0);
            var photoGroup = YUD.getElementsByClassName("y7-modal-ss-gallery", "A", "y7-cont");
            var photoZoom = YUD.getElementsByClassName("y7-modal-ss-gallery-zoom", "A", "y7-cont");
            YUE.on(photoZoom, "click", this.slideShowZoom, this, true);
            YUE.on(photoGroup, "click", this.slideShowGallery, this, true);
            prefRequest = {
                success: this.modalSuccess,
                failure: this.modalFailure,
                scope: this
            };
            YUE.on("y7-modal-panel-close", "click", this.killModal, this, true);
            ssCount = 0;
            ssActive = 0;
        },
        pageModal: function(e) {
            YUE.preventDefault(e);
            var thisBtn = YUE.getTarget(e);
            var targNode = thisBtn.nodeName;
            if (targNode == "IMG") {
                thisImg = thisBtn;
                modalTarget = thisBtn.parentNode;
            } else if (targNode == "A") {
                thisImg = null;
                modalTarget = thisBtn;
            }
            var vpHeight = YUD.getViewportHeight();
            var vpWidth = YUD.getViewportWidth();
            panelY = (vpHeight / 2) - 100;
            panelX = (vpWidth / 2);
            var y7Cont = YUD.get("y7-cont");
            var dHeight = y7Cont.offsetHeight;
            var vpTop = (document.documentElement.scrollTop ? document.documentElement.scrollTop: document.body.scrollTop);
            YUD.setStyle("y7-modal", "opacity", 0.65);
            YUD.setStyle("y7-modal", "display", "block");
            YUD.setStyle("y7-modal", "height", dHeight + "px");
            YUD.setStyle("y7-modal-panel", "top", vpTop + 150 + "px");
            YUD.setStyle("y7-modal-panel", "left", panelX + "px");
        },
        killModal: function(e) {
            var fadeAts = {
                opacity: {
                    from: 1,
                    to: 0
                }
            };
            var fadeModal = new YAHOO.util.Anim("y7-modal-panel", fadeAts, 0.5, YAHOO.util.Easing.easeOut);
            fadeKill = function() {
                YUD.setStyle("y7-modal", "opacity", 0);
                YUD.setStyle("y7-modal", "display", "none");
                YUD.setStyle("y7-modal-panel", "opacity", 0);
                YUD.setStyle("y7-modal-panel", "display", "none");
                YUD.setStyle("y7-modal-panel", "height", "100px");
                YUD.setStyle("y7-modal-panel", "width", "100px");
                YUD.setStyle("y7-modal-panel-content", "opacity", 0);
                modalTarget = null;
                thisImg = null;
                YUD.get("ss-zoom").innerHTML = "";
                YUD.get("ss-hero").innerHTML = "";
                YUD.get("ss-items").innerHTML = "";
                YUD.setStyle("ss-zoom", "display", "none");
                YUD.setStyle("ss-gallery", "display", "none");
                YUD.setStyle("ss-items", "background-image", "url(images/indicator.gif)");
                ssActive = "0";
                var ssNextPrev = YUD.getElementsByClassName("ss-arrows", "A", "ss-gallery");
                YUE.removeListener(ssNextPrev, "click", this.slideShowGalZoom);
            };
            fadeModal.onComplete.subscribe(fadeKill);
            fadeModal.animate();
        },
        slideShowZoom: function(e) {
            this.pageModal(e);
            YUD.setStyle("y7-modal-panel", "display", "block");
            YUD.setStyle("ss-zoom", "display", "block");
            var ssPic = new Image();
            ssPic.src = modalTarget.href;
            imgLoaded = function() {
                if (ssPic.complete) {
                    clearInterval(imgTimer);
                    YUD.setStyle("y7-modal-panel-content", "display", "block");
                    var ssPanelW = ssPic.width + 40;
                    var ssPanelH = ssPic.height + 100;
                    var ssLeft = panelX - (ssPanelW / 2);
                    var animatePanel = function() {
                        var pAts = {
                            opacity: {
                                from: 0,
                                to: 1
                            }
                        };
                        var animP = new YAHOO.util.Anim("y7-modal-panel-content", pAts, 0.5, YAHOO.util.Easing.easeOut);
                        animP.animate();
                    };
                    var animateWidth = function() {
                        var wAts = {
                            width: {
                                from: 100,
                                to: ssPanelW
                            },
                            left: {
                                to: ssLeft
                            }
                        };
                        var animW = new YAHOO.util.Anim("y7-modal-panel", wAts, 0.5, YAHOO.util.Easing.easeOut);
                        animW.onComplete.subscribe(animatePanel);
                        animW.animate();
                    };
                    var hAts = {
                        height: {
                            from: 100,
                            to: ssPanelH
                        }
                    };
                    var animH = new YAHOO.util.Anim("y7-modal-panel", hAts, 0.5, YAHOO.util.Easing.easeOut);
                    animH.onComplete.subscribe(animateWidth);
                    animH.animate();
                    YUD.get("y7-modal-panel-title").innerHTML = modalTarget.rel;
                    YUD.get("ss-zoom").innerHTML = "<img src='" + ssPic.src + "'>";
                    YUD.get("ss-zoom").innerHTML += thisImg.alt;
                }
            };
            var fadeAts = {
                opacity: {
                    from: 0,
                    to: 1
                }
            };
            var fadeModal = new YAHOO.util.Anim("y7-modal-panel", fadeAts, 0.5, YAHOO.util.Easing.easeOut);
            fadeModal.animate();
            imgTimer = setInterval('imgLoaded()', 1000);
        },
        slideShowGallery: function(e) {
            this.pageModal(e);
            YUD.setStyle("y7-modal-panel", "display", "block");
            YUD.setStyle("ss-gallery", "display", "block");
            var sId = modalTarget.rel;
            var sMethPhoto = "flickr.photos.getInfo&format=json&nojsoncallback=1&api_key=945bda6dec313c9bdb9ea17334b67ecb&photo_id=";
            var sMethSet = "flickr.photosets.getPhotos&format=json&nojsoncallback=1&api_key=945bda6dec313c9bdb9ea17334b67ecb&photoset_id=";
            var sUrl = "../proxy/proxy.php?yws_path=" + encodeURIComponent(sMethSet + sId);
            var ajxTrans = YAHOO.util.Connect.asyncRequest('GET', sUrl, setLoad);
            var ssLeft = panelX - 400;
            var animateHeight = function() {
                var hAts = {
                    height: {
                        from: 100,
                        to: 550
                    }
                };
                var animH = new YAHOO.util.Anim("y7-modal-panel", hAts, 0.5, YAHOO.util.Easing.easeOut);
                animH.onComplete.subscribe(animateWidth);
                animH.animate();
            };
            var animateWidth = function() {
                var wAts = {
                    width: {
                        from: 100,
                        to: 800
                    },
                    left: {
                        to: ssLeft
                    }
                };
                var animW = new YAHOO.util.Anim("y7-modal-panel", wAts, 0.5, YAHOO.util.Easing.easeOut);
                animW.onComplete.subscribe(animatePanel);
                animW.animate();
            };
            var animatePanel = function() {
                var pAts = {
                    opacity: {
                        from: 0,
                        to: 1
                    }
                };
                var animP = new YAHOO.util.Anim("y7-modal-panel-content", pAts, 0.5, YAHOO.util.Easing.easeOut);
                animP.animate();
            };
            var fadeAts = {
                opacity: {
                    from: 0,
                    to: 1
                }
            };
            var fadeModal = new YAHOO.util.Anim("y7-modal-panel", fadeAts, 0.5, YAHOO.util.Easing.easeOut);
            fadeModal.onComplete.subscribe(animateHeight);
            fadeModal.animate();
        },
        slideShowGalleyInit: function(response) {
            YUD.setStyle("y7-modal-panel-content", "display", "block");
            var setData = YAHOO.lang.JSON.parse(response.responseText);
            var setItems = setData.photoset.photo;
            ssCount = setItems.length;
            ssTnW = (parseInt(ssCount) * 77) - 616;
            ssTnWmax = -ssTnW;
            ssUl = document.createElement("UL");
            var ssLis = "";
            var ssTempAr = new Array();
            for (var i = 0,
            j = setItems.length; i < j; i++) {
                var imgUrl = "http://farm" + setItems[i].farm + ".static.flickr.com/" + setItems[i].server + "/" + setItems[i].id + "_" + setItems[i].secret;
                ssTempAr[i] = new Image();
                ssTempAr[i].src = imgUrl + "_s.jpg";
                ssTempAr[i].alt = setItems[i].title;
                ssLis += "<li><a href='" + imgUrl + ".jpg' class='ss-item' id='ss-img-" + [i] + "' title='" + setItems[i].title + "'><img src='" + ssTempAr[i].src + "' width='75' height='75' alt='" + setItems[i].title + "'></a></li>";
            }
            ssUl.className = "ss-ul clearfix";
            ssUl.innerHTML = ssLis;
            YUD.get("ss-items").appendChild(ssUl);
            var ssTmCount = 0;
            ssimgLoaded = function() {
                if (ssTmCount == ssTempAr.length) {
                    clearInterval(ssimgTimer);
                    YUD.setStyle(ssUl, "visibility", "visible");
                    YUD.setStyle("ss-items", "background-image", "none");
                } else {
                    for (var x = 0,
                    z = ssTempAr.length; x < z; x++) {
                        if (ssTempAr[x].complete) {
                            ssTmCount++;
                        } else {
                            ssTmCount = 0;
                        }
                    }
                }
            };
            ssimgTimer = setInterval('ssimgLoaded()', 1500);
            var ssFirstimg = "http://farm" + setItems[0].farm + ".static.flickr.com/" + setItems[0].server + "/" + setItems[0].id + "_" + setItems[0].secret;
            var ssHero = "<img src='" + ssFirstimg + ".jpg' alt='" + ssTempAr[0].alt + "' height='370'>";
            ssHero += "<cite>" + ssTempAr[0].alt + "</cite>";
            YUD.get("ss-hero").innerHTML = ssHero;
            YUD.addClass("ss-img-0", "on");
            oldBtn = YUD.get("ss-img-0");
            ssTms = YUD.getElementsByClassName("ss-item", "A", "ss-items");
            YUE.on(ssTms, "click", this.slideShowGalZoom, this, true);
            ssTnL = parseInt(YUD.getStyle(ssUl, "left"));
            var ssNextPrev = YUD.getElementsByClassName("ss-arrows", "A", "ss-gallery");
            YUE.on(ssNextPrev, "click", this.slideShowGalZoom, this, true);
            if (ssCount > 7) {
                var ssBtns = YUD.getElementsByClassName("ss-btn", "DIV", "y7-modal-panel-bd");
                YUE.on(ssBtns, "click", this.slideShowNav, this, true);
            }
        },
        ssReady: function() {},
        slideShowNav: function(e) {
            YUE.preventDefault(e);
            var thisBtn = YUE.getTarget(e);
            if (YUD.hasClass(thisBtn, "ss-next")) {
                if (ssTnWmax < ssTnL) {
                    updateSS = function() {
                        ssTnL = parseInt(YUD.getStyle(ssUl, "left"));
                    };
                    var lAts = {
                        left: {
                            by: -616
                        }
                    };
                    var animW = new YAHOO.util.Anim(ssUl, lAts, 0.5, YAHOO.util.Easing.easeOut);
                    animW.onComplete.subscribe(updateSS);
                    animW.animate();
                }
            } else if (YUD.hasClass(thisBtn, "ss-prev")) {
                if (ssTnL < 0) {
                    updateSS = function() {
                        ssTnL = parseInt(YUD.getStyle(ssUl, "left"));
                    };
                    var lAts = {
                        left: {
                            by: 616
                        }
                    };
                    var animW = new YAHOO.util.Anim(ssUl, lAts, 0.5, YAHOO.util.Easing.easeOut);
                    animW.onComplete.subscribe(updateSS);
                    animW.animate();
                }
            }
        },
        slideShowGalZoom: function(e) {
            YUE.preventDefault(e);
            var thisBtn = YUE.getTarget(e);
            var targNode = thisBtn.nodeName;
            if (targNode == "IMG") {
                thisBtn = thisBtn.parentNode;
            } else if (targNode == "A") {
                thisBtn = thisBtn;
            }
            if (YUD.hasClass(thisBtn, "ss-zoom-prev")) {
                if (ssActive > 0) {
                    ssActive--;
                    if (ssActive > 1) {
                        var ssPrevHref = ssActive - 1;
                        var tempPrevHref = YUD.get("ss-img-" + ssPrevHref).href;
                        YUD.get("ss-zoom-prev").href = tempPrevHref;
                    }
                    var ssNextHref = ssActive + 1;
                    var tempNextHref = YUD.get("ss-img-" + ssNextHref).href;
                    YUD.get("ss-zoom-next").href = tempNextHref;
                    thisBtn = YUD.get("ss-img-" + ssActive);
                } else if (ssActive == 0) {
                    return false;
                }
            } else if (YUD.hasClass(thisBtn, "ss-zoom-next")) {
                if (ssActive < (ssCount - 1)) {
                    ssActive++;
                    var ssPrevHref = ssActive - 1;
                    var tempPrevHref = YUD.get("ss-img-" + ssPrevHref).href;
                    YUD.get("ss-zoom-prev").href = tempPrevHref;
                    if (ssActive < (ssCount - 1)) {
                        var ssNextHref = ssActive + 1;
                        var tempNextHref = YUD.get("ss-img-" + ssNextHref).href;
                        YUD.get("ss-zoom-next").href = tempNextHref;
                    } //console.log(tempHref)
                    thisBtn = YUD.get("ss-img-" + ssActive);
                } else if (ssActive == (ssCount - 1)) {
                    return false;
                }
            }
            YUD.get("ss-hero").innerHTML = '';
            var sszPic = new Image();
            sszPic.src = thisBtn.href;
            sszPic.alt = thisBtn.title;
            var imgId = new Array();
            imgId = thisBtn.id.split("-");
            ssActive = imgId[2];
            var ssHero = "<img src='" + sszPic.src + "' alt='" + sszPic.alt + "' height='370'>";
            ssHero += "<cite>" + sszPic.alt + "</cite>";
            imgLoaded = function() {
                if (sszPic.complete) {
                    clearInterval(imgTimer);
                    YUD.get("ss-hero").innerHTML = ssHero;
                } else {
                    YUD.get("ss-hero").innerHTML = '';
                }
            };
            imgTimer = setInterval('imgLoaded()', 1000);
            if (ssActive == 0) {
                YUD.replaceClass("ss-zoom-prev", "ss-zoom-prev", "ss-zoom-prev-off");
            } else if (ssActive == (ssCount - 1)) {
                YUD.replaceClass("ss-zoom-next", "ss-zoom-next", "ss-zoom-next-off");
            } else {
                YUD.replaceClass("ss-zoom-prev", "ss-zoom-prev-off", "ss-zoom-prev");
                YUD.replaceClass("ss-zoom-next", "ss-zoom-next-off", "ss-zoom-next");
            }
            if (oldBtn == undefined) {
                YUD.addClass(thisBtn, "on");
                oldBtn = thisBtn;
            } else {
                YUD.removeClass(oldBtn, "on");
                YUD.addClass(thisBtn, "on");
                oldBtn = thisBtn;
            }
        },
        epicFail: function(res) {}
    };
} ();
YAHOO.util.Event.onContentReady("y7-cont", YAHOO.au.tv.globalJS.init, YAHOO.au.tv.globalJS, true);