var giCMCategoryID = 0;
var giCMCategoryDescription = 1;
var giCMCategoryParentID = 2;
var giCMQuestionnaire = 3;
var giCMProcess = 4;
var giCMPath = 5;
var giCMDomain = 6;

var gsCMBankruptcy = "Bankruptcy";
var gsCMEntityNameCheck = "Entity Name Check";
var gsCMSearchCategory = "SEARCH";
var gsCMRARenewal = "Registered Agent Service";
var gsCMRECategoryNotMapped = "THIS CATEGORY IS NOT MAPPED";
var gsCMSearchRightNowRE = "/rightnow/index.html";
var gsCMDomainNotMapped = "THIS DOMAIN IS NOT MAPPED";
var gsCMFormsPath = "/legalforms/";
var gsCMFormsID = "FORMS";
var gsCMFormsDescription = "Legal Forms";

var gsCMProvPatID = "ProvPat";
var giCMProvPatIQ = 247;
var giCMProvPatIP = 67;

var gsCMProvPatInHouseID = "ProvPat - In House";
var giCMProvPatInHouseIQ = 21;
var giCMProvPatInHouseIP = 19;

var gsCMDesignPatentID = "DesignPat";

var gsCMBusinessLicenses = "Business-Licenses";
var igCMClickEvent = 2;
var sgCMClickEventCategory = "Click";

var cmGSBusinessResourcesDomain = "businessresources.legalzoom.com";
var oaMappings = new Array();
  //oaMappings[ oaMappings.length ] = [ CatID, Cat Description, Parent CatID, iQuestionnaire(s), iProcess(es), Path RegExp, Domain RegExp ];
    oaMappings[ oaMappings.length ] = [ "EP", "Estate Planning", "", -1, -1, "/wills-estate-planning/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "FAM", "Family", "", -1, -1, "/family-law/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "BIZ", "Business Services", "", -1, -1, "/business-formations/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "IP", "Intellectual Property", "", -1, -1, "/trademarks-patents-copyrights", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "PSD", "Personal Services", "", -1, -1, "/more-legal-documents/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ gsCMFormsID, gsCMFormsDescription, "", 240, -1, gsCMFormsPath, gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "ATTY", "Attorney Services", "", -1, -1, "/AttorneySignup/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "ARTICLE", "Articles", "", -1, -1, "/legal-articles/|/press-center/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ gsCMSearchCategory, "Site Search", "", -1, -1, "/search.aspx|" + gsCMSearchRightNowRE, gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "ANCILLARY", "Ancillary", "", -1, -1, "/education-center/|/about-us/|/careers/|/30-pt-review.html|/additional-forms.html|/affiliate-registration.html|/affiliates-intro.html|/affiliates-success.html|/californiacorporation.html|/californiadivorceforms.html|/default.asp|/details_1.html|/disclaimer.html|/disclaimer-popup.html|/divorce-satisfaction-guarantee.html|/fact-sheet.html|/floridawill.html|/google9a48ea173f4e6304.html|/handel.html|/immigration.html|/incorporateincalifornia.html|/incorporateinflorida.html|/index_verisign.html|/index-gc.html|/jump.asp|/jumpext.asp|/jumpssl.asp|/jumptrack.asp|/maint.html|/navtest.html|/news-index.html|/news-template.html|/page-not-found.html|/peace-of-mind-popup.html|/privacy-policy.html|/privacy-policy-popup.html|/real-estate-satisfaction-guarantee.html|/satisfaction-guarantee.html|/site_directory.html|/site-map.html|/sitemap-about-us.html|/sitemap-About-Us1.html|/sitemap-additional-business-services.html|/sitemap-Additional-Business-Services1.html|/sitemap-affiliate.html|/sitemap-Affiliate1.html|/sitemap-articles.html|/sitemap-Articles1.html|/sitemap-Articles2.html|/sitemap-Articles3.html|/sitemap-Articles4.html|/sitemap-Articles5.html|/sitemap-Articles6.html|/sitemap-Articles7.html|/sitemap-Articles8.html|/sitemap-Articles9.html|/sitemap-Business-Formations1.html|/sitemap-Copyright1.html|/sitemap-copyright-registration.html|/sitemap-Customer-Service1.html|/sitemap-DBA1.html|/sitemap-dba-business-names.html|/sitemap-dba-state-requirements.html|/sitemap-Deed-Transfer1.html|/sitemap-design-patent.html|/sitemap-Design-Patents1.html|/sitemap-divorce.html|/sitemap-Divorce1.html|/sitemap-divorce-name-change.html|/sitemap-Education1.html|/sitemap-Family-Law1.html|/sitemap-General1.html|/sitemap-Incorporation1.html|/sitemap-Incorporation2.html|/sitemap-incorporations.html|/sitemap-incorporation-state-requirements.html|/sitemap-Legal-Documents1.html|/sitemap-Limited-Liability-Company1.html|/sitemap-Limited-Liability-Company2.html|/sitemap-Limited-Liability-Partnership1.html|/sitemap-limited-liability-partnerships.html|/sitemap-Limited-Partnership1.html|/sitemap-Living-Trust1.html|/sitemap-living-trusts.html|/sitemap-living-trusts-state-requirements.html|/sitemap-living-wills.html|/sitemap-Living-Wills1.html|/sitemap-living-wills-state-requirements.html|/sitemap-llc-limited-liability-co.html|/sitemap-llc-state-requirements.html|/sitemap-lp-limited-partnerships.html|/sitemap-name-change.html|/sitemap-Name-Change1.html|/sitemap-Non-Profit1.html|/sitemap-non-profit-corporation.html|/sitemap-Patent1.html|/sitemap-patent-search.html|/sitemap-power-of-attorney.html|/sitemap-Power-Of-Attorney1.html|/sitemap-Prenuptial1.html|/sitemap-press.html|/sitemap-Provisional-Patent1.html|/sitemap-provisional-patents.html|/sitemap-Real-Estate-Lease1.html|/sitemap-real-estate-leases.html|/sitemap-small-claims.html|/sitemap-Small-Claims1.html|/sitemap-Small-Claims2.html|/sitemap-template.html|/sitemap-test.html|/sitemap-trademark-monitoring.html|/sitemap-Trademarks1.html|/sitemap-Trademarks2.html|/sitemap-Trademarks3.html|/sitemap-trademarks-registration.html|/sitemap-trademarks-search.html|/sitemap-trademarks-state-requirements.html|/sitemap-wills.html|/sitemap-Wills1.html|/sitemap-Wills2.html|/sitemap-wills-state-requirements.html|/subscribe_to_newsletter.html|/terms_of_service.html|/terms_of_service-popup.html|/terms-of-use.html|/testpage.asp|/testpage_db.asp|/testpage_offermatica.asp|/tools_check.asp|/uslegalforms-popup.html|/business-spotlight/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "MEMBER", "Membership", "", -1, -1, "/members/|/questionnaire/check_previous_orders.asp|/welcome/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "CHECKOUT", "Checkout", "", -1, -1, "/checkout/|/finished/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "ENTRY", "Site Entry", "", -1, -1, gsCMRECategoryNotMapped, gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SUPPORT", "Support", "", -1, -1, "/customer-support/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "ERROR", "Error", "", -1, -1, "/welcome/404.asp|/welcome/500.asp", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "LOGIN", "Login", "", -1, -1, "/welcome/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "LEADGEN", "Lead Generation", "", -1, -1, "attorney-locator|/offers/|/partner_html/|/marketamerica/|businessresources.legalzoom.com", cmGSBusinessResourcesDomain ];
    oaMappings[ oaMappings.length ] = [ "HOME", "Homepage", "ENTRY", -1, -1, "^/$|^/index.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEO", "SEO Landing Pages", "ENTRY", -1, -1, "/dba-state-requirements/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Newsletter Articles", "Newsletter Articles", "ENTRY", -1, -1, "/legal-articles/|/press-center/", gsCMDomainNotMapped ];

    oaMappings[ oaMappings.length ] = [ "Divorce", "Divorce", "FAM", 66, 4, "/divorce-faq/|/divorce-glossary/|/divorce-guide/|/legal-divorce/", gsCMDomainNotMapped ];
    
    oaMappings[ oaMappings.length ] = [ "LLC", "LLC", "BIZ", 27, 2, "/limited-liability-company/|/llc/|/llc-faq/|/llc-glossary/|/llc-guide/|/llc-state-requirements/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "INC", "Incorporation", "BIZ", 63, 1, "/incorporation-faq/|/incorporation-glossary/|/incorporation-guide/|/incorporation-state-requirements/|/legal-incorporation/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "NP", "Non Profit", "BIZ", 98, 20, "/non-profits/|/nonprofits-faq/|/nonprofits-guide/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "DBA", "DBA", "BIZ", 89, 18, "/dba-faq/|/dba-guide/|/legal-dba/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Corporate-Minutes", "Corporate Minutes", "BIZ", 141, 42, "/additional-business-services/corporate-minutes.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Corporate-Supplies", "Corporate Supplies", "BIZ", 134, 39, "/additional-business-services/corporate-supplies.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Annual-Reports", "Annual Reports", "BIZ", -1, -1, "/additional-business-services/annual-reports.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ gsCMRARenewal, gsCMRARenewal, "BIZ", 105, 28, "/additional-business-services/registered-agent-services.html|/RACorporateCenter/|rarenewals", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "LegalZoom-Attorney-Access-Plan", "Attorney Access Plan", "BIZ", -1, -1, "/attorney-access/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "501(c)(3)-Application", "501(c)(3) Application", "BIZ", 233, 59, "/501c3/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Amendments", "Amendments", "BIZ", 163, 25, "/additional-business-services/articles-of-amendment-corporation-llc.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Bylaws-and-Resolutions", "Bylaws and Resolutions", "BIZ", 304, 75, "/additional-business-services/stand-alone-bylaws-resolutions.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Certificates-of-Good-Standing", "Certificates of Good Standing", "BIZ", 108, 29, "/additional-business-services/certificates-of-good-standing.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Conversions", "Conversions", "BIZ", 106, 47, "/additional-business-services/conversion-between-llc-corporation.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Dissolutions", "Dissolutions", "BIZ", 161, 26, "/additional-business-services/articles-of-dissolution-corporation-llc.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "EIN", "EIN Obtainment", "BIZ", 173, 49, "/additional-business-services/ein-federal-tax-identification-number.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Foreign-Qualifications", "Foreign Qualification", "BIZ", 162, 27, "/additional-business-services/foreign-qualifications-for-business.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Logos", "Logos", "BIZ", 16, 29, "/logo/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Operating-Agreements", "Operating Agreements", "BIZ", 303, 76, "/additional-business-services/stand-alone-operating-agreements.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "S-Corp-Election", "S-Corp Election", "BIZ", -1, -1, "/additional-business-services/s-corp-election.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Sellers-Permits", "Sellers Permit", "BIZ", "118|187|191|196|204|206|207|212", 44, "/additional-business-services/sellers-permit.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "State-Tax-ID", "State Tax ID", "BIZ", "192|188|167|168|169|170|171|172|183|184|149", 45, "/additional-business-services/state-tax-id.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Business-Licenses", "Business License", "BIZ", -1, -1, "null", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "LP", "Limited Partnership", "BIZ", 130, 23, "/limited-partnerships/|/lp-faq/|/lp-guide/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "LLP", "Limited Liability Partnership", "BIZ", 131, 24, "/limited-liability-partnerships/|/llp-faq/|/llp-guide/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Partnership", "Partnership", "BIZ", 243, 63, "/partnership-agreement/|/partnership-agreement-faq/|/partnership-agreement-glossary/|/partnership-agreement-guide/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Joint-Venture", "Joint Venture Agreement", "BIZ", 242, 64, "/joint-venture/|/joint-venture-faq/|/joint-venture-glossary/|/joint-venture-guide/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ gsCMProvPatID, "Provisional Patent", "IP", giCMProvPatIQ, giCMProvPatIP, "/provisional-patents/|/provisional-patents-faq/|/provisional-patents-glossary/|/provisional-patents-guide/", gsCMDomainNotMapped ];
    
    oaMappings[ oaMappings.length ] = [ "ProvPat - Assisted", "Provisional Patent - Attorney Assisted", gsCMProvPatID, giCMProvPatIQ, giCMProvPatIP, gsCMRECategoryNotMapped, gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ gsCMProvPatInHouseID, "Provisional Patent - In House", gsCMProvPatID, giCMProvPatInHouseIQ, giCMProvPatInHouseIP, gsCMRECategoryNotMapped, gsCMDomainNotMapped ];
    
    oaMappings[ oaMappings.length ] = [ gsCMDesignPatentID, "Design Patent", "IP", 250, 69, "/design-patents/|/design-patents-faq/|/design-patents-guide/", gsCMDomainNotMapped ];

    //oaMappings[ oaMappings.length ] = [ "UtilPat", "Utility Patent", "IP", 215, 56, "/utility-patents/|/utility-patents-faq/", gsCMDomainNotMapped ];
        // above has been deprecated
    oaMappings[ oaMappings.length ] = [ "Full Patent-Attorney-Assisted Step I", "Utility Patent", "IP", 251, 70, "/utility-patents/|/utility-patents-faq/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Full Patent-Attorney-Assisted Step II", "Utility Patent", "IP", 253, 71, "utility-patents-pricing2.html", gsCMDomainNotMapped ];
        
    oaMappings[ oaMappings.length ] = [ "Patent Search", "Patent Search", "IP", 244, 65, "/patent-search/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Patent Illustration", "Patent Illustration", "IP", -1, -1, gsCMRECategoryNotMapped, gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "TM-Reg", "Trademark Registration", "IP", 51, 7, "/trademarks/|/trademarks-faq/|/trademarks-glossary/|/trademarks-guide/|/trademarks-state-requirements/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "TM-Search", "Trademark Search", "IP", 77, 13, "/trademark-search/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "TM-Monitoring", "Trademark Monitoring", "IP", 80, 14, "/trademark-monitoring/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Copyright", "Copyright", "IP", 64, 8, "/copyrights-faq/|/copyrights-glossary/|/copyrights-guide/|/legal-copyrights/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Statement of Use", "Statement of Use", "IP", 158, 53, "/trademarks-statement-of-use/|/trademarks-statement-of-use-faq/|/trademarks-statement-of-use-guide/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Statement of Use Extension", "Statement of Use Extension", "IP", 164, 54, "/tm-statement-of-use-extension/|/tm-statement-of-use-extension-faq/|/tm-statement-of-use-extension-guide/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Section 8", "Section 8", "IP", 159, 51, "/trademarks-section8-declaration/|/trademarks-section8-faq/|/trademarks-section8-guide/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Section 9", "Section 9", "IP", 160, 52, "/trademarks-section9-faq/|/trademarks-section9-guide/|/trademarks-section9-renewal/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Recordation", "Recordation", "IP", 166, 55, gsCMRECategoryNotMapped, gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "LivWill", "Living Will", "EP", 54, 9, "/living-wills/|/Living-Wills-FAQ/|/living-wills-glossary/|/living-wills-guide/|/living-wills-state-requirements/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "LivTrust", "Living Trust", "EP", 59, 3, "/living-trusts/|/living-trusts-faq/|/living-trusts-glossary/|/living-trusts-guide/|/living-trusts-state-requirements/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "LastWill", "Last Will and Testament", "EP", 49, 6, "/legal-Wills/|/Wills-FAQ/|/Wills-Glossary/|/Wills-Guide/|/wills-state-requirements/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "POA", "Power of Attorney", "EP", 17, 11, "/power-of-attorney/|/power-of-attorney-faq/|/power-of-attorney-glossary/|/power-of-attorney-guide/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Prenup", "Prenuptial", "FAM", 138, 72, "/prenuptial/|/prenuptial-faq/|/prenuptial-glossary/|/prenuptial-guide/", gsCMDomainNotMapped ];

    oaMappings[ oaMappings.length ] = [ "UncontestedDiv", "Uncontested Divorce", "FAM", "121|123|125|32|33|34|35|154|175|214", 4, gsCMRECategoryNotMapped, gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "AttyDiv", "Attorney Assisted Divorce", "FAM", -1, -1, gsCMRECategoryNotMapped, gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "DivConsult", "Divorce Consultation", "FAM", 150, 50, gsCMRECategoryNotMapped, gsCMDomainNotMapped ];
    
    oaMappings[ oaMappings.length ] = [ "Small Claims", "Small Claims", "PERSONAL", "29|133", "22|35", "/small-claims-california/|/small-claims-california-guide/|/small-claims-california-faq/|/small-claims-california-glossary/|/legal-small-claims/|/small-claims-guide/|/small-claims-faq/|/small-claims-glossary/|/questionnaire/select_state_smallclaims.htm|/questionnaire/pre-qualification-[a-z]{2}.html|/questionnaire/pre-qualification-popup-combined.html|/questionnaire/pre-qualification-popup-general.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Lease", "Real Estate Lease", "PERSONAL", 139, 38, "/real-estate-leases/|/real-estate-leases-faq/|/real-estate-leases-glossary/|/real-estate-leases-guide/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Deed Transfer", "Real Estate Deed Transfer", "PERSONAL", 148, 48, "/real-estate-deed-transfer/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Name Change", "Name Change", "PERSONAL", "155|19", 15, "/legal-name-change/|/name-change-faq/|/name-change-glossary/|/name-change-guide/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ gsCMBankruptcy, gsCMBankruptcy, "LEADGEN", 174, 60, "/bankruptcy/|/bankruptcy-faq/|/bankruptcy-glossary/|/bankruptcy-guide/", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "Affiliate", "Affiliate", "AFFILIATE", -1, -1, "/affiliate-legalzoom/|/affiliates/|/janpro/", gsCMDomainNotMapped ];
     
    oaMappings[ oaMappings.length ] = [ "SEM - BIZ", "SEM - Business Services", "SEM", -1, -1, "/sem-incorporation-a/business-compare.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - COPYRIGHT", "SEM - Copyright", "SEM", -1, -1, "/sem/copyrightpage.html|/sem/copyrightpage1.html|/sem/get-a-copyright.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - DBA", "SEM - DBA", "SEM", -1, -1, "/sem/dbapage.html|/sem/dbapage1.html|/sem/get-a-dba-sole-proprietorship-1.html|/sem/get-a-dba-sole-proprietorship.html|/sem/sole-proprietorship.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - Deed Transfer", "SEM - Real Estate Deed Transfer", "SEM", -1, -1, "/sem/deedtransferpage.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - DesignPat", "SEM - Design Patent", "SEM", -1, -1, "/sem/get-a-patent-b.html|/sem/get-a-patent.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - DivConsult", "SEM - Divorce Consultation", "SEM", -1, -1, "sem/divorcepage.html|sem/divorcepage-ca.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - INC", "SEM - Incorporation", "SEM", -1, -1, "/sem/get-incorporated-online.html|/sem/incpage.html|/sem-incorporation-a/business-compare-summary.html|/sem-incorporation-a/business-compare-summary__test.html|/sem-incorporation-a/incorporation.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - LLC", "SEM - LLC", "SEM", -1, -1, "/sem/form-a-llc.html|/sem/form-an-llc-online-start-now.asp|/sem/form-an-llc-online.html|/sem/incorporate-or-llc-start-now.asp|/sem/incorporate-or-llc.html|/sem/llc-satisfied-customers.html|/sem/llcpage-2.html|/sem/llcpage.html|/sem/llcpage_old.html|/sem-incorporation-a/incorporation-llc.html", gsCMDomainNotMapped ];
    //oaMappings[ oaMappings.length ] = [ "SEM - LP", "SEM - Limited Partnership", "SEM", -1, -1, "", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - LastWill", "SEM - Last Will", "SEM", -1, -1, "/sem/last-will-and-testament.html|/sem/willpage.html|/sem/willpage1.html|/sem/willpage2.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - LivTrust", "SEM - Living Trust", "SEM", -1, -1, "/sem/last-will-or-living-trust.html|/sem/livingtrustpage.html|/sem/livingtrustpage1.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - LivWill", "SEM - Living Will", "SEM", -1, -1, "/sem/livingwillpage.html|/sem/livingwillpage1.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - NP", "SEM - Non Profit", "SEM", -1, -1, "/sem/nonprofitpage.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - Name Change", "SEM - Name Change", "SEM", -1, -1, "/sem/namechangepage.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - POA", "SEM - Power of Attorney", "SEM", -1, -1, "/sem/poapage.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - PROVPAT", "SEM - Provisional Patent", "SEM", -1, -1, "/sem/provpatpage.html|/sem/provpatpage1.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - Small Claims", "SEM - Small Claims", "SEM", -1, -1, "/sem/smallclaimspage.html|/sem/smallclaimspage2.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - TM-Monitoring", "SEM - Trademark Monitoring", "SEM", -1, -1, "/sem/get-trademark-protection.html|/sem/tmmonitoringpage.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - TM-Reg", "SEM - Trademark Registration", "SEM", -1, -1, "/sem/get-a-trademark.html|/sem/trademarkpage.html|/sem/trademarkpage1.html", gsCMDomainNotMapped ];
    oaMappings[ oaMappings.length ] = [ "SEM - TM-Search", "SEM - Trademark Search", "SEM", -1, -1, "/sem/tmsearchpage.html", gsCMDomainNotMapped ];
    
    oaMappings[ oaMappings.length ] = [ "Contract Review", "Contract Review", "PSD", 258, 73, "/contract-review/", gsCMDomainNotMapped ];
   
    oaMappings[ oaMappings.length ] = [ gsCMEntityNameCheck, gsCMEntityNameCheck, "BIZ FORMATION", 248, 68, gsCMRECategoryNotMapped, gsCMDomainNotMapped ]; 

var giNotFound = -99;

var igCMConversionEventStart = 1;
var igCMConversionEventComplete = 2;

function getSLocation(){ return String( document.location ); }
function getIFromLocation( sProcess ){
  var iOut = giNotFound;
  var sLocation = getSLocation();
  var reClean = new RegExp( sProcess, "gim" );
  var re = new RegExp( sProcess.replace( /\|/gim, "[0-9]+|" ) + "[0-9]+", "gim" );
  var match = sLocation.match( re );
  iOut = match? String( match[ 0 ] ).replace( reClean, "" ): iOut;
  return iOut;
}
function getIProcessParam(){ return getIFromLocation( "iProcess=|iPid=|iP=" ); }
function getIQuestionnaireFromLocation(){ return getIFromLocation( "qpage_|iq=" ); }

function getFieldFromMappings( iProdID, iArrayIndex, iFieldIndex ){
  var re = new RegExp( "^" + iProdID + "$|^" + iProdID + "\\||\\|" + iProdID + "$|\\|" + iProdID + "\\|", "gim" );
  var sOut = "";
  for ( var i = 0; sOut == "" && i < oaMappings.length; i++ ){
    sOut = String( oaMappings[ i ][ iArrayIndex ] ).match( re )? oaMappings[ i ][ iFieldIndex ]: sOut;
  }
  return sOut;
}
function matchCategoryToID( iProdID, iArrayIndex ){
  return getFieldFromMappings( iProdID, iArrayIndex, giCMCategoryID )
}
function getProductDescription( iProdID, iArrayIndex ){
  return getFieldFromMappings( iProdID, iArrayIndex, giCMCategoryDescription )
}

function matchCategoryToIQuestionnaire(){ return matchCategoryToID( getIQuestionnaireFromLocation(), giCMQuestionnaire ); }
function matchCategoryToIProcess(){ return matchCategoryToID( getIProcessParam(), giCMProcess ) }
function getParameterFromString( sIn, sParamName ){
  var sTag = sParamName + "=";
  var re = new RegExp( sTag + "[^&]+", "gim" );
  var match = sIn.match( re );
  var sOut = match? String( match ).replace( new RegExp( sTag, "gim" ), "" ): null;
  return sOut;
}
function getParameter( sParamName ){ return getParameterFromString( getSLocation(), sParamName ); }
function getTimeString(){ return getParameter( "TIMESTRING" ); }
function get_cm_mmc(){ return getParameter( "cm_mmc" ); }
function getQPageRE( sIn ){
  var sStart = "/questionnaire/QPage_"
  var sEnd = "_[0-9]+.asp";
  var sOut = sIn == -1? "": sStart + String( sIn ).replace( /\|/gi, sEnd + "|" + sStart ) + sEnd;
  return sOut;
}
function cmBSearchCategory( sCategory ){ return sCategory == gsCMSearchCategory; }
function cmBProvisionalPatent( sCategory ){ return sCategory == gsCMProvPatID; }
function getRightNowparam( sParamName ){
  var sTemp = unescape( getParameter( "sURL" ) );
  return getParameterFromString( sTemp, sParamName ) ;
}
function cmIGetRightNowSearchResults(){ return getParameter( "iSearchResults" ); }
function cmIGetLegalZoomSearchResults(){ 
  var iOut = 1;
  try{
    iOut = iSearchResultCount;
  } catch( e ){}
  return iOut;
}
function cmGetSearchResultsNumber( sCategory ){ 
  var bRightNow = cmBRightNowSearchResults();
  var iOut = bRightNow? cmIGetRightNowSearchResults(): cmIGetLegalZoomSearchResults();
  return cmBSearchCategory( sCategory )? iOut: null;
}
function cmBRightNowSearchResults(){ return getSLocation().match( new RegExp( gsCMSearchRightNowRE, "gim" ) ); }
function getLegalZoomSearchResultsTerm(){ return getParameter( "q" ); }
function getRightNowSearchResultsTerm(){ return getRightNowparam( "p_search_text" ); }
function cmGetSearchTerm( sCategory ){
  var bRightNow = cmBRightNowSearchResults();
  var sOut =  bRightNow? getRightNowSearchResultsTerm(): getLegalZoomSearchResultsTerm();
  return cmBSearchCategory( sCategory )? sOut: null;
}
function getPageMappingsLocation(){
  var sLocation = getSLocation();
  var re = new RegExp( document.location.protocol + "//" + document.location.host + "|" + document.location.hash, "gim" );
  var sOut = sLocation.replace( re, "" );
  sOut = sOut.replace( /\?.*$/gim, "" );
  return unescape( sOut ); 
}
function getFKProduct(){
  var iOut = giNotFound;
  try{
    iOut = fkProduct? fkProduct: iOut;
  } catch( e ){}
  return iOut;
}
function getPageMappings(){
  var oaFound = null;
  var sLocation = getPageMappingsLocation();
  var iProcess = getIProcessParam();
  var reProcess = new RegExp( "\\|" + iProcess + "\\|", "gim" );
  var bUseIProcess = sLocation.match( /\/Questionnaire\/bad_state.asp/gim );
  var reFKProduct = new RegExp( "\\|" + iFKProduct + "\\|", "gim" );
  var bUseFKProduct = sLocation.match( /\/questionnaire\/select_state_new.asp/gim );
  var iFKProduct = bUseFKProduct? getFKProduct(): -1;
  var bUseIQ = sLocation.match( /\/questionnaire\/review_answers.asp/gim );
  var iQuestionnaire = getIQuestionnaireFromLocation();
  var sFullPath = getSLocation();
  var reDomain = null;
  var matchDomain = null;
  var bUseQuestionnairePage = true;
  var sQPageRE = "";
  var sREQuestionnairePage = "";
  var reIQ = new RegExp( "\\|" + iQuestionnaire + "\\|", "gim" );
  var re = null;
  var sSearch = null;
  var iSearchResults = null;
  var sCategory = "UNK";
  for ( var i = 0; i < oaMappings.length; i++ ){
    if ( bUseQuestionnairePage ){
      sQPageRE = getQPageRE( oaMappings[ i ][ giCMQuestionnaire ] );
      sREQuestionnairePage = ( sQPageRE == ""? "": "|" ) + sQPageRE;
    }
    re = new RegExp( oaMappings[ i ][ giCMPath ] + sREQuestionnairePage, "gim" );
    reDomain = new RegExp( oaMappings[ i ][ giCMDomain ], "gim" );
    matchDomain = sFullPath.match( reDomain );
    if ( sLocation.match( re ) || 
         ( bUseIQ && String( "|" + oaMappings[ i ][ giCMQuestionnaire ] + "|" ).match( reIQ ) ) ||
         ( bUseFKProduct && String( "|" + oaMappings[ i ][ giCMProcess ] + "|" ).match( reFKProduct ) ) ||
         ( bUseIProcess && String( "|" + oaMappings[ i ][ giCMProcess ] + "|" ).match( reProcess ) ) ||
         ( matchDomain )
       ){
      oaFound = oaMappings[ i ];
      break;
    }
  }
  return oaFound;
}
function cmGetPageID( sLocation ){ 
  var reBusinessResources = new RegExp( cmGSBusinessResourcesDomain + "[\\/\\\\]*$");
  var sOut = sLocation.replace( /http[s]*:\/\/[^\/]+|\?.+$|file:\/\/\/C:/gi, "" );
  sOut = sLocation.match( reBusinessResources )? cmGSBusinessResourcesDomain: sOut;
  return sOut; 
}
function createPageViewTag(){
  var oaFound = getPageMappings();
  var sCategory = oaFound? oaFound[ giCMCategoryID ]: "UNK";
  var sSearch = cmGetSearchTerm( sCategory );
  var iSearchResults = cmGetSearchResultsNumber( sCategory )
  var sLocation = getSLocation();
  sLocation = cmGetPageID( sLocation );
  cmCreatePageviewTag( sLocation, sCategory, sSearch, iSearchResults );
}
function cmSetPurchaseLockDoSubmit(){
  var oaLinks = document.links;
  var reFound = /javascript:DoSubmit.+/gim;
  var sLink = "";
  var iTime = -1;
  var iQ = -1;
  var mFound = null;// will need to loop all the links.
  var iFound = -1;
  for ( var i = 0; i < oaLinks.length; i++ ){
    mFound = oaLinks[ i ].href.match( reFound );
    iFound = mFound? i: iFound;
    if ( mFound ){
      sLink = String( mFound ).replace( /javascript:/gim, "" );
      iTime = sLink.match( /TIMESTRING=[^&]+/gim );
      iTime = iTime? String( iTime ).replace( /TIMESTRING=/gim, "" ): -1;
      iQ = sLink.match( /iQ=[^&]+/gim );
      iQ = iQ? String( iQ ).replace( /iQ=/gim, ""  ): -1;
      if ( iTime == -1 ){
        iTime = getTimeString()
        iTime = iTime == ""? -1: iTime;
      }
      if ( iQ == -1 ){
        iQ = getParameter( "iQ" );
        iQ == ""? -1: iQ;
      }
      oaLinks[ iFound ].href = "javascript:cmPurchaseLockDoSubmit( " + iTime + ", " + iQ + " );" + sLink;
    }
  }
}
function cmGetPurchaseLockPricing(){ return iGrandTotal; }
function cmGetPurchaseLockCustomerOrder(){ return iOrder; }
function cmGetPurchaseLockQuantity(){ return 1; }
var gCMBTest = false;
var gbMBAttorneyAssistedPatent = false;
var gbMBBundled = false;

function cmSetBTest(){
  if ( xmlHttp.readyState == AJAX_LOADED ){	
	var sResponse = String( xmlHttp.responseText );  
    var bResponseError = getBResponseHasError( sResponse );
    gCMBTest = bResponseError? false: getBTestingFromResponse( sResponse );
  }
}
function cmSetAttorneyAssistedPatent( bIn ){ gbMBAttorneyAssistedPatent = bIn; }
function cmGetInfRequestExistingPageParams(){ return document.location.search; }
function cmGetInfRequestURL( sParams ){ return "/lib/coremetrics-get-inf.asp" + sParams; }
function cmProcessBTest(){
  var sParams = cmGetInfRequestExistingPageParams() + "&icmir=4";
  var sURL = cmGetInfRequestURL( sParams );
  var bAsync = true;
  sendAjaxRequest( sURL, "POST", "", bAsync, cmSetBTest );
}
function cmShouldSetShopTag( sCategoryID ){
  var bIsAttorneyAssistedPatent = false;
  var bProvisionalPatent = cmBProvisionalPatent( sCategoryID );
  var bOut = true;
  try{
    bIsAttorneyAssistedPatent = bAttorneyAssistedPatent;
  } catch( e ){
    bIsAttorneyAssistedPatent = gbMBAttorneyAssistedPatent;
  }
  bOut = ( sCategoryID != gsCMEntityNameCheck ) &&
         ( sCategoryID != gsCMDesignPatentID ) &&
         ( sCategoryID != gsCMBankruptcy ) &&
         ( !bProvisionalPatent || ( bProvisionalPatent && !bIsAttorneyAssistedPatent ) );
/*  
  var bOut = ( sCategoryID != gsCMEntityNameCheck ) &&
             ( sCategoryID != gsCMDesignPatentID ) &&
             ( !bBundledOrder ) &&
             ( !bProvisionalPatent || ( bProvisionalPatent && !bIsAttorneyAssistedPatent ) );
*/             
  return bOut;
}
function cmInHousePatent( sCategoryID ){
  var bOut = cmShouldSetShopTag( sCategoryID ) && cmBProvisionalPatent( sCategoryID );
  return bOut;
}
function getAttorneyAssistedTagInformation(){
  var sCategoryID = matchCategoryToID( giCMProvPatInHouseIQ, giCMQuestionnaire );
  var sProductID = sCategoryID;
  var sProductName = getProductDescription( giCMProvPatInHouseIQ, giCMQuestionnaire );
  return [ sCategoryID, sProductID, sProductName ]
}
function cmGetPurchaseLockIReopen(){
  var iOut = 0;
  try{
    iOut = cmGIReopen;
  }catch(e){}
  return iOut;
}
function getRevisionCategoryId( sCategoryID, iReopen ){ return iReopen && iReopen > 0? "Revision": sCategoryID; }
function getRevisionProductId( sProductID, iReopen ){ return sProductID + ( iReopen && iReopen > 0? " - REV": "" ); }
function getRevisionOrderNumber( iOrder, iReopen ){
  var sPrefix = 'R_';
  var reAlreadySet = new RegExp( sPrefix + "[0-9]+", "gim" );
  var sOut = String( iOrder );
  if ( iOrder && sOut != "" && iReopen && iReopen > 0 && !sOut.match( reAlreadySet ) ){
    sOut += sPrefix + iReopen;
  }
  return sOut;
}function cmPurchaseLockDoSubmit( iTime, iQ ){
  if ( !gCMBTest ){
    try{
      var iReopen = cmGetPurchaseLockIReopen();
      var iOrder = cmGetPurchaseLockCustomerOrder();
      var sOrder = getRevisionOrderNumber( iOrder, iReopen );
      var nGrandTotal = cmGetPurchaseLockPricing();
      var sCategoryID = matchCategoryToIQuestionnaire();
      var sProductID = sCategoryID;
      var sProductName = getProductDescription( getIQuestionnaireFromLocation(), giCMQuestionnaire );
      var iQuantity = cmGetPurchaseLockQuantity();

      var iAction = sgCMShopAction5Tag;
      var bAlreadySet = cmCheckActionFromCookie( sOrder, iReopen, sgCMShopAction5Tag );
      var bShouldSet = cmShouldSetShopTag(  sCategoryID );
      var bInHousePatent = cmInHousePatent( sCategoryID );
      sCategoryID = getRevisionCategoryId( sCategoryID, iReopen )
      sProductID = getRevisionProductId( sProductID, iReopen )
      if ( bInHousePatent ){
        var saPat = getAttorneyAssistedTagInformation();
        sCategoryID = saPat[ 0 ];
        sProductID = saPat[ 1 ];
        sProductName = saPat[ 2 ];
      }
      if ( !bAlreadySet && bShouldSet && nGrandTotal > 0 ){
        cmCreateShopAction5Tag( sProductID, sProductName, iQuantity, nGrandTotal, sCategoryID);
        cmDisplayShop5s();
        cmSetCookie( iOrder, iReopen, iAction );
      }
    } catch( e ){}
  }
}
function cmProcessPurchaseLock(){
  var sParams = cmGetInfRequestExistingPageParams() + "&icmir=5";
  var sURL = cmGetInfRequestURL( sParams );
  var bAsync = true;
  try{
    if ( window.addEventListener ){ 
      window.addEventListener( "load", cmSetPurchaseLockDoSubmit, false )
      cmProcessBTest();
    }else if ( document.attachEvent ){
      var bOK = window.attachEvent( "onload", cmSetPurchaseLockDoSubmit );
      cmProcessBTest();
    }
  }catch( e ){}
}
function cmGetOrderDoneUserID(){
  var sParam = getParameter( "TIMESTRING" );
  var sOut = sParam.substring( 0, 6 );
  return sOut;
}
function getValueFromResponse( sName, sIn ){
  var re = new RegExp( sName + "[^\|]+", "gim" );
  var reClean = new RegExp( sName + "=", "gim" );
  var match = sIn.match( re );
  var sOut = match? String( match ).replace( reClean, "" ): "";
  return sOut;
}
function getOrderIDFromResponse( sIn ){ return getValueFromResponse( "iOrder", sIn ); }
function getAttorneyAssistedPatentFromResponse( sIn ){ return getValueFromResponse( "bAttorneyAssistedPatent", sIn ).match( /true/gim ); }
function getBTestingFromResponse( sIn ){ return getValueFromResponse( "bTesting", sIn ).match( /true/gim ); }
function getUserIDFromResponse( sIn ){ return getValueFromResponse( "iUser", sIn ); }
function getEmailFromResponse( sIn ){ return getValueFromResponse( "sEmail", sIn ); }
function getBTestFromResponse( sIn ){ return getValueFromResponse( "bTesting", sIn ); }
function getResponseError( sIn ){ return getValueFromResponse( "error", sIn ); }
function getIReopenFromResponse( sIn ){ return getValueFromResponse( "iReopen", sIn ); }
function getSLegalFormsCategoryFromResponse( sIn ){ return getValueFromResponse( "sLegalFormCategory", sIn ); }
function getSLegalFormsDescriptionFromResponse( sIn ){ return getValueFromResponse( "sLegalFormDescription", sIn ); }

function getBResponseHasError( sIn ){ 
  var re = /<title>The page cannot be displayed<\/title>/,gim;
  var bNonResponse = sIn.match( re )? true: false;
  return bNonResponse || getResponseError( sIn ) != ""; 
}
function cmGetOrderDoneTotal(){
  var obj = document.getElementById( "iGrandTotal" );
  var re = /[0-9.]+/gim;
  var match = null;
  var sVal = "";
  var sOut = "0.00";
  try{
    sVal = obj.innerHTML;
    match = sVal.match( re );
    sOut = match? String( match ): sOut;
  } catch( e ){}
  return sOut;
}
function cmProcessOrderDone(){
  if ( xmlHttp.readyState == AJAX_LOADED ){	
	var sResponse = String( xmlHttp.responseText );  
    var bResponseError = getBResponseHasError( sResponse );
    var bAttorneyAssistedPatent = bResponseError? false: getAttorneyAssistedPatentFromResponse( sResponse );
    cmSetAttorneyAssistedPatent( bAttorneyAssistedPatent );
    var iReopen = getIReopenFromResponse( sResponse );
    var iOrder = getOrderIDFromResponse( sResponse );
    var sOrder = getRevisionOrderNumber( iOrder, iReopen );
    var bTesting = getBTestingFromResponse( sResponse );
    var iGrandTotal = getParameter( "iGrandTotal" );
    var iUser = getUserIDFromResponse( sResponse );

    var sCategory = getSLegalFormsCategoryFromResponse( sResponse );
    var sCategoryID = ( sCategory == ""? "": gsCMFormsID + " - " ) + 
                      ( sCategory == ""? matchCategoryToIQuestionnaire(): sCategory );
    var sProductID = sCategoryID;
    var sProductName = ( sCategory == ""? getProductDescription( getIQuestionnaireFromLocation(), giCMQuestionnaire ): sCategoryID );
    var iQuantity = cmGetPurchaseLockQuantity();
    var sEventID = sProductName;
    var sEventCategory = "Questionnaire";
    var iAction = sgCMShopAction9Tag;
    var bAlreadySet = cmCheckActionFromCookie( sOrder, iReopen, iAction );
    var bShouldSet = cmShouldSetShopTag( sCategoryID );
    var bTotalOK = false;
    sCategoryID = getRevisionCategoryId( sCategoryID, iReopen )
    sProductID = getRevisionProductId( sProductID, iReopen )
    if ( !bTesting && !bResponseError ){

      iGrandTotal = !iGrandTotal? 0: iGrandTotal;
      bTotalOK = ( iGrandTotal > 0 );
      if ( bShouldSet && !bAlreadySet && bTotalOK ){
        try{
          cmCreateShopAction9Tag( sProductID, sProductName, iQuantity, iGrandTotal, iUser, sOrder, iGrandTotal, sCategoryID );
          cmDisplayShop9s();
          cmCreateOrderTag( sOrder, iGrandTotal, "0.00", iUser );
          cmSetCookie( iOrder, iReopen, iAction );
        } catch( e ){}
      }
      iAction = sgCMConversionEventQuestionnaireEnd;
      bAlreadySet = cmCheckActionFromCookie( sOrder, iReopen, iAction );
      if ( !bAlreadySet ){
        cmCreateConversionEventTag( sEventID, igCMConversionEventComplete, sEventCategory );
        cmSetCookie( iOrder, iReopen, iAction );
      }
    }
  }
}
function cmSetProcessOrderDone(){
  var sParams = cmGetInfRequestExistingPageParams() + "&icmir=1,2,4,5,6,7,9";
  var sURL = cmGetInfRequestURL( sParams );
  var bAsync = true;
  sendAjaxRequest( sURL, "POST", "", bAsync, cmProcessOrderDone );
}
// ----------------------------------------------------------------- cookie routines - start
var sgCMCookieID = "cmtLZ";
var sgCMCookieOrderSep = "~";
var sgCMCookieItemSep = "|";
var sgCMCookieRevisionSep = "_";

var sgCMConversionEventQuestionnaireStart = 1;
var sgCMConversionEventQuestionnaireEnd = 2;
var sgCMShopAction5Tag = 3;
var sgCMShopAction9Tag = 4;

function cmGetCookie(){
  var re = new RegExp( sgCMCookieID + "[^;]+", "gim" );
  var match = document.cookie.match( re );
  return match? String( match ): "";
}
function cmCleanCookieID( sIn ){ return sIn.replace( new RegExp( sgCMCookieID + "=", "gim" ), "" ); }
function cmGetOrderCookieID( iOrder, iReopen ){
  var sOut = iOrder;
  if ( iReopen && iReopen > 0 ){
    sOut += sgCMCookieRevisionSep + iReopen;
  }
  return sOut;
}
function cmGetCookieByOrder( iOrder, iReopen  ){
  var re = new RegExp( "^" + cmGetOrderCookieID( iOrder, iReopen ) + "\\" + sgCMCookieItemSep, "gim" );
  var sCookie = cmCleanCookieID( cmGetCookie() );
  var saOrders = sCookie.split( sgCMCookieOrderSep );
  var sOut = "";
  for ( var i = 0; sOut == "" && i < saOrders.length; i++ ){
    sOut = saOrders[ i ].match( re )? saOrders[ i ]: sOut;
  }
  return sOut;
}
function cmCookieClear(){
  var dt = new Date();
  var sExpire = "";
  var sAction = "";
  var sCookie = sgCMCookieID + "=del"
  dt.setDate( dt.getDate() - 100 );
  sExpire = ( dt.getMonth() + 1 ) + "/" + dt.getDate() + "/" + dt.getFullYear()
  sCookie += ";expires=" + sExpire + ";path=/;";
  document.cookie = sCookie; 
}
function cmSetCookie( iOrder, iReopen, iAction ){
  var dt = new Date();
  var sExpire = "";
  var sAction = "";
  var sValue = "";
  var sOrigCookie = cmCleanCookieID( cmGetCookie() );
  var sOrderCookie = cmGetCookieByOrder( iOrder, iReopen );
  var reCleanSep = new RegExp( "^" + sgCMCookieOrderSep + "|" + sgCMCookieOrderSep + "$", "gim" );
  var reCleanOrderCookie = new RegExp( sOrderCookie, "gim" );
  var reCleanAction = new RegExp( "\\" + sgCMCookieItemSep + iAction, "gim" );
  var sCookie = sgCMCookieID + "="
  sOrigCookie = sOrigCookie.replace( sOrderCookie, "" );
  sOrigCookie = sOrigCookie.replace( reCleanSep, "" );
  sOrderCookie = sOrderCookie.replace( reCleanAction, "" );
  sAction = iAction + sgCMCookieItemSep;
  sOrderCookie = ( sOrderCookie == ""? cmGetOrderCookieID( iOrder, iReopen ) + sgCMCookieItemSep: sOrderCookie );
  sValue = ( sOrderCookie == "" && sOrigCookie == ""? cmGetOrderCookieID( iOrder, iReopen ) + sgCMCookieItemSep: sOrderCookie ) + sAction;
  sCookie += ( sOrigCookie == ""? "": sOrigCookie + sgCMCookieOrderSep ) + sValue;
  dt.setDate( dt.getDate() + 90 );
  sExpire = ( dt.getMonth() + 1 ) + "/" + dt.getDate() + "/" + dt.getFullYear()
  sCookie += ";expires=" + sExpire + ";path=/;";
  document.cookie = sCookie; 
}
function cmCheckActionFromCookie( iOrder, iReopen, sAction ){
  var sCookie = cmGetCookieByOrder( cmGetOrderCookieID( iOrder, iReopen ) );
  var re = new RegExp( "\\" + sgCMCookieItemSep + sAction + "\\" + sgCMCookieItemSep, "gim" );
  return sCookie.match( re );
}
// ----------------------------------------------------------------- cookie routines - end
function cmSetQuestionnaireConversionEventTag(){
  if ( xmlHttp.readyState == AJAX_LOADED ){	
	var sResponse = String( xmlHttp.responseText );  
    var bResponseError = getBResponseHasError( sResponse );
    var iOrder = getOrderIDFromResponse( sResponse );
    var bTesting = getBTestingFromResponse( sResponse );
    var iReopen = getIReopenFromResponse( sResponse );
    var sOrder = getRevisionOrderNumber( iOrder, iReopen );
    var sEventID = getProductDescription( getIQuestionnaireFromLocation(), giCMQuestionnaire );
    var sEventCategory = "Questionnaire";
    var oaPageInf = getPageMappings();
    var sProductID = oaPageInf? oaPageInf[ giCMCategoryID ]: "";
    var sProductName = oaPageInf? oaPageInf[ giCMCategoryDescription ]: "";
    var sCategoryID = sProductID; //oaPageInf? oaPageInf[ giCMCategoryParentID ]: "";
    var bTrack = true;
    var iAction = sgCMConversionEventQuestionnaireStart;
    var bAlreadySet = cmCheckActionFromCookie( sOrder, iReopen, iAction );
    if ( !bTesting && !bResponseError ){
      if ( !bAlreadySet ){
        cmCreateConversionEventTag( sEventID, igCMConversionEventStart, sEventCategory );
        cmCreateProductviewTag( sProductID, sProductName, sCategoryID )
        cmSetCookie( iOrder, iReopen, iAction )
      }else{
        var sLocation = cmGetPageID( getSLocation() );
        cmCreatePageviewTag( sLocation, sProductID, null, null );
      }
    }  	  
  } 
}
function cmProcessQuestionnaireConversionEventTag(){
  var sParams = cmGetInfRequestExistingPageParams() + "&icmir=1,4,7";
  var sURL = cmGetInfRequestURL( sParams );
  var bAsync = true;
  sendAjaxRequest( sURL, "POST", "", bAsync, cmSetQuestionnaireConversionEventTag );
}
var cmsg500ErrorStr = "That Page Contains an Error";
var cmsg404ErrorStr = "That Page Does Not Exist";

function cmGetErrorRE(){ return new RegExp( cmsg500ErrorStr + "|" + cmsg404ErrorStr, "gim" ); }
function cmSetErrorTag(){
  var sLocation = getSLocation();
  var oaFound = getPageMappings();
  var mError = document.title.match( cmGetErrorRE() );
  var sCategory = "ERROR";
  sLocation = cmGetPageID( sLocation );
  if ( mError ){
    sLocation += mError[ 0 ].match( new RegExp( cmsg500ErrorStr, "gim" ) )? " - 500": " - 404";
  }
  cmCreateErrorTag( sLocation, sCategory )  
}
function cmBErrorPage(){
  return document.title.match( cmGetErrorRE() )? true: false;
}
function cmMyAccountProfileSubmit(){
  var bOut = true;
  try{
  var oForm = document.forms[ "frmMain" ];
  var iCustomerID = cmGIUserID;
  var sCustomerEmail = cmGSEmail;
  var sCustomerCity = oForm.elements[ "sContactCity" ].value;
  var sCustomerState = oForm.elements[ "sContactState" ].value;
  var sCustomerZip = oForm.elements[ "sContactZip" ].value;
  cmCreateRegistrationTag( iCustomerID, sCustomerEmail, sCustomerCity, sCustomerState, sCustomerZip );
  } catch( e ){}
  return bOut;
}
function cmSetMyAccountProfileSubmit(){
  var oaLinks = document.links;
  var reFound = /javascript:document.frmMain.submit.+/gim;
  var sLink = "";
  var mFound = null;// will need to loop all the links.
  var iFound = -1;
  for ( var i = 0; i < oaLinks.length; i++ ){
    mFound = oaLinks[ i ].href.match( reFound );
    iFound = mFound? i: iFound;
    if ( mFound ){
      sLink = String( mFound ).replace( /javascript:/gim, "" );
      oaLinks[ iFound ].href = "javascript:cmMyAccountProfileSubmit();" + sLink;
    }
  }
}
var cmGIUserIDNone = -1;
var cmGIUserID = cmGIUserIDNone;
var cmGSEmail = "";
function cmRequestUserID(){
  if (xmlHttp.readyState == AJAX_LOADED) {	
	var sResponse = xmlHttp.responseText;  
    var bResponseError = getBResponseHasError( sResponse );
    cmGIUserID = bResponseError? cmGIUserIDNone: getUserIDFromResponse( sResponse );
    cmGSEmail  = bResponseError? "": getEmailFromResponse( sResponse );
  }  	  
}
function cmProcessRegistration(){
  try{
    sendAjaxRequest( cmGetInfRequestURL( "?icmir=2,3" ), "POST", "", true, cmRequestUserID );
    if ( window.addEventListener ){ 
      window.addEventListener( "load", cmSetMyAccountProfileSubmit, false )
    }else if ( document.attachEvent ){
      var bOK = window.attachEvent( "onload", cmSetMyAccountProfileSubmit );
    }
  }catch( e ){}
}
function cmGetLegalFormsCheckoutPrice(){
  var nOut = 0.00;
  try{
    nOut = nPrice;
  } catch( e ){}
  return nOut;
}
function cmSetLegalFormsCheckoutTags(){
  if (xmlHttp.readyState == AJAX_LOADED) {	
	var sResponse = xmlHttp.responseText;  
    var bResponseError = getBResponseHasError( sResponse );
    var sEventCategory = "Questionnaire";
    var sEventID = getProductDescription( getIQuestionnaireFromLocation(), giCMQuestionnaire );
    var iOrder = getOrderIDFromResponse( sResponse );
    var bTest = getBTestFromResponse( sResponse );
    var nPrice = cmGetLegalFormsCheckoutPrice();
    var sCategory = getSLegalFormsCategoryFromResponse( sResponse );
    var sDescription = getSLegalFormsDescriptionFromResponse( sResponse );
    var sCategoryID = gsCMFormsID + ( sCategory == ""? "": " - " ) + sCategory;
    var sProductID = sCategoryID;
    var sProductName = sCategoryID;
    var iQuantity = cmGetPurchaseLockQuantity();
    var iAction = sgCMShopAction5Tag;
    var iReopen = 0;
    var bAlreadySet = cmCheckActionFromCookie( iOrder, iReopen, sgCMShopAction5Tag );
    //sCategoryID = getRevisionCategoryId( sCategoryID, iReopen )
    sCategoryID = getRevisionCategoryId( sProductID, iReopen )
    sProductID = getRevisionProductId( sProductID, iReopen )
    if ( !bTest && !bAlreadySet && !bResponseError && nPrice > 0 ){
      //cmCreateConversionEventTag( sEventID, igCMConversionEventStart, sEventCategory );
      cmCreateProductviewTag( sProductID, sProductName, sCategoryID )
      cmSetCookie( iOrder, iReopen, iAction );
      iAction = sgCMShopAction5Tag;
      cmCreateShopAction5Tag( sProductID, sProductName, iQuantity, nPrice, sCategoryID );
      cmDisplayShop5s();
      cmSetCookie( iOrder, iReopen, iAction );
      }else{
        var sLocation = cmGetPageID( getSLocation() );
        cmCreatePageviewTag( sLocation, sProductID, null, null );
      }
  }  	  
}
function cmProcessLegalFormsCheckout(){
  var sParams = cmGetInfRequestExistingPageParams() + "&icmir=1,4,9";
  var sURL = cmGetInfRequestURL( sParams );
  var bAsync = true;
  sendAjaxRequest( sURL, "POST", "", bAsync, cmSetLegalFormsCheckoutTags );
}
function cmSetLegalFormsTag(){
  if (xmlHttp.readyState == AJAX_LOADED) {	
	var sResponse = xmlHttp.responseText;  
    var bResponseError = getBResponseHasError( sResponse );
    var bTesting = getBTestingFromResponse( sResponse );
    var oaPageInf = getPageMappings();
    var sProductID = oaPageInf? oaPageInf[ giCMCategoryID ]: "";
    var sProductName = oaPageInf? oaPageInf[ giCMCategoryID ]: "";
    var sCategory = getSLegalFormsCategoryFromResponse( sResponse );
    //var sCategoryID = gsCMFormsID + ( sCategory == ""? "": " - " ) + sCategory;
    var sCategoryID = gsCMFormsID + ( sCategory == ""? "": " - " ) + sProductID;
    var sEventCategory = sCategoryID;
    var sEventID = gsCMFormsDescription;
    var sOrder = sCategory;
    var iReopen = "";
    var iAction = sgCMConversionEventQuestionnaireStart;
    var bAlreadySet = cmCheckActionFromCookie( sOrder, iReopen, iAction );
    if ( !bTesting && !bResponseError ){
      if ( !bAlreadySet ){
        cmCreateConversionEventTag( sEventID, igCMConversionEventStart, sEventCategory );
        cmCreateProductviewTag( sProductID, sProductName, sCategoryID )
        cmSetCookie( sOrder, iReopen, iAction )
      }else{
        var sLocation = cmGetPageID( getSLocation() );
        cmCreatePageviewTag( sLocation, sProductID, null, null );
      }
    }  	  
  }
}
function cmProcessLegalForms(){
  var sExistingParams = cmGetInfRequestExistingPageParams()
  var sParams = sExistingParams + ( sExistingParams == ""? "?": "&" ) + "icmir=4,8";
  var sURL = cmGetInfRequestURL( sParams );
  var bAsync = true;
  sendAjaxRequest( sURL, "POST", "", bAsync, cmSetLegalFormsTag );
}

/* --------------------------------------- ra renewal tracking start -------------------------------------------------------- */
var cmRArenewalOrderSep = "~"
var cmRArenewalAmountSep = "|"
function cmRARenewalCleanOrders( sIn ){
  var reClean = new RegExp( "^" + cmRArenewalOrderSep + "|" + cmRArenewalOrderSep + "$", "gim" );
  return sIn.replace( reClean, "" );
}
function cmRARenewalSplitOrders( sIn ){
  var saOut = [];
  sIn = cmRARenewalCleanOrders( sIn );
  saOut = sIn.split( cmRArenewalOrderSep );
  return saOut;
}
function cmRARenewalSlitOrderInf( sIn ){
  var saOut = [];
  saOut = sIn.split( cmRArenewalAmountSep );
  return saOut;
}
function cmRARenewalShouldSetShopTag( sCategoryID, iOrder, iReopen, sTag, nAmount ){
  var bAlreadySet = cmCheckActionFromCookie( iOrder, iReopen, sTag );
  var bShouldSetBasedOnCategory = cmShouldSetShopTag(  sCategoryID );
  var bAmountOK = !isNaN( nAmount ) && nAmount > 0;
  return !bAlreadySet && bShouldSetBasedOnCategory && bAmountOK;
}
function cmRARenewalPurchaseLock( sOrders, iUser ){
  var saOrders = cmRARenewalSplitOrders( sOrders )
  var saOrder = [];
  var iOrder = "";
  var nAmount = "";
  var sCategoryID = gsCMRARenewal;
  var sProductID = sCategoryID;
  var sProductName = sCategoryID;
  var iQuantity = cmGetPurchaseLockQuantity();
  var iReopen = cmGetPurchaseLockIReopen();
  var iAction = sgCMShopAction5Tag;
  var bPageViewSet = false;
  for ( var i = 0; i < saOrders.length; i++ ){
    saOrder = cmRARenewalSlitOrderInf( saOrders[ i ] );
    if ( saOrder.length == 2 ){
      iOrder = saOrder[ 0 ];
      nAmount = saOrder[ 1 ];
      if ( cmRARenewalShouldSetShopTag( sCategoryID, iOrder, iReopen, iAction, nAmount ) ){
        try{
          cmCreateShopAction5Tag( sProductID, sProductName, iQuantity, nAmount, sCategoryID );
          cmDisplayShop5s();
          cmCreateProductviewTag( sProductID, sProductName, sCategoryID );
          cmSetCookie( iOrder, iReopen, iAction );
        } catch( e ){}
      }else if ( !bPageViewSet ){
        createPageViewTag();
        bPageViewSet = true;
      }
    }
  }
}
function cmRARenewalOrderDone( sOrders, iUser ){
  var saOrders = cmRARenewalSplitOrders( sOrders )
  var saOrder = [];
  var iOrder = "";
  var nAmount = "";
  var sCategoryID = gsCMRARenewal;
  var sProductID = sCategoryID;
  var sProductName = sCategoryID;
  var iQuantity = cmGetPurchaseLockQuantity();
  var iReopen = cmGetPurchaseLockIReopen();
  var iAction = sgCMShopAction9Tag;
  for ( var i = 0; i < saOrders.length; i++ ){
    saOrder = cmRARenewalSlitOrderInf( saOrders[ i ] );
    if ( saOrder.length == 2 ){
      iOrder = saOrder[ 0 ];
      nAmount = saOrder[ 1 ];
      if ( cmRARenewalShouldSetShopTag( sCategoryID, iOrder, iReopen, iAction, nAmount ) ){
        try{
          cmCreateShopAction9Tag( sProductID, sProductName, iQuantity, nAmount, iUser, iOrder, nAmount, sCategoryID );
          cmDisplayShop9s();
          cmSetCookie( iOrder, iReopen, iAction );
          cmCreateOrderTag( iOrder, nAmount, "0.00", iUser );
          cmSetCookie( iOrder, iReopen, iAction );
        } catch( e ){}
      }
    }
  }
}
/* --------------------------------------- ra renewal tracking end   -------------------------------------------------------- */
/* --------------------------------------- page element tracking start   -------------------------------------------------------- */
var gsCMPageElementTagCookieName = "cmPET";
var gsCMCMPageElementVideoCategoy = "Video Page Element";
function cmGetSetPageElementCookie(){
  var sAllCookies = document.cookie;
  var reGet = new RegExp( gsCMPageElementTagCookieName + "[^;]+", "gim" );
  var reClean = new RegExp( gsCMPageElementTagCookieName + "|;", "gim" );
  var match = sAllCookies.match( reGet );
  var sPageElementCookie = match? String( match ): "";
  var sOut = sPageElementCookie.replace( reClean, "" );
  return sOut;
}
function cmSetPageElementCookieAlreadSet( sIn ){
  var sCookie = cmGetSetPageElementCookie();
  var re = new RegExp( "[|]*" + sIn + "[|]*", "gim" );
  return sCookie.match( re );
}
function cmSetPageElementCookie( sIn ){
  var dt = new Date();
  var sExpire = "";
  var sAction = "";
  var sValue = "";
  var sOrigCookie = cmGetSetPageElementCookie();
  var reOrderCookieClean = new RegExp( "[|]*" + sIn + "[|]*", "gim" );
  var sOrderCookie = sOrigCookie.replace( reOrderCookieClean, "" );
  var sCookie = gsCMPageElementTagCookieName + "="
  sValue = sOrderCookie + ( sOrderCookie == ""? sIn : "|" + sIn );
  sValue = sValue.replace( /^[|]+|[|]+$|^[=]+/gim, "" )
  sCookie += sValue
  dt.setDate( dt.getDate() + 90 );
  sExpire = ( dt.getMonth() + 1 ) + "/" + dt.getDate() + "/" + dt.getFullYear()
  sCookie += ";expires=" + sExpire + ";path=/;";
  if ( !cmSetPageElementCookieAlreadSet( sIn ) ){
    document.cookie = sCookie; 
  }
}
function cmTrackFlashPlayExt( sVideoLink ){
  var sFilename = String( sVideoLink.match( /[^\/\\]+$/gim ) ).replace( /\..*$/gim, "" ).toLowerCase();
  var saVideos = [];
      saVideos[ "llc_3step" ] =  "Vid2_LLC_123";
      saVideos[ "llc_comparison" ] =  "Vid2_LLC_Comp";
      saVideos[ "llc_edupod" ] =  "Vid2_LLC_Edu";
      saVideos[ "llc_overview" ] =  "Vid2_LLC_Over";
      saVideos[ "llc_pricing" ] =  "Vid2_LLC_Price";
      saVideos[ "llc_purchase" ] =  "Vid2_LLC_Purchase";
      saVideos[ "llc_sem" ] =  "Vid2_LLC_SEM";
      saVideos[ "wills_3step" ] =  "Vid2_LWT_123";
      saVideos[ "wills_comparison" ] =  "Vid2_LWT_Comp";
      saVideos[ "wills_edupod" ] =  "Vid2_LWT_Edu";
      saVideos[ "wills_overview" ] =  "Vid2_LWT_Over";
      saVideos[ "wills_pricing" ] =  "Vid2_LWT_Price";
      saVideos[ "wills_purchase" ] =  "Vid2_LWT_Purchase";
      saVideos[ "wills_sem" ] =  "Vid2_LWT_SEM";
  var sElementID = saVideos[ sFilename ];
  if ( sElementID != "" && !cmSetPageElementCookieAlreadSet( sElementID ) ){
    cmCreatePageElementTag( sElementID, gsCMCMPageElementVideoCategoy );  
    cmSetPageElementCookie( sElementID );    
  }
}
  var gscmVideoPagesPurchPageID = "Purch";
  var gscmVideoPagesPurch = "Vid2_" + gscmVideoPagesPurchPageID;
  var gsaVideoPages = [];
      gsaVideoPages[ "summary-compare-business-formations.html" ] = "Vid2_LLC_Comp";
      gsaVideoPages[ "wills-3-step-process.html" ] = "Vid2_LWT_123";
      gsaVideoPages[ "wills-overview.html" ] = "Vid2_LWT_Over";
      gsaVideoPages[ "wills-pricing.html" ] = "Vid2_LWT_Price";
      gsaVideoPages[ "limited-liability-company-3-step-process.html" ] = "Vid2_LLC_123";
      gsaVideoPages[ "limited-liability-company-overview.html" ] = "Vid2_LLC_Over";
      gsaVideoPages[ "limited-liability-company-pricing.html" ] = "Vid2_LLC_Price";
      gsaVideoPages[ "limited-liability-company-edu-center.html" ] = "Vid2_LLC_Edu";
      //gsaVideoPages[ 'llcpage.html' ] = "Vid2_LLC_SEM";
      //gsaVideoPages[ "last-will-and-testament.html" ] = "Vid2_LWT_SEM";
      gsaVideoPages[ "summary-compare-wills.html" ] = "Vid2_LWT_Comp";
      gsaVideoPages[ "importance-of-wills.html" ] = "Vid2_LWT_Edu";
      gsaVideoPages[ "review_purchase.asp" ] =  gscmVideoPagesPurch;
        // if you don't get a parameter passed to this routine you will have to grab the iP or iQ
      // these are added to avoid conflict with the SEM/TSA Test.
      gsaVideoPages[ 'llcpage.html' ] = "SEM_TSA_LLC_SEM";
      gsaVideoPages[ "last-will-and-testament.html" ] = "SEM_TSA__LWT_SEM";
function cmTrackFlashGetPurchPageTag( sIn ){
  var sOut = sIn;
  var saPurchProducts = [];
      saPurchProducts[ 27 ] = "LLC";
      saPurchProducts[ 49 ] = "LWT";
  var sProduct = "";
  var rePurchTag = new RegExp( gscmVideoPagesPurchPageID, "gim" );
  var iQ = -1;
  if ( sIn == gscmVideoPagesPurch ){
    iQ = getIQuestionnaireFromLocation();
    sProduct = saPurchProducts[ iQ ];
    sOut = sOut.replace( rePurchTag, sProduct + "_" + gscmVideoPagesPurchPageID )
  }
  return sOut;
}
function cmTrackFlashPlay(){
  var sPage = getSLocation().replace( /^.*[\\//]+|\?.*$/gim, "" ).toLowerCase();
  var sElementID = gsaVideoPages[ sPage ];
  sElementID = cmTrackFlashGetPurchPageTag( sElementID );
  if ( sElementID != "" && !cmSetPageElementCookieAlreadSet( sElementID ) ){
    cmCreatePageElementTag( sElementID, gsCMCMPageElementVideoCategoy );
    cmSetPageElementCookie( sElementID );
  }
}
function cmTrackFlashDisplay(){
  var sElementTag = "_display"
  var sPage = getSLocation().replace( /^.*[\\//]+|\?.*$/gim, "" ).toLowerCase();
  var sElementID = gsaVideoPages[ sPage ];
  sElementID = cmTrackFlashGetPurchPageTag( sElementID );
  sElementID += sElementID && sElementID != ""? sElementTag: "";
  if ( sElementID != "" && !cmSetPageElementCookieAlreadSet( sElementID ) ){
    cmCreatePageElementTag( sElementID, gsCMCMPageElementVideoCategoy );
    cmSetPageElementCookie( sElementID );
  }
}
/* --------------------------------------- signup tracking start -------------------------------------------------------- */
function cmTrackSignupRegistration( iUser, sEmail){
  try{
    cmCreateRegistrationTag( iUser, sEmail );
  } catch( e ){}
}
/* --------------------------------------- signup tracking end   -------------------------------------------------------- */
function cmTrackClick( sEventID, iActionType, sEventCategoryID ){
  cmCreateConversionEventTag( sEventID, iActionType, sEventCategoryID );
}

function cmProcessAdditionalTags(){
  var sLocation = getSLocation();
  var rePLPage = /[\/\\]+checkout[\/\\]+purchase_lock|[\/\\]+checkout[\/\\]+revision_check/gim;
  var rePLPageIgnore = /[\/\\]+checkout[\/\\]+purchase_lock-packages/gim;
  var mPLMatch = sLocation.match( rePLPage );
  var mPLMatchIgnore = sLocation.match( rePLPageIgnore );
  var reLegalFormsCheckout = /\/checkout\/checkout.asp/gim;
  var mLegalFormsCheckout = sLocation.match( reLegalFormsCheckout ) && getParameter( "iQ" ) == 240;
  var reQuestionnaire = /[\/\\]+questionnaire[\/\\]+QPage_[0-9]+_[1-2]{1}.asp/gim;
  var mQuestionnaire = sLocation.match( reQuestionnaire );
  var reOrderDonePage = /[\/\\]+finished[\/\\]+order_done/gim;
  //var reOrderDonePage = /[\/\\]+checkout[\/\\]+review_purchase/gim;
  var mOrderDone = sLocation.match( reOrderDonePage );
  var reForms = new RegExp( gsCMFormsPath, "gim" );
  var reFormsIgnore = new RegExp( gsCMFormsPath + "home.html", "" );
  var mForms = sLocation.match( reForms ) && !sLocation.match( reFormsIgnore );
  var bError = cmBErrorPage();
  var reRegistration = /[\/\\]+members[\/\\]+my_account_profile.asp/gim;
  var mRegistration = sLocation.match( reRegistration );
  var reIgnoreForPageViewTag = /[\/\\]+RARENEWALS[\/\\]+Purchase/gim;
  var bIgnoreForPageViewTag = sLocation.match( reIgnoreForPageViewTag );
  if ( mPLMatch && !mPLMatchIgnore ){
    cmProcessPurchaseLock();
    createPageViewTag();
  }else if ( mOrderDone ){
    //cmProcessBTest();
    cmSetProcessOrderDone();
    createPageViewTag();
  }else if ( mQuestionnaire ){
    cmProcessQuestionnaireConversionEventTag();
  }else if ( bError ){
    cmSetErrorTag();
  }else if ( mRegistration ){
    cmProcessRegistration();
  } else if ( mLegalFormsCheckout ){
    cmProcessLegalFormsCheckout();
  } else if ( mForms ){
    cmProcessLegalForms();
  }else if ( !bIgnoreForPageViewTag ){
    createPageViewTag();
  }
}
cmProcessAdditionalTags();
