﻿/*
Universal tracking support
*/
var trackedActionCodes = new Array();

//main tracking init function
//all tracked pages need to be added to the following
//switch statement using the pageTrackingCode variable defined anywhere in the target page itself
function InitUniversalTracking() {

    //check if page label is defined
    if (pageTrackingCode != null) {

        switch (pageTrackingCode.toUpperCase()) {
            case "UT_TEST":
                InitTestPageTracking();
                break;

            case "UT_COMMUNITY":
                InitCommunityPageTracking();
                break;

            case "UT_CONTACTUS_NEWHOMEINFO_FORM":
                InitContactUsNewHomeInfoFormPageTracking();
                break;

            case "UT_CONTACTUS_NEWHOMEINFO":
                InitContactUsNewHomeInfoPageTracking();
                break;

            case "UT_CONTACTUS_WARRANTYREQUEST":
                InitContactUsWarrantyRequestPageTracking();
                break;

            case "UT_CONTACTUS_DESIGNSTUDIO":
                InitContactUsDesignStudioPageTracking();
                break;

            case "UT_CONTACTUS_LANDFORSALE":
                InitContactUsLandForSalePageTracking();
                break;

            case "UT_CONTACTUS_WEBSITEFEEDBACK":
                InitContactUsWebsiteFeedbackPageTracking();
                break;

            case "UT_PLAN":
                InitPlanPageTracking();
                break;

            case "UT_SPEC":
                InitInventoryPageTracking();
                break;

            case "UT_METRO":
                InitMetroPageTracking();
                break;
            case "UT_ESMART":
                IniteSmartPageTracking();
                break;
            case "UT_REALTOR_ESMART":
                InitRealtoreSmartPageTracking();
                break;
            case "UT_ESMART_CPO_OFFER":
                IniteSmartCPOPageTracking();
                break;
            case "UT_ESMART_CPO_THANKYOU":
                IniteSmartCPOTYPageTracking();
                break;
            case "UT_CPO_METROLANDING":
                InitMetroLandingPageTracking();
                break;
            case "UT_CPO_METROLANDING_THANKYOU":
                InitMetroLandingPageThankYouTracking();
                break;
            case "UT_NEWNEWHOME_LANDING":
                InitNewNewHomeLandingPageTracking();
                break;
            case "UT_NEWNEWHOME_CONTACTUSOVERLAY":
                InitNewNewHomeContactUsOverlayTracking();
                break;
            case "UT_NEWNEWHOME_PAGE2":
                InitNewNewHomePage2Tracking();
                break;
            case "UT_NEWNEWHOME_THANKYOU":
                InitNewNewHomeThankYouPageTracking();
                break;
            case "UT_NEWNEWHOME_THANKYOUOVERLAY":
                InitNewNewHomeThankYouOverlayTracking();
                break;
            case "UT_KEYTOSAVINGSPROMO_LANDING":
                InitKeyToSavingsPromoLandingPageTracking();
                break;
            case "UT_KEYTOSAVINGSPROMO_THANKYOU":
                InitKeyToSavingsPromoThankYouPageTracking();
                break;
            case "UT_KEYTOSAVINGSPROMO":
                InitKeyToSavingsPromoPageTracking();
                break;
            default:
                break;
        }
    }
}

/* ****************** Individual pages configuration ******************* */

//test page
function InitTestPageTracking() {
    $("#lnkDD").click(function() {
        TrackAction("Community_DDTab");
    });
}

//KeyToSavingsPromo pages
function InitKeyToSavingsPromoLandingPageTracking() {
    TrackAction("KeyToSavingsPromo_Landing", false, true);
}
function InitKeyToSavingsPromoThankYouPageTracking()
{
    TrackAction("KeyToSavingsPromo_ThankYou",false,true);
}

function InitKeyToSavingsPromoPageTracking() {
    TrackGoogleEvent("KeyToSavingsPromo", "Submit", "Lead Form");
}

//NewNewHome pages
function InitNewNewHomeLandingPageTracking() {
    TrackAction("NewNewHome_Landing", false, true);
}

function InitNewNewHomeContactUsOverlayTracking() {
    TrackAction("NewNewHome_ContactUsOverlay",false,true);
}

function InitNewNewHomePage2Tracking() {
    $("#lnkSavings").click(function() {
        TrackAction("NewNewHome_Zoning", false, true);
    });
}

function InitNewNewHomeThankYouPageTracking() {
    TrackAction("NewNewHome_ThankYou", false, true);
}

function InitNewNewHomeThankYouOverlayTracking() {
    TrackAction("NewNewHome_ThankYouOverlay", false, true);
}

//MetroLanding page
function InitMetroLandingPageTracking() {
    TrackAction("MetroLanding_CPO", false, true);
    TrackGoogleEvent("MetroLanding - CPO", "Submit", "Lead Form");
}

function InitMetroLandingPageThankYouTracking() {
    TrackAction("MetroLanding_CPO_ThankYou", false, true);
}

//eSMART CPO page
function IniteSmartCPOPageTracking() {
    TrackAction("eSmart_Zoning", false, true);
}

function IniteSmartCPOTYPageTracking() {
    TrackAction("eSmart_CPO_ThankYou", false, true);
}


//eSmart Interactive House page
function IniteSmartPageTracking() {
    $("#lnkeHouse").live("click", function() {
        TrackAction("eSmart_eHouse", false, true);
    });

    $("#submitMetro").click(function() {
        TrackAction("eSmart_Zoning", false, true);
    });
}
//eSmart Realtor Interactive House page
function InitRealtoreSmartPageTracking() {
    $("#lnkeHouse").live("click", function() {
        TrackAction("RealtoreSmart_eHouse", false, true);
    });
}
//community details page
function InitCommunityPageTracking() {

    //driving directions tab
    $("#communities_tab4").click(function() {
        TrackAction("Community_DDTab", false, true);
        TrackGoogleEvent(window.location.pathname + "/Driving Directions", "View");
    });

    //driving directions tab via the call-for-action link (RHS)
    $("#rddlink").click(function() {
        TrackAction("Community_DDTab", false, true);
        TrackGoogleEvent(window.location.pathname + "/Driving Directions", "View");
    });

    //driving directions tab via the "Get Directions" link on the overview tab (sales office info)
    $("#lnkDirections").click(function() {
        TrackAction("Community_DDTab", false, true);
        TrackGoogleEvent(window.location.pathname + "/Driving Directions", "View");
    });

    //get directions (Google route) button
    $("div#lnkGetDirections a").click(function() {
        TrackAction("Community_DDRoute", false, true);
        TrackGoogleEvent(window.location.pathname + "/Driving Directions", "Request Directions");
    });

    //local info tab
    $("#communities_tab2").click(function() {
        TrackAction("Community_LITab", false, true);
    });

    //school info tab
    $("#communities_tab3").click(function() {
        TrackAction("Community_SITab", false, true);
    });

    //community sitemap link
    $("div.mainHeaderSiteMap a").click(function() {
        TrackAction("Community_SitemapLink", false, true);
    });

    //community offer link 
    $("#lnkOffer").click(function() {
        TrackAction("Community_OfferLink", false, true);
    });

    //community metro offer link (from parent metro - banner)
    $("#lnkMetroOffer").click(function() {
        TrackAction("Community_MetroOfferLink", false, true);
    });

    //check if the community page is requested with the initial tab being the driving directions
    //and if so, track that goal right away
    if (parent.window.location.search.toUpperCase().indexOf("INITTAB=DD") > -1) {
        TrackAction("Community_DDTab", false, true);
    }

    //community financing options tab
    $("#communities_tab5").click(function() {
        TrackAction("Community_FOTab", false, true);
    });

}

//contact us - new home info request - form
function InitContactUsNewHomeInfoFormPageTracking() {
    TrackGoogleEvent("Lead", "Submit", "Lead Form");
}

//contact us - new home info request - thank you
function InitContactUsNewHomeInfoPageTracking() {
    TrackAction("ContactUs_NewHomeInfo", false, true);
}

//contact us - warranty request - thank you
function InitContactUsWarrantyRequestPageTracking() {
    TrackAction("ContactUs_WarrantyRequest", false, true);
}

//contact us - design studio info - thank you
function InitContactUsDesignStudioPageTracking() {
    TrackAction("ContactUs_DesignStudio", false, true);
}

//contact us - land for sale - thank you
function InitContactUsLandForSalePageTracking() {
    TrackAction("ContactUs_LandForSale", false, true);
}

//contact us - website feedback - thank you
function InitContactUsWebsiteFeedbackPageTracking() {
    TrackAction("ContactUs_WebsiteFeedback", false, true);
}

//plan details page
function InitPlanPageTracking() {
    //virtual tour link
    $("div.vtText a").click(function() {
        TrackAction("CommunityPlan_VirtualTour", false, true);
    });

    //offer link (inherited community offer)
    $("#lnkOffer").click(function() {
        TrackAction("CommunityPlan_OfferLink", false, true);
    });

    //metro offer banner (inherited metro offer)
    $("#lnkMetroOffer").click(function() {
        TrackAction("CommunityPlan_MetroOfferLink", false, true);
    });
}

//inventory details page
function InitInventoryPageTracking() {
    //virtual tour link
    $("div.vtText a").click(function() {
        TrackAction("CommunityInventory_VirtualTour", false, true);
    });

    //offer link (can be inventory or community)
    $("#lnkOffer").click(function() {
        TrackAction("CommunityInventory_OfferLink", false, true);
    });

    //metro offer banner (inherited metro offer)
    $("#lnkMetroOffer").click(function() {
        TrackAction("CommunityInventory_MetroOfferLink", false, true);
    });
}

//metro details page
function InitMetroPageTracking() {
    //metro offer banner
    $("#lnkOffer").click(function() {
        TrackAction("Metro_OfferLink", false, true);
    });

    //checkboxes representing home type (non-goals)
    $("#cbxHTSingle").click(function() {
        TrackGoogleEvent(window.location.pathname + "/Home Type Checkbox", "Clicked", "Single Family Homes");

    });

    $("#cbxHTTownhome").click(function() {
        TrackGoogleEvent(window.location.pathname + "/Home Type Checkbox", "Clicked", "Townhomes");

    });

    $("#cbxHTCondo").click(function() {
        TrackGoogleEvent(window.location.pathname + "/Home Type Checkbox", "Clicked", "Condos");

    });

    $("#cbxHTQuick").click(function() {
        TrackGoogleEvent(window.location.pathname + "/Home Type Checkbox", "Clicked", "Quick Move-in Homes");

    });

    $("#selectMin").change(function() {
        TrackGoogleEvent(window.location.pathname + "/Lower Price Range List", "Changed", trackingMetroName);

    });

    $("#selectMax").change(function() {
        TrackGoogleEvent(window.location.pathname + "/Upper Price Range List", "Changed", trackingMetroName);

    });

}

/* ****************** End individual pages configuration ******************* */

/* ****************** DO NOT edit below this line ******************* */

/* 
Analytics/conversion/lead/transaction tracking support 
*/

//global action tracking method via IFRAME
function TrackAction(actionCode, isDynamicAction, trackOnlyOncePerPageLoad) {

    //get reference to the tracking iframe
    var ifrTrack = document.getElementById("ifrTrack");
    if (ifrTrack == null) {
        return;
    }

    var trackUrl = "";
    var actualActionCode = actionCode;

    var rnd = Math.floor(Math.random() * 1000000);

    //check if spanish
    if (globalCurrentLangCode == "es-ES")
        actualActionCode = actualActionCode + "_Es";

    //check if action is dynamic
    if (isDynamicAction) {
        var actionInfo = actionCode.split('|');

        actualActionCode = actionInfo[0];
        var actionParams = actionInfo[1];
        trackUrl = globalTrackingUrlPrefix + actualActionCode + ".htm?r=" + rnd.toString() + "&p=" + escape(actionParams);

    } else {
        trackUrl = globalTrackingUrlPrefix + actualActionCode + ".htm?r=" + rnd.toString();
    }

    if (trackOnlyOncePerPageLoad) {
        if (IsActionTrackedOnPage(actualActionCode)) {
            return;
        }
    }

    ifrTrack.src = trackUrl;
    trackedActionCodes.push(actualActionCode);

}

//check if a given action code is already tracked on this page load
function IsActionTrackedOnPage(actionCode) {
    for (var i = 0; i < trackedActionCodes.length; i++) {
        if (trackedActionCodes[i] == actionCode) {
            return true;
        }
    }

    return false;
}

//Google Analytics action tracking with custom label
function TrackGoogleAction(pageViewLabel) {
    try {
        var pageTracker = _gat._getTracker(gaAccountId); //gaAccountId is defined in main master
        pageTracker._trackPageview(pageViewLabel);
    } catch (err) { }
}

function TrackGoogleAction_Account2(pageViewLabel) {
    try {
        var pageTracker = _gat._getTracker(gaEnAccountId2); //gaAccountId is defined in main master
        pageTracker._trackPageview(pageViewLabel);
    } catch (err) { }
}

//Google Analytics event (NOT action) tracking (NOT using goal pages)
function TrackGoogleEvent(eventCategory, eventAction, eventLabel) {
    try {
        var pageTracker = _gat._getTracker(gaAccountId); //gaAccountId is defined in main master
        pageTracker._initData();
        pageTracker._trackEvent(eventCategory, eventAction, eventLabel);
    } catch (err) { }
}