﻿function SendImageRequestToSiteCatalyst() 
{
    var s_code = s.t(); if (s_code) document.write(s_code)
}

function ServiceCallbackToSendImageRequestToSiteCatalyst() 
{
    SendImageRequestToSiteCatalyst();
}

function CallBentleySiteCatalystWebService(ServiceCallbackToSendImageRequestToSiteCatalyst) 
{
    if (window.location.href.indexOf("?newregister=user") != -1 || window.location.href.indexOf("&newregister=user") != -1) {
        SetRegistrationStatus("8","User Reg");
    }
    else if(window.location.href.indexOf("?newregister=product") != -1 || window.location.href.indexOf("&newregister=product") != -1) {
        SetRegistrationStatus("8","Product Reg");
    }
    
    var cookieName = "";
    var cookieValue = "";
    var webServiceUrl = "";
    var browserAgent = navigator.userAgent.toLowerCase();

    if (window.location.href.indexOf("localhost") != -1 || window.location.href.indexOf("dev-") != -1) 
    {
        cookieName = "dev_SiteCatalyst";

        if (browserAgent.indexOf("firefox") != -1)
            webServiceUrl = "http://dev-services.bentley.com/SiteCatalystService/SiteCatalystService.svc/GetUserInfo?callback=?"
        else 
        {
            if (window.location.href.indexOf("https") != -1)
                webServiceUrl = "https://dev-services.bentley.com/SiteCatalystService/SiteCatalystService.svc/GetUserInfo?callback=?"
            else
                webServiceUrl = "http://dev-services.bentley.com/SiteCatalystService/SiteCatalystService.svc/GetUserInfo?callback=?"
        }
    }
    else if (window.location.href.indexOf("qa-") != -1) 
    {
        cookieName = "qa_SiteCatalyst";

        if (browserAgent.indexOf("firefox") != -1)
            webServiceUrl = "http://qa-services.bentley.com/SiteCatalystService/SiteCatalystService.svc/GetUserInfo?callback=?"
        else 
        {
            if (window.location.href.indexOf("https") != -1)
                webServiceUrl = "https://qa-services.bentley.com/SiteCatalystService/SiteCatalystService.svc/GetUserInfo?callback=?"
            else
                webServiceUrl = "http://qa-services.bentley.com/SiteCatalystService/SiteCatalystService.svc/GetUserInfo?callback=?"
        }
    }
    else 
    {
        cookieName = "SiteCatalyst";

        if (browserAgent.indexOf("firefox") != -1)
            webServiceUrl = "http://services.bentley.com/SiteCatalystService/SiteCatalystService.svc/GetUserInfo?callback=?"
        else 
        {
            if (window.location.href.indexOf("https") != -1)
                webServiceUrl = "https://services.bentley.com/SiteCatalystService/SiteCatalystService.svc/GetUserInfo?callback=?"
            else
                webServiceUrl = "http://services.bentley.com/SiteCatalystService/SiteCatalystService.svc/GetUserInfo?callback=?"
        }
    }

    cookieValue = GetCookie(cookieName);

    var parameters = { cookieName: cookieName, cookieValue: cookieValue };

    // Get the JsonP userInfo data
    $.getJSON(webServiceUrl, parameters, function(userInfo) 
    {
        if (userInfo != null && userInfo != undefined && userInfo[0] != null && userInfo[0] != undefined) 
        {
            s.prop9 = userInfo[0].UserId;
            s.eVar15 = userInfo[0].ContactBp;
            s.eVar14 = "logged in";
        }
        else
            s.eVar14 = "not logged in";

        if (ServiceCallbackToSendImageRequestToSiteCatalyst != null && ServiceCallbackToSendImageRequestToSiteCatalyst != undefined)
            ServiceCallbackToSendImageRequestToSiteCatalyst();
    }); 
    
}

function SetRegistrationStatus(status, pagename) 
{
    /* status = 6:  Initiated*/
    /* status = 7:  InProgress*/
    /* status = 8:  Completed*/
    /* eVar19 = Registration Form*/
    s.eVar19 = pagename;
    
    if (s.events != null && s.events != "") {/*other events are already set, so add on, but can't add to eVar13; it can only have 1 value */
        if (status == "6") {
            s.events = s.events + ",event6";
        }
        else if (status == "7") {
            s.events = s.events + ",event7";
        }
        else if (status == "8") {
            s.events = s.events + ",event8";
        }
    }
    else {
        if (status == "6") {
            s.events = "event6";
        }
        else if (status == "7") {
            s.events = "event7";
        }
        else if (status == "8") {
            s.events = "event8";
        }
        
    }
}

function SetLeadStatus(status, pagename) 
{
    /* status = 4:  Lead Initiated*/
    /* status = 5:  Lead Completed*/
    /* evar13:   Lead Form*/
    /* evar16:   Lead Transation ID # */
    /* pagename:  Name of the page where Lead Initiated or Lead Completed*/
    s.eVar13 = pagename;

    if (status == "4") 
    {
        s.events = "event4";
    }
    else if (status == "5") 
    {
       var leadid = '<%=Session["LeadIdsForSiteCatalyst"]%>';

        if (leadid != null && leadid != undefined && leadid != "") { 
            s.events = "event5";        
            s.eVar16 = leadid; 
        }

       /* '<%=Session["LeadIdsForSiteCatalyst"]%>' = null; */
    }
}

function SetLeadEvents(status, pagename) 
{
    var leadId = "";
    SetLeadEvents(status, pagename, leadId);
}

function SetLeadEvents(status, pagename, leadId) 
{
    /* status = 4:  Lead Initiated*/
    /* status = 5:  Lead Completed*/
    /* evar13:   Lead Form*/
    /* evar16:   Lead Transation ID # */
    /* pagename:  Name of the page where Lead Initiated or Lead Completed*/
    s.eVar13 = pagename;
    
    if (s.events != null && s.events != "") {/*other events are already set, so add on, but can't add to eVar13; it can only have 1 value */
        
        if (status == "4") {
            s.events = s.events + ",event4";
        }
        else if (status == "5" && leadId != "") {
            s.events = s.events + ",event5";
            s.eVar16 = leadId;
        }
    } 
    else{
        if (status == "4") {
            s.events = "event4";
        }
        else if (status == "5" && leadId != "") {
            s.events = "event5";
            s.eVar16 = leadId;
        }
    }
}
function SetTaggedContentLeadEvents(status, pagename, leadId) {
/* If user is already logged in when they hit a Tagged COntent link, need to set lead init and lead complete when they get to the page
    /* status = 4:  Lead Initiated*/
    /* status = 5:  Lead Completed*/
    /* evar13:   Lead Form*/
    /* evar16:   Lead Transation ID # */
    /* pagename:  Name of the page where Lead Initiated or Lead Completed*/

    s.eVar13 = pagename;

    if (s.events != null && s.events != "") {/*other events are already set, so add on, but can't add to eVar13; it can only have 1 value */

        if (status == "both") {

            s.events = s.events + ",event4,event5";
            s.eVar16 = leadId;
        }
    }
    else {

        if (status == "both") {

            s.events = "event4,event5";
            s.eVar16 = leadId;
        }
    }
    
}
function SetInternalSearchEvents(status, searchWord)
{
    s.eVar12 = searchWord;
    if (status == "2") {
        s.events = "event2";
    }
    else if (status == "3" ) {
        s.events = "event2,event3";
    }
    
}

function SetLeadEventsForBeConnected(status, pagename) 
{
    SetLeadEvents(status, pagename);
    SendImageRequestToSiteCatalyst();

    return true;
}

function GetCookieVal(offset) 
{
    var endstr = document.cookie.indexOf(";", offset);
    if (endstr == -1) { endstr = document.cookie.length; }
    
    return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(name) 
{
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg) {
            return GetCookieVal(j);
        }
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break;
    }
    
    return null;
}


