// object will be the Providers Account Number, Group Name and Practitioner 
// separated by a pipe  ie. 12345|Tom Smith Group|Dr Frank Jones

//Grab the "product" value from the s_code.js and put it here into the _SCproduct variable
var _SCproduct = product;

/* Initialize the "s" properties.  You may give each page an identifying name, server, and channel on the next lines. */
SC_ClearEvents();

if (!window.console) console = {};
console.log = console.log || function () { };
console.warn = console.warn || function () { };
console.error = console.error || function () { };
console.info = console.info || function () { };


//var g_QueryString = new QueryString_Object(); // in case we are dealing with a QueryString


/* PUBLIC FUNCTIONS*/
function SC_logBDClicked() {
    SC_ClearEvents();

    s.events = "event38";
    logToConsole();
    s.t();
}

function SC_logSearch_AdvancedClicked() {
    SC_ClearEvents();

    s.events = "event37";
    logToConsole();
    s.t();
}

function SC_logSearch_SortClicked(sortType) {
    SC_ClearEvents();

    s.prop7 = sortType;
    s.eVar39 = sortType;
    s.events = "event36";
    logToConsole();
    s.t();
}

function SC_logSearch_FindByZipCode(zipCode, radius, advancedSearch) {
    SC_logSearch_Generic(zipCode, radius, null, null, null, null, null, advancedSearch);
}

function SC_logSearch_FindByCityState(city, state) {
    SC_logSearch_Generic(null, null, city, state, null, null, null, true);
}

function SC_logSearch_FindByDrName(firstName, lastName) {
    SC_logSearch_Generic(null, null, null, null, firstName, lastName, null, true);
}

function SC_logSearch_FindByOffice(officeName) {
    SC_logSearch_Generic(null, null, null, null, null, null, officeName, true);
}

function SC_logLocateOnMap(accountNumber, displayName) {
    SC_ClearEvents();

    s.eVar25 = accountNumber + "|" + displayName;
    s.events = "event27";
    logToConsole();
    s.t();
}

function SC_logBioDetail(accountNumber, displayName) {
    SC_ClearEvents();

    s.eVar38 = accountNumber + "|" + displayName;
    s.events = "event24";
    logToConsole();
    s.t();
}

function SC_logTelephone(accountNumber, displayName) {
    SC_ClearEvents();

    s.eVar26 = accountNumber + "|" + displayName;
    s.events = "event22";
    logToConsole();
    s.t();
}

function SC_logEmail(accountNumber, displayName) {
    SC_ClearEvents();

    s.eVar24 = accountNumber + "|" + displayName;
    s.events = "event26";
    logToConsole();
    s.t();
}

function SC_logEmailSubmitted(accountNumber, displayName, product, email) {
    SC_ClearEvents();
    //product = product.toLowerCase();
    s.eVar24 = accountNumber + "|" + displayName;
    s.events = "event29";
    logToConsole();
    s.t();
}

function SC_logConsultationSubmitted(accountNumber, displayName, product) {
    SC_ClearEvents();
    if (!product) product = "";
    product = product.toLowerCase();
    s.eVar27 = accountNumber;
    s.eVar25 = displayName;
    s.eVar28 = accountNumber;
    s.events = "event31";
    logToConsole();
    s.t();
}

function SC_logDirectionsSubmitted(accountNumber, displayName) {
    SC_ClearEvents();
    s.eVar37 = accountNumber + "|" + displayName;
    s.events = "event30";
    logToConsole();
    s.t();
}

function SC_logDirectionsClicked(accountNumber, displayName) {

    SC_ClearEvents();

    s.eVar37 = accountNumber + "|" + displayName;
    s.events = "event21";
    logToConsole();
    s.t();
}

function SC_logNewSearch() {
    SC_ClearEvents();

    s.events = "event33";
    logToConsole();
    s.t();
}

function SC_logDrWebSite(accountNumber, displayName) {
    SC_ClearEvents();

    s.eVar23 = accountNumber + "|" + displayName;
    s.events = "event25";
    logToConsole();
    s.t();
}

function SC_logDrWebSiteOpened(accountNumber, displayName) {
    SC_ClearEvents();

    s.eVar23 = accountNumber + "|" + displayName;
    s.events = "event35";
    logToConsole();
    s.t();
}

function SC_logWebPage() {
    SC_ClearEvents();

    s.events = "event32";
    logToConsole();
    s.t();
}

function SC_logSearchPanelLoad() {
    SC_ClearEvents();

    s.events = "event32";
    logToConsole();
    s.t();
}

function SC_logDocListPanelLoad(accounts) {
    SC_ClearEvents();
    s.events = "prodView,event28";
    s.products = SC_formatAccountNumbers(accounts);
    logToConsole();
    s.t();
}






/* INTERNAL FUNCTIONS*/

function SC_formatAccountNumbers(accounts) {
    var formattedAccounts = "";
    var isFirst = true;
    for (var i = 0; i < accounts.length; i++) {
        var divider = ",";
        if (isFirst) {
            divider = "";
            isFirst = false;
        }
        formattedAccounts += format("{0};{1}", divider, accounts[i]);
    }
    return formattedAccounts;
}

function SC_logSearch_Generic(zipCode, radius, city, state, firstName, lastName, officeName, advancedSearch) {
    SC_ClearEvents(); //?????
    //alert('log Search');
    if (!SC_isNullOrBlank(city)) {
        s.prop2 = city;
    }
    if (!SC_isNullOrBlank(zipCode)) {
        s.prop3 = zipCode;
    }
    if (!SC_isNullOrBlank(state)) {
        s.prop4 = state;
    }
    if (!SC_isNullOrBlank(radius)) {
        s.prop6 = radius;
    }
    if ((!SC_isNullOrBlank(firstName)) && (!SC_isNullOrBlank(lastName))) {
        s.prop5 = firstName + ' ' + lastName;
    }
    else if ((!SC_isNullOrBlank(firstName)) && (SC_isNullOrBlank(lastName))) {
        s.prop5 = firstName;
    }
    else if ((SC_isNullOrBlank(firstName)) && (!SC_isNullOrBlank(lastName))) {
        s.prop5 = lastName;
    }
    if (!SC_isNullOrBlank(officeName)) {
        s.prop8 = officeName;
    }


    s.prop1 = s.prop2 + "|" + s.prop3 + "|" + s.prop4 + "|" + s.prop6 + "|" + firstName + "|" + lastName + "|" + s.prop8;
    s.state = ""
    s.zip = ""
    s.eVar29 = s.prop3;
    s.eVar30 = s.prop6;
    s.eVar31 = s.prop2;
    s.eVar32 = s.prop4;
    s.eVar33 = s.prop8;
    s.eVar36 = s.prop5;

    // if called from advancedSearch, add event 34
    s.events = "event20" + ((advancedSearch != null && advancedSearch == true) ? ",event34" : "");

    s.products = ""
    s.purchaseID = ""
    logToConsole();
    s.t();
}

function SC_isNullOrBlank(testValue) {
    var rtnValue = false;
    if (testValue == null) { rtnValue = true; }
    if (testValue == '') { rtnValue = true; }
    return rtnValue;
}

function SC_ClearEvents() {

    s.pageName = document.location.href.substring(document.location.href.lastIndexOf('/') + 1,
			    document.location.href.length).split('.')[0].split('#')[0]; //<--   This Variable will change on each page and should equal the html file name. 
    s.server = "";
    s.channel = "";
    s.pageType = "";
    s.events = "";
    s.products = "";
    s.purchaseID = "";
    s.eVar1 = "";
    s.eVar22 = "";
    s.eVar23 = "";
    s.eVar24 = "";
    s.eVar25 = "";
    s.eVar26 = "";
    s.eVar27 = "";
    s.eVar28 = "";
    s.eVar29 = "";
    s.eVar30 = "";
    s.eVar31 = "";
    s.eVar32 = "";
    s.eVar33 = "";
    s.eVar34 = "";
    s.eVar35 = "";
    s.eVar36 = "";
    s.eVar37 = "";
    s.eVar38 = "";
    s.eVar39 = "";
    s.state = "";
    s.zip = "";
    s.prop1 = "";
    s.prop2 = "";
    s.prop3 = "";
    s.prop4 = "";
    s.prop5 = "";
    s.prop6 = "";
    s.prop7 = "";
    s.prop8 = "";
}

function logToConsole() {
    var sLog = '';
    if (s.products != null && s.products != "") { sLog = sLog + ' products = ' + s.products; }
    if (s.events != null && s.events != "") { sLog = sLog + ' events = ' + s.events; }
    if (s.eVar1 != null && s.eVar1 != "") { sLog = sLog + ' eVar1 = ' + s.eVar1; }
    if (s.eVar22 != null && s.eVar22 != "") { sLog = sLog + ' eVar22 = ' + s.eVar22; }
    if (s.eVar23 != null && s.eVar23 != "") { sLog = sLog + ' eVar23 = ' + s.eVar23; }
    if (s.eVar24 != null && s.eVar24 != "") { sLog = sLog + ' eVar24 = ' + s.eVar24; }
    if (s.eVar25 != null && s.eVar25 != "") { sLog = sLog + ' eVar25 = ' + s.eVar25; }
    if (s.eVar26 != null && s.eVar26 != "") { sLog = sLog + ' eVar26 = ' + s.eVar26; }
    if (s.eVar27 != null && s.eVar27 != "") { sLog = sLog + ' eVar27 = ' + s.eVar27; }
    if (s.eVar28 != null && s.eVar28 != "") { sLog = sLog + ' eVar28 = ' + s.eVar28; }
    if (s.eVar29 != null && s.eVar29 != "") { sLog = sLog + ' eVar29 = ' + s.eVar29; }
    if (s.eVar30 != null && s.eVar30 != "") { sLog = sLog + ' eVar30 = ' + s.eVar30; }
    if (s.eVar31 != null && s.eVar31 != "") { sLog = sLog + ' eVar31 = ' + s.eVar31; }
    if (s.eVar32 != null && s.eVar32 != "") { sLog = sLog + ' eVar32 = ' + s.eVar32; }
    if (s.eVar33 != null && s.eVar33 != "") { sLog = sLog + ' eVar33 = ' + s.eVar33; }
    if (s.eVar34 != null && s.eVar34 != "") { sLog = sLog + ' eVar34 = ' + s.eVar34; }
    if (s.eVar35 != null && s.eVar35 != "") { sLog = sLog + ' eVar35 = ' + s.eVar35; }
    if (s.eVar36 != null && s.eVar36 != "") { sLog = sLog + ' eVar36 = ' + s.eVar36; }
    if (s.eVar37 != null && s.eVar37 != "") { sLog = sLog + ' eVar37 = ' + s.eVar37; }
    if (s.eVar38 != null && s.eVar38 != "") { sLog = sLog + ' eVar38 = ' + s.eVar38; }
    if (s.eVar39 != null && s.eVar39 != "") { sLog = sLog + ' eVar39 = ' + s.eVar39; }
    if (s.prop1 != null && s.prop1 != "") { sLog = sLog + ' sprop1 =' + s.prop1; }
    if (s.prop2 != null && s.prop2 != "") { sLog = sLog + ' sprop2 =' + s.prop2; }
    if (s.prop3 != null && s.prop3 != "") { sLog = sLog + ' sprop3 =' + s.prop3; }
    if (s.prop4 != null && s.prop4 != "") { sLog = sLog + ' sprop4 =' + s.prop4; }
    if (s.prop5 != null && s.prop5 != "") { sLog = sLog + ' sprop5 =' + s.prop5; }
    if (s.prop6 != null && s.prop6 != "") { sLog = sLog + ' sprop6 =' + s.prop6; }
    if (s.prop7 != null && s.prop7 != "") { sLog = sLog + ' sprop7 =' + s.prop7; }
    if (s.prop8 != null && s.prop8 != "") { sLog = sLog + ' sprop8 =' + s.prop8; }
    console.log(sLog);
}





































function QueryString_Object(URL) {
    if (!URL) { URL = location.href; } // If no argument, use the document URL
    this.raw = URL.substring(URL.indexOf('?') + 1, URL.length); // Grab and store QueryString after the "?"
    this.Name = Array();
    this.Value = Array();
    QueryString_Object.prototype.Get = QueryString_Object_Get;

    var args = this.raw.split('&'); // Parse out the parameters separated by "&"

    for (var i = 0; i < args.length; i++) { // Split out and store each name/value pair
        var pair = args[i].split('=');

        temp = unescape(pair[0]).split('+'); // Fix broken unescaping
        temp0 = temp.join(' ');

        temp = unescape(pair[1]).split('+');
        temp1 = temp.join(' ');

        this.Name[i] = temp0;
        this.Value[i] = temp1;
    }
}

function QueryString_Object_Get(what) {                                        // Get the value based on the parameter name
    for (var i = 0; i < this.Name.length; i++) {
        if (this.Name[i] == what) {
            return this.Value[i];
        }
    }
    return false; // return false if parameter doesn't exist
}


function launchWindow(url, object) {
    window.open(url + '?url=' + object.href);
}

