// JavaScript Document
var xml='card-config-playGolf.xml';
var RedecurrentPage="PLAY GOLF";
var loading = false;

function Init() {
    Dom.getElementsByClassName("browseMapImg");
    
    Event.addListener("tabTitle1", "click", showGGFeaturedOffers);
    Event.addListener("tabTitle2", "click", showTTFeaturedOffers);
    Event.addListener("tabTitle3", "click", showAOFeaturedOffers);
    Event.addListener("closeDescription", "click", hidePopUp);
    showSelectedTab();
}

function showSelectedTab() {
    var selectedTab = Dom.getElementsByClassName("selected", "li", "tabContainer")[0];
    if (selectedTab.id == "tabTitle1") {
        showGGFeaturedOffers();
    } else if (selectedTab.id == "tabTitle2") {
        showTTFeaturedOffers();
    } else if (selectedTab.id == "tabTitle3") {
        showAOFeaturedOffers();
    } else {
        assignOfferListListeners();
    }
}

function showGGFeaturedOffers() {
    if (loading) {
        return;
    }
    loading = true;
    // Focus the GG Offers tab
    Dom.removeClass(Dom.getElementsByClassName("tabTitle"), "selected");
    Dom.addClass("tabTitle1", "selected");    
    var state = getCurrentStateId();
    YAHOO.util.Connect.asyncRequest('GET', '/ggFeaturedOffers/' + state,
            {
                success: function(response) {
                    var container = document.getElementById("featuredOfferContainer");
                    container.innerHTML = response.responseText;
                    Dom.setStyle(container, 'display', 'block');
                    showGGOffers();
                    Event.addListener("ggFeaturedOfferLearnMore", "click", showLearMoreGGFeaturedOffer);
                }
            });
}

function showTTFeaturedOffers() {
    if (loading) {
        return;
    }
    loading = true;
    // Focus the TT Offers tab
    Dom.removeClass(Dom.getElementsByClassName("tabTitle"), "selected");
    Dom.addClass("tabTitle2", "selected");
    var state = getCurrentStateId();
    YAHOO.util.Connect.asyncRequest('GET', '/ttFeaturedOffers/' + state,
            {
                success: function(response) {
                    var container = document.getElementById("featuredOfferContainer");
                    container.innerHTML = response.responseText;
                    Dom.setStyle(container, 'display', 'block');
                    showTTOffers();
                    Event.addListener("ttFeaturedOfferLearnMore", "click", showLearMoreTTFeaturedOffer);
                }
            });
}

function showAOFeaturedOffers() {
    if (loading) {
        return;
    }
    loading = true;
    // Focus the AO Offers tab
    Dom.removeClass(Dom.getElementsByClassName("tabTitle"), "selected");
    Dom.addClass("tabTitle3", "selected");
    YAHOO.util.Connect.asyncRequest('GET', '/aoFeaturedOffers',
            {
                success: function(response) {
                    var container = document.getElementById("featuredOfferContainer");
                    container.innerHTML = response.responseText;
                    Dom.setStyle(container, 'display', 'block');
                    showAOffers();
                    Event.addListener("aoFeaturedOfferLearnMore", "click", showLearMoreAOFeaturedOffer);
                }
            });
}

function showGGOffers() {
    var container = Dom.getElementsByClassName("yui-content", "div", "tabContainer")[0];
    var contentLoading = Dom.getElementsByClassName("contentLoading", "div", "tabContainer")[0];
    Dom.setStyle(container, 'display', 'none');
    Dom.setStyle(contentLoading, 'display', 'block');
    var state = getCurrentStateId();
    YAHOO.util.Connect.asyncRequest('GET', '/getawaysOffers/' + state,
            {
                success: function(response) {
                    container.innerHTML = response.responseText;
                    if (IE6()) {
                        fixIt();
                    }
                    Dom.setStyle(contentLoading, 'display', 'none');
                    Dom.setStyle(container, 'display', 'block');
                    Dom.setStyle("ggFeaturedOffer", "visibility", "visible");
                    assignOfferListListeners();
                    loading = false;
                }
            });
}

function showTTOffers() {
    var container = Dom.getElementsByClassName("yui-content", "div", "tabContainer")[0];
    var contentLoading = Dom.getElementsByClassName("contentLoading", "div", "tabContainer")[0];
    Dom.setStyle(container, 'display', 'none');
    Dom.setStyle(contentLoading, 'display', 'block');
    var state = getCurrentStateId();
    YAHOO.util.Connect.asyncRequest('GET', '/teeTimesOffers/' + state,
            {
                success: function(response) {
                    container.innerHTML = response.responseText;
                    if (IE6()) {
                        fixIt();
                    }
                    Dom.setStyle(contentLoading, 'display', 'none');
                    Dom.setStyle(container, 'display', 'block');
                    Dom.setStyle("ttFeaturedOffer", "visibility", "visible");
                    assignOfferListListeners();
                    loading = false;
                }
            });
}

function showAOffers() {
    var container = Dom.getElementsByClassName("yui-content", "div", "tabContainer")[0];
    var contentLoading = Dom.getElementsByClassName("contentLoading", "div", "tabContainer")[0];
    Dom.setStyle(container, 'display', 'none');
    Dom.setStyle(contentLoading, 'display', 'block');
    YAHOO.util.Connect.asyncRequest('GET', '/additionalOffers',
            {
                success: function(response) {
                    container.innerHTML = response.responseText;
                    if (IE6()) {
                        fixIt();
                    }
                    Dom.setStyle(contentLoading, 'display', 'none');
                    Dom.setStyle(container, 'display', 'block');
                    Dom.setStyle("aoFeaturedOffer", "visibility", "visible");
                    assignOfferListListeners();
                    loading = false;
                }
            });
}

function assignOfferListListeners() {
    Event.addListener(Dom.getElementsByClassName("learn_more"), "click", openPopUp);
    Event.addListener(Dom.getElementsByClassName("tt_learn_more"), "click", showTTLearnMore);
    Event.addListener(Dom.getElementsByClassName("ao_learn_more"), "click", showAOLearnMore);
    Event.addListener("ggStateId", "change", ggStateDropDownChange);
    Event.addListener("ttStateId", "change", ttStateDropDownChange);
    Event.addListener("ggBackToPlayGolf", "click", doGGBackToPlayGolf);
    Event.addListener("ttBackToPlayGolf", "click", doTTBackToPlayGolf);
    Event.addListener("aoBackToPlayGolf", "click", doAOBackToPlayGolf);
}

function openPopUp(){
	var classes=new String(this.className);
	var id=classes.split(' ');


    var content = Dom.getElementsByClassName("content", "div", "ggPopUp")[0];
    var contentLoading = Dom.getElementsByClassName("contentLoading", "div", "ggPopUp")[0];
    Dom.setStyle(content, 'display', 'none');
    content.innerHTML = "";
    Dom.setStyle(contentLoading, 'display', 'block');

    showPopup(id[1]);

    var element = getParentListContainer(this);
    var state = getState(element);
    var offerName = getOfferName(element);
    var offerId = getOfferId(element);

    YAHOO.util.Connect.asyncRequest('GET', '/viewOfferPopup/' + state + "/" + offerId, {
        success: function(response) {
            content.innerHTML = response.responseText;
            Dom.setStyle(contentLoading, 'display', 'none');
            Dom.setStyle(content, 'display', 'block');
            omn_rmaction("US:GABM:Thread:08Golf:Play","Click>GAOFFER_" + getStateForTracking(state) + ">LEARNMORE>" + offerName);
        }
    });
    
}
function hidePopUp(){	
	var classes=new String(this.className);
	var id=classes.split(' ');	
	closePopup(id[0]);
}

function getParentListContainer(element) {
    return Dom.getAncestorByTagName(element, "li");
}

function getState(element) {
    return Dom.getElementsByClassName("header", "div", element)[0].getElementsByTagName("a")[0].getElementsByTagName("span")[0].innerHTML;
}

function getOfferName(element) {
    return Dom.getElementsByClassName("header", "div", element)[0].getElementsByTagName("a")[0].getElementsByTagName("span")[1].innerHTML;
}

function getOfferId(element) {
    return element.getAttribute("id");
}

function showTTLearnMore() {
    var element = getParentListContainer(this);
    var state = getState(element);
    var offerName = getOfferName(element);
    omn_rmaction("US:GABM:Thread:08Golf:Play","Click>PTTOFFER_" + getStateForTracking(state) + ">LEARNMORE>" + offerName);
}

function showAOLearnMore() {
    var element = getParentListContainer(this);
    var offerName = getOfferName(element);
    omn_rmaction("US:GABM:Thread:08Golf:Play","Click>ADDITIONALOFFER>LEARNMORE>" + offerName);
}

function ggStateDropDownChange() {
    var state = this[this.selectedIndex].value;
    if (state != "") {
        document.getElementById("currentStateId").className = state;
        showSelectedTab();
        omn_rmaction("US:GABM:Thread:08Golf:Play","Click>GAOFFER_" + getStateForTracking(state)
                + ">SRCHTXT>" + getStateForTracking(state));
    }
}

function ttStateDropDownChange() {
    var state = this[this.selectedIndex].value;
    if (state != "") {
        document.getElementById("currentStateId").className = state;
        showSelectedTab();
        omn_rmaction("US:GABM:Thread:08Golf:Play","Click>PTTOFFER_" + getStateForTracking(state)
                + ">SRCHTXT>" + getStateForTracking(state));
    }
    return false;
}

function getCurrentStateId() {
    var element = document.getElementById("currentStateId");
    if (element != null) {
        return element.className;
    }
    return "";
}

function doGGBackToPlayGolf() {
    var currentState = getCurrentStateId();
    omn_rmaction("US:GABM:Thread:08Golf:Play","Click>GAOFFER_" + getStateForTracking(currentState) + ">BACK>");
    window.location = "/playgolf";
    return true;
}

function doTTBackToPlayGolf() {
    var currentState = getCurrentStateId();
    omn_rmaction("US:GABM:Thread:08Golf:Play","Click>PTTOFFER_" + getStateForTracking(currentState) + ">BACK>");
    window.location = "/playgolf";
    return true;
}

function doAOBackToPlayGolf() {
    omn_rmaction("US:GABM:Thread:08Golf:Play","Click>ADDITIONALOFFER_ADTLOFR>BACK>");
    window.location = "/playgolf";
    return true;
}

function showLearMoreGGFeaturedOffer() {
    var data = Dom.getAncestorByClassName(this, "featuredOffer").getElementsByTagName("span");
    var state = data[0].innerHTML;
    var offerName = data[1].innerHTML;
    omn_rmaction("US:GABM:Thread:08Golf:Play","Click>GAFEATOFFER_" + getStateForTracking(state)  + ">LEARNMORE>" + offerName);
}

function showLearMoreTTFeaturedOffer() {
    var data = Dom.getAncestorByClassName(this, "featuredOffer").getElementsByTagName("span");
    var state = data[0].innerHTML;
    var offerName = data[1].innerHTML;
    omn_rmaction("US:GABM:Thread:08Golf:Play","Click>PTTFEATOFFER_" + getStateForTracking(state) + ">LEARNMORE>" + offerName);
}

function showLearMoreAOFeaturedOffer() {
    var data = Dom.getAncestorByClassName(this, "featuredOffer").getElementsByTagName("span");
    var offerName = data[1].innerHTML;
    omn_rmaction("US:GABM:Thread:08Golf:Play","Click>ADDFEATOFFER>LEARNMORE>" + offerName);
}

Event.onDOMReady(Init);