﻿
/*
<Summary>quickLinks class handles all the client side functionality required by quick links</Summary>
<Author>Sandip Mann</Author>
*/

var quickLinks = new function() {

    var jsonLocation;
    var state;
    var region;
    var capitalCity;
    var suburb;
    this.GetMainRegionsByState = function(pState) {
        /* Omniture code begin */
        ResetKPI();
        s.pageName = 'cba:find-us:branch locator:' + pState;
        s.t();
        /* Omniture code end */
        $$('.searchPaneExtraInfo .cta').fireEvent('click');
        state = pState;
        PageMethods.GetMainRegionsByState(pState, OnGetMainRegionsByState, OnError);
    }

    OnGetMainRegionsByState = function(result) {
        SearchType = EnumSearchType.Shortcuts;
        var jsonObject = JSON.decode(result);
        var outputDiv = $('DetailedLinksOutput')
        outputDiv.innerHTML = ParseTemplate('MainRegionTemplate', jsonObject);
        $("mapContainerWrap").set("class", "mapHidden");
        $("BranchDetails").setStyle("display", "none");
        $("ShowMapLocationsLink").setStyle("display", "none");
        $("accordionModule").setStyle("display", "none");
        $("GetDirections").setStyle("display", "none");
        $("Legend").setStyle("display", "");
        $("DetailedLinks").setStyle("display", "");
        ResetGetDirections();

        var html = AddBreadCrumb("State", state);
        $("BreadCrumb").innerHTML = html;
    }

    this.GetSuburbsByMainRegion = function(state, mainRegion) {
        $$('.searchPaneExtraInfo .cta').fireEvent('click');
        region = mainRegion;
        PageMethods.GetSuburbsByMainRegion(state, mainRegion, OnGetSuburbsByMainRegion, OnError);
    }

    OnGetSuburbsByMainRegion = function(result) {
        var jsonObject = JSON.decode(result);
        var outputDiv = $('DetailedLinksOutput')
        outputDiv.innerHTML = ParseTemplate('SuburbTemplate', jsonObject);
        $("ShowMapLocationsLink").setStyle("display", "none");
        $("BranchDetails").setStyle("display", "none");
        $("DetailedLinks").setStyle("display", "");

        var html = AddBreadCrumb("Region", region);
        $("BreadCrumb").innerHTML = html;
    }

    this.GetSuburbsByCapitalCity = function(pState, pCapitalCity) {
        /* Omniture code begin */
        ResetKPI();
        s.pageName = 'cba:find-us:branch locator:' + pState + ',' + pCapitalCity;
        s.t();
        /* Omniture code end */
        $$('.searchPaneExtraInfo .cta').fireEvent('click');
        state = pState;
        capitalCity = pCapitalCity;
        PageMethods.GetSuburbsByCapitalCity(state, capitalCity, OnGetSuburbsByCapitalCity, OnError);
    }

    OnGetSuburbsByCapitalCity = function(result) {
        SearchType = EnumSearchType.Shortcuts;
        var jsonObject = JSON.decode(result);
        var outputDiv = $('DetailedLinksOutput')
        outputDiv.innerHTML = ParseTemplate('SuburbTemplate', jsonObject);
        $("mapContainerWrap").set("class", "mapHidden");
        $("BranchDetails").setStyle("display", "none");
        $("ShowMapLocationsLink").setStyle("display", "none");
        $("accordionModule").setStyle("display", "none");
        $("GetDirections").setStyle("display", "none");
        $("Legend").setStyle("display", "");
        $("DetailedLinks").setStyle("display", "");
        ResetGetDirections();

        var html = AddBreadCrumb("State", state);
        //var html = AddBreadCrumb("CapitalCity", capitalCity);
        if (jsonObject != null && jsonObject.length > 0) {
            html = AddBreadCrumb("Region", jsonObject[0].MainRegion);
        }
        $("BreadCrumb").innerHTML = html;
    }

    this.GetLocationsBySuburb = function(state, mainRegion) {
        $$('.searchPaneExtraInfo .cta').fireEvent('click');
        suburb = mainRegion;
        PageMethods.GetLocationsBySuburb(state, mainRegion, OnGetLocationsBySuburb, OnError);
    }

    OnGetLocationsBySuburb = function(result) {
        var jsonObject = jsonLocation = JSON.decode(result);
        var outputDiv = $('DetailedLinksOutput')
        outputDiv.innerHTML = ParseTemplate('LocationTemplate', jsonObject);
        $("ShowMapLocationsLink").setStyle("display", "");
        $("BranchDetails").setStyle("display", "none");
        $("DetailedLinks").setStyle("display", "");

        var html = AddBreadCrumb("Suburb", suburb);
        $("BreadCrumb").innerHTML = html;
    }

    ShowLocationsOnMap = function() {
     if(typeof(geocoder) == 'undefined')
        {
            initMap();
            
        }
        ShowMapSearch();
        mapSearch.ShowResultsCentred(jsonLocation, suburb);
    }

    function OnError(error) {
        var errorString = "ExcetionType: " + error.get_exceptionType() + "\n\rMessage: " + error.get_message();
    }
}
