var PartnerDomainsXmlDocPath = "/global/xml/partners.xml"; var CookieName = "aid"; var Delimiter = "|"; $(document).ready(function() { InitiatePartnerFeature(); }); function InitiatePartnerFeature() { var affiliateId = GetCookie(CookieName); if (affiliateId > 0) { var partnerDomainsDelimited = GetDelimitedPartnerDomains(); UpdatePartnerLinks(affiliateId, partnerDomainsDelimited); } }
function UpdatePartnerLinks(affiliateId, partnerDomainsDelimited) { $('a').each(function() { if (document.domain != null && document.domain != '') { var url = $(this).attr('href'); if (url != null && url.indexOf('http://') == 0 && url.indexOf('aid=') == -1) { var domain = url.split('/')[2].replace('www.', ''); if (domain != document.domain.replace('www.', '') && partnerDomainsDelimited.indexOf(Delimiter + domain + Delimiter) > -1) { $(this).attr('href', AppendAffiliateQs(url, affiliateId)); } } } }); }
function AppendAffiliateQs(url, affiliateId) { var qsAddOn = '?'; if (url.indexOf('?') > -1) { qsAddOn = '&'; } return url + qsAddOn + 'aid=' + affiliateId; }
function GetDelimitedPartnerDomains() { var output = Delimiter; $.ajax({ url: PartnerDomainsXmlDocPath, data: "", dataType: "xml", async: false, success: function(xml) { $(xml).find("domain").each(function() { output += $(this).text() + Delimiter; }); } }); return output; } 
function GetCookie(name) { var start = document.cookie.indexOf(name + "="); var len = start + name.length + 1; if ((!start) && (name != document.cookie.substring(0, name.length))) { return 0; } if (start == -1) { return 0; } var end = document.cookie.indexOf(";", len); if (end == -1) { end = document.cookie.length; } return unescape(document.cookie.substring(len, end)); }