/**
 * Created by JetBrains PhpStorm.
 * User: bhughes
 * Date: 9/15/11
 * Time: 10:12 AM
 * To change this template use File | Settings | File Templates.
 */
/**
 *
var partnersoftArgs = {
    a: 'affiliateId'
    , s: 'siteTag'
    , t: 'tour'
    , mod: 'unknown'
    , ad: 'unknown'
    , cmp: 'campaignId'
    , u1: 'unknown'
    , u2: 'unknown'
    , u3: 'unknown'
    , u4: 'unknown'
    , u5: 'unknown'
    , pr: 'program'
    , p: 'main'
    , r: 'referrer'
    , cc: 'countryCode'
    , proc: 'unknown'
};
 */


var partnersoftifyClass = 'partnersoftify';
var partnersoftUrl = 'http://partners.bangbrosonline.com/ct/imgcount.php?';
var partnersoftUrlPattern =  /\/([A-Za-z0-9_-]*)=([A-Za-z0-9_-]*)((,|%2C)([A-Za-z0-9_-]*))?((,|%2C)([A-Za-z0-9_-]*))?/i;
var partnersoftUrlGetParamProgram = 'program';
var partnersoftUrlGetParamAffiliate = 'affiliate';
var partnersoftUrlGetParamCampaign = 'campaign';
var partnersoftUrlGetParamTour = 'tour';

jQuery('document').ready(function() {
    partnersoftCheck();
    partnersoftifyLinks();
    partnersoftPixel();
});

function partnersoftCheck() {
    var url = window.document.location.href;
    var matches = partnersoftUrlPattern.exec(url);
    if(null!=matches) {
        partnersoftArgs['pr'] = (matches[1]) ? matches[1] : '';
        partnersoftArgs['a'] = (matches[2]) ? matches[2] : '';
        partnersoftArgs['cmp'] = (matches[5]) ? matches[5] : '';
        partnersoftArgs['mod'] = (matches[8]) ? matches[8] : '';
        partnersoftArgs['r'] = document.referrer;
    }
}

function partnersoftifyLinks() {
    if(hasPartnersoft()) {
        jQuery('a.' + partnersoftifyClass).each(function() {
            var anchor = jQuery(this)
            var url = anchor.attr('href');
            var newUrl = appendJoinFormParams(url);
            anchor.attr('href', newUrl);
        });

        jQuery('form.'+partnersoftifyClass).each(function() {
            var cform = jQuery(this);
            var url = cform.attr('action');
            var newUrl = appendJoinFormParams(url);
            cform.attr('action', newUrl);
        });
    }
}

function partnersoftPixel() {
    if(hasPartnersoft()) {
        var domImg = document.createElement('img');
        var img = jQuery(domImg);
        var src = appendPartnersoftParams(partnersoftUrl)
        img.attr('src', src);
        jQuery('body').append(img);
    }
}

function hasPartnersoft() {
    return (null!=partnersoftArgs) ? true: false;
}

function appendPartnersoftParams(url) {
    var params = '';

    // Partnersoft
    for(var prop in partnersoftArgs) {
        params += prop + '=' + encodeURIComponent(partnersoftArgs[prop]) + '&';
    }

    var qs = url.indexOf('?');
    var separator = (qs==-1) ? '?' : '&';
    var newUrl = url + separator + params;
    
    return newUrl;
}

function appendJoinFormParams(url) {
    var params = '';

    // Payment API
    params += partnersoftUrlGetParamProgram + "=" + encodeURIComponent(partnersoftArgs.pr)
                    + "&" + partnersoftUrlGetParamAffiliate + "=" + encodeURIComponent(partnersoftArgs.a)
                    + "&" + partnersoftUrlGetParamCampaign + "=" + encodeURIComponent(partnersoftArgs.cmp);
                    + "&" + partnersoftUrlGetParamTour + "=" + encodeURIComponent(partnersoftArgs.t);

    var qs = url.indexOf('?');
    var separator = (qs==-1) ? '?' : '&';
    var newUrl = url + separator + params;

    return newUrl;
}

