﻿function ValidProd(prodid) {
    if (!isNaN(parseFloat(prodid)) && isFinite(prodid)) {
        return 0;
    }
    return -1;
}

function ValidState(vstate) {
    var state_list = "AK,AL,AR,AZ,CA,CO,CT,DC,DE,FL,GA,HI,IA,ID,IL,IN,KS,KY,LA,MA,MD,ME,MI,MN,MO,MS,MT,NC,ND,NE,NH,NJ,NM,NV,NY,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VA,VI,VT,WA,WI,WV,WY";
    if (vstate == '')
        return -1;
    else
        return state_list.indexOf(vstate.toUpperCase());
}

function getQSValue(querystring_name) {
    var var_querystring = window.location.search.substring(1);
    var querystring_array = var_querystring.split("&");

    for (var i = 0; i < querystring_array.length; i++) {
        var querystring_name_value_array = querystring_array[i].split("=");
        if (querystring_name_value_array[0].toUpperCase() == querystring_name.toUpperCase()) {
            return querystring_name_value_array[1];
        }
    }
    return "";
}
function callEPHandler() {
    var convRatHost = (("https:" == document.location.protocol) ? "https://" : "http://");
    var req = escape(escape(document.location));
}

function isset(variable_name) {
    try {
        if (typeof (eval(variable_name)) != 'undefined')
            if (eval(variable_name) != null)
                return true;
    } catch (e) { }
    return false;
}

function getStyleParametersQS() {
    QSStyle = "";
    if (isset("bwapsstyle")) {
        varStyle = bwapsstyle;
        QSStyle = "&Style=" + varStyle;
    }

    if (isset("bwapsSitePreview")) {
        varSitePreview = bwapsSitePreview;
        QSStyle += "&ShowSitePreview=" + varSitePreview;
    }

    if (isset("bwapsStyleSitepreview")) {
        varStyleSitepreview = bwapsStyleSitepreview;
        QSStyle += "&StyleSitepreview=" + varStyleSitepreview;
    }

    if (isset("bwapsDomainLogo")) {
        varDomainLogo = bwapsDomainLogo;
        QSStyle += "&ShowDomainLogo=" + varDomainLogo;
    }

    if (isset("bwapsCTRRating")) {
        varCTRRating = bwapsCTRRating;
        QSStyle += "&ShowCTRRating=" + varCTRRating;
    }

    if (isset("bwapsSnippetCharsLimit")) {
        varSnippetCharsLimit = bwapsSnippetCharsLimit;
        QSStyle += "&SnippetCharsLimit=" + varSnippetCharsLimit;
    }

    if (isset("bwapsLinkIn")) {
        varLinkIn = bwapsLinkIn;
        QSStyle += "&LinkIn=" + varLinkIn;
    }

    if (isset("bwapsPlanAvailable")) {
        varPlanAvailable = bwapsPlanAvailable;
        QSStyle += "&ShowPlansAvailable=" + varPlanAvailable;
    }

    if (isset("bwapsGetQuotesButton")) {
        varGetQuotes = bwapsGetQuotesButton;
        QSStyle += "&ShowGetQuotes=" + varGetQuotes;
    }

    if (isset("bwapsSnippet")) {
        varSnippet = bwapsSnippet;
        QSStyle += "&ShowLinkSnippet=" + varSnippet;
    }

    if (isset("bwapsTitle")) {
        varTitle = bwapsTitle;
        QSStyle += "&ShowLinkTitle=" + varTitle;
    }

    if (isset("bwapsUrlDomain")) {
        varURLDomain = bwapsUrlDomain;
        QSStyle += "&ShowLinkUrlDomain=" + varURLDomain;
    }

    return QSStyle;
}

function detectProtocolRenderListing() {
    var m,
    foundOne = false,
    msg = '',
    protocol = '';

    if (!(m = document.scripts))
        m = document.getElementsByTagName('script');

    for (var i = 0; i < m.length; i++) {
        if (m[i].src) {
            src = m[i].src;
            if (src.indexOf("RenderListing") > 0) {
                msg = m[i].src;
                foundOne = true;
            }
        }

    }
    if (foundOne) {
        pathArray = msg.split('/');
        var srcProtocol = (("https:" == pathArray[0]) ? "https://" : "http://");
        protocol = srcProtocol
    }
    return protocol;
}

function ReadCookie(cookieName) {
    var theCookie = "" + document.cookie;
    var ind = theCookie.indexOf(cookieName);
    if (ind == -1 || cookieName == "") return "";
    var ind1 = theCookie.indexOf(';', ind);
    if (ind1 == -1) ind1 = theCookie.length;
    return unescape(theCookie.substring(ind + cookieName.length + 1, ind1));
}

var utmz = ReadCookie("__utmz");

var refParams = "";
if (utmz) {
    utmz = decodeURIComponent(utmz);

    var referrer_regex = new RegExp(".*?utmcsr=([\(\)a-zA-Z0-9. ]+)\|");
    var ga_referrer = utmz.match(referrer_regex)[1];

    var keyword_regex = new RegExp(".*?utmctr=([\(\)a-zA-Z0-9. ]+)\|");
    var ga_keyword = utmz.match(keyword_regex)[1];
    if (typeof ga_keyword == "undefined")
        ga_keyword = "";
    if (typeof ga_referrer == "undefined")
        ga_referrer = "";

	ga_referrer = ga_referrer.replace("(direct)", "");

    refParams += "&searchEngine=" + ga_referrer + "&keyword=" + ga_keyword;
} else {
    var current_referrer = document.referrer;
    refParams = "&refParams=" + encodeURIComponent(current_referrer);
}

var varAffRef = encodeURIComponent(document.URL);

var varprodid = "";
var varstate = "";
var varaid = "";
var varcid = "";
var varmaxads = "";
var varadsource = "";
var varzipcode = "";
var varoutbound = false;
var varoutboundview = "";
//New Layout Style variables
var varStyle = "";
var varStylepreview = "";
var varSitePreview = "";
var varStyleSitepreview = "";
var varDomainLogo = "";
var varCTRRating = "";
var varSnippetCharsLimit = "";
var varLinkIn = "";
var varGetQuotes = "";
var varPlanAvailable = "";
var varQSStyle = "";
var varSnippet = "";
var varTitle = "";
var varURLDomain = "";
var varBwapsadvex = "";

////production variables:
var mainDom = "www.healthinsurancefinders.com";
var varlink = "/JsSearch.aspx?aid=";
if (isset("bwapsstyle") && (bwapsstyle == "jListing")) varlink = "/JsonSearch.aspx?aid=";
if (isset("bwapsstyle") && (bwapsstyle == "jsonListing")) varlink = "/Json2Search.aspx?aid=";
var reqjsprot = detectProtocolRenderListing();
var varHref = reqjsprot + mainDom + "/JsSearchStyles.aspx?aid=";
//Tracking Source
var vartrackingsource = "";

if (isset("prodid")) {   //old variable names    
    varprodid = prodid;

    if (st != null) {
        varstate = st;
    }

    varaid = window.aid;
    varcid = window.cid;

    if (window.bwapszip != null)
        varzipcode = window.bwapszip;

    if (window.maxads != null)
        varmaxads = window.maxads;

    if (window.ad_source != null) {
        varadsource = window.ad_source;
    }

    if (window.bwapsadvex != null)
        varBwapsadvex = window.bwapsadvex;
}
else if (isset("bwapsprodid")) {   //new variable names

    varprodid = bwapsprodid;

    if (window.bwapsstate != null) {
        varstate = window.bwapsstate;
    }

    varaid = window.bwapsaid;
    varcid = window.bwapscid;

    if (window.bwapszip != null)
        varzipcode = window.bwapszip;

    if (window.bwapsmaxads != null)
        varmaxads = window.bwapsmaxads;

    if (window.bwapsadsource != null) {
        varadsource = window.bwapsadsource;
    }
    if (window.bwapsadvex != null)
        varBwapsadvex = window.bwapsadvex;
}

if (window.bwapstrackingsource != null) {
    vartrackingsource = window.bwapstrackingsource;
}

if (window.bwgaoutbound != null) {
    varoutbound = window.bwgaoutbound;
}
if (varoutbound) {
    if (window.bwgaoutboundview != null) {
        if (window.bwgaoutboundview != '') {
            varoutboundview = window.bwgaoutboundview;
        }
    }
}

varQSStyle = getStyleParametersQS();

if (varprodid == "")
    varprodid = getQSValue('prodid');
if (varstate == "")
    varstate = getQSValue('st');
if (varzipcode == "")
    varzipcode = getQSValue('zip');
if (varadsource == "")
    varadsource = getQSValue('source');
if (vartrackingsource == "")
    vartrackingsource = getQSValue('bwapstrackingsource');

varHref += varaid + '&cid=' + varcid + varQSStyle;

var cssNode = document.createElement('link');
cssNode.type = 'text/css';
cssNode.rel = 'stylesheet';
cssNode.href = varHref;
cssNode.media = 'screen';
document.getElementsByTagName("head")[0].appendChild(cssNode);


/// KEYWORD CONVERSION TRACKING
function GetKeywordConverstionUrl() {
    var url = "";
    var varBwKeyword = "";
    var varBwUnique = "";
    var varBwQuery = "";

    // Verify if the values comes from the document
    if (window.bw_keyword != null) varBwKeyword = window.bw_keyword;
    if (window.bw_unique != null) varBwUnique = window.bw_unique;
    if (window.bw_query != null) varBwQuery = window.bw_query;

    // Verify if the values come from the QS
    if (varBwKeyword == "") varBwKeyword = getQSValue('bw_keyword');
    if (varBwUnique == "") varBwUnique = getQSValue('bw_unique');
    if (varBwQuery == "") varBwQuery = getQSValue('bw_query');

    // If the values are not empty, add them to the request URL
    if (varBwKeyword != "") url += "&bw_keyword=" + varBwKeyword;
    if (varBwUnique != "") url += "&bw_unique=" + varBwUnique;
    if (varBwQuery != "") url += "&bw_query=" + varBwQuery;

    return url;
}

if (ValidProd(varprodid) != -1) {
    if (varzipcode != "") {
        if (varadsource != "")
            varlink += varaid + "&ref=" + varAffRef + "&cid=" + varcid + "&zip=" + varzipcode + "&maxAds=" + varmaxads + "&source=" + varadsource + "&bwapsadvex=" + varBwapsadvex + refParams;
        else
            varlink += varaid + "&ref=" + varAffRef + "&cid=" + varcid + "&zip=" + varzipcode + "&maxAds=" + varmaxads + "&bwapsadvex=" + varBwapsadvex + refParams;
    }
    else if (varstate != "") {
        if (varadsource != "")
            varlink += varaid + "&ref=" + varAffRef + "&cid=" + varcid + "&st=" + varstate + "&maxAds=" + varmaxads + "&source=" + varadsource + "&bwapsadvex=" + varBwapsadvex + refParams;
        else
            varlink += varaid + "&ref=" + varAffRef + "&cid=" + varcid + "&st=" + varstate + "&maxAds=" + varmaxads + "&bwapsadvex=" + varBwapsadvex + refParams;
    }
    varlink += "&prodId=" + varprodid;
    varlink += "&outbound=" + varoutboundview;
    
    //tracking source
    if (vartrackingsource != "")
        varlink += "&trackingsource=" + vartrackingsource;
    
    varlink += varQSStyle;
    if (isset("bwapsclickurl") && (bwapsclickurl != "")) {
        varlink += "&bwapsclickurl=" + bwapsclickurl;
        mainDom = bwapsclickurl;
    }

    // Add the keyword conversion variables
    varlink += GetKeywordConverstionUrl();

    var reqjsurl = reqjsprot + mainDom + varlink;
    document.write('<script type="text/javascript" src="' + reqjsurl + '"></script>');
}
