﻿/*
<Summary>this file contains all the client side common functionality and utility functions</Summary>
<Author>Sandip Mann</Author>
*/

var EnumSearchType = { "BranchsATMs": 0, "Services": 1, "BSB": 2, "Shortcuts": 3 };
var CurrentQuery = '';
var SearchType = EnumSearchType.BranchsATMs;

function ShowMapSearch() {
    m_lastMarkerIndex = -1;
    $("mapContainerWrap").removeClass("mapHidden");
    $("DetailedLinks").setStyle("display", "none");
    ShowQuickLinks();
    ShowNearestLocations();
    ResetGetDirections();
    if (directionsDisplay) {
        directionsDisplay.setMap(null);
    }
    //$$('.searchPaneExtraInfo .cta').fireEvent('click');
}

function ShowNearestLocations() {
    $("accordionModule").removeClass("accordionHidden");    
    $("GetDirections").setStyle("display", "none");
    $("Legend").setStyle("display", "none");
    $('PrintDirectionsLink').setStyle('display', 'none');
}

function ShowGetDirections() {
}

function ShowQuickLinks() {
    $("accordionModule").set("class", "accordionHidden");
    $("GetDirections").setStyle("display", "none");
    $("QuickLinks").setStyle("display", "");
    $("BranchDetails").setStyle("display", "none");
    $("Legend").setStyle("display", "");
}

function BackFromGetDirections() {
    var lastMarkerIndex = m_lastMarkerIndex;
    ShowMapSearch();
    appendMarkersToMap();
    map.setOptions({ zoom: 15 });
    markerClicked(lastMarkerIndex);
    directionClosedInfoWindow = false;    
    $$(".detailsToggler").setStyle('display', 'none');
    $$(".detailsToggler").setStyle('display', '');
}

function PrintBranchDetails(lat, lng, id, hb, at) {
    var queryString = "?lat=" + lat + "&lng=" + lng + "&id=" + id + "&hb=" + hb + "&at=" + at;
    //window.open('PrintBranchDetails.aspx' + queryString, 'PrintBranchDetailsPage', 'location=0,menubar=0,toolbar=0,scrollbars=yes');
    openWindow('PrintDetails.aspx' + queryString, 'PrintDetailsPage', 760, 700);
}

function PrintDirections() {
    var queryString = "startPoint=" + CalculatedStartPoint + "&endPoint=" + CalculatedEndPoint;
    queryString = encodeURIComponent(queryString);
    openWindow('PrintDirections.aspx?' + queryString, 'PrintDirectionsPage', 760, 700);
}

function ShowStreetView(lat, lng) {
    var queryString = "?lat=" + lat +"&lng=" + lng;
    openWindow('StreetView.aspx' + queryString, 'StreetViewPage', 760, 600);
}

function SendServiceKPI(service) {
    /* Omniture code begin */
    ResetKPI();
    s.pageName = 'cba:find-us:branch locator:Branch search:' + service; 
    s.t();
    /* Omniture code end */
}

function ResetKPI() {
    s.pageName = null
    s.prop4 = null;
    s.prop11 = null;
    s.eVar11 = null;
    s.prop20 = null;
}

function ResetFields() {
    $("ctl00_PageContent_ucSearch_AreaSearch1_txtStreet").value = "Enter street name";
    $("ctl00_PageContent_ucSearch_AreaSearch1_txtSuburbOrPostCode").value = "Enter postcode or suburb";
    $("ctl00_PageContent_ucSearch_AreaSearch2_txtStreet").value = "Enter street name";
    $("ctl00_PageContent_ucSearch_AreaSearch2_txtSuburbOrPostCode").value = "Enter postcode or suburb";
    $("txtBSB").value = "";
    $("txtBSBPre").value = "06";
    ResetGetDirections();
    $("searchAdditionalInfoBranch").get('slide').show();
    $("closed").setStyle("display", "none");
    $("opened").setStyle("display", "inline");
    $('DidYouMeanPaneService').get('slide').hide();  
    $('DidYouMeanPaneBranchATM').get('slide').hide();
    $("AgriBusinessServiceErrorPane").get('slide').hide();
    $("BusinessBankerServiceErrorPane").get('slide').hide();
    $("searchAdditionalInfoService").get('slide').hide();
    //document.getElementById("NearestBankersOutput").style.display = "none";
    //$$('.searchPaneExtraInfo .cta').fireEvent('click');
}

function ResetGetDirections() {
    $("txtStreetStart").value = "Enter street name";
    $("txtSuburbStart").value = "Enter postcode or suburb";
}

//uitility functions
function ParseTemplate(templateID, data) {
    var str = $(templateID).innerHTML;
    var _tmplCache = {}
    var err = "";
    try {
        var func = _tmplCache[str];
        if (!func) {
            var strFunc =
            "var p=[],print=function(){p.push.apply(p,arguments);};" +
                        "with(obj){p.push('" +
            str.replace(/[\r\t\n]/g, " ")
               .replace(/'(?=[^#]*#>)/g, "\t")
               .split("'").join("\\'")
               .split("\t").join("'")
               .replace(/<#=(.+?)#>/g, "',$1,'")
               .split("<#").join("');")
               .split("#>").join("p.push('")
               + "');}return p.join('');";

            func = new Function("obj", strFunc);
            _tmplCache[str] = func;
        }
        return func(data);
    } catch (e) { err = e.message; }
    return "< # ERROR: " + err.toString() + " # >";
}

function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}

//Temp functions

//helper functions
function GetCheckboxListSelectedItems(listPrefix) {
    var list = "";
    var idModifier = 0;
    var checkbox = document.getElementById((listPrefix + idModifier));
    while (checkbox != null) {
        if (checkbox.checked == true && checkbox.nextSibling != null) {
            var label = checkbox.nextSibling;
            list += label.innerText + ", ";
        }
        checkbox = document.getElementById((listPrefix + (++idModifier).toString()));
    }

    if (list != "") {
        list = list.substring(0, list.length - 2);
    }
    return list;
}

function GetRadioButtonListSelectedItemValue(listPrefix) {
    var idModifier = 0;
    var radioButton = document.getElementById((listPrefix + idModifier));
    while (radioButton != null) {
        if (radioButton.checked == true && radioButton.value != null) {
            return radioButton.value;
        }
        radioButton = document.getElementById((listPrefix + (++idModifier).toString()));
    }
    return "";
}
//Temp Functions end
