// project namespace
var IHC = {};

(function () {

    var promoRefs = {
        "1209" : "nnm.ru",
        "1507" : "hostobzor.ru",
        "1531" : "forum.searchengines.ru"
    };

    var date = new Date(),
        // тестовый шаблон для проверки наличия параметров в адресе
        searchRx = /^[^?]+\?.*$/,
        // тестовый шаблон для проверки наличия кода партнера в адресе
        partnerRx = /^[^?]+\?(.+&)?ref=(\d+).*$/,
        // тестовый шаблон для проверки ссылки в панель управления
        panelUrlRx = /\/cp.ihc.ru(:\d+)?\//,
        // ID партнера из адреса страницы
        ref = window.location.toString().match(partnerRx);

    // 6 месяцев вперед
    date.setMonth(date.getMonth() + 6);

    if (ref && ref.length === 3) {
        ref = ref[2];
    } else {
        // вытаскиваем из куки
        ref = $.cookies.get("ref");
        // проверяем список партнеров
        $.each(promoRefs, function (id, domain) {
            var testDomain = new RegExp(domain);
            if (testDomain.test(document.referrer || "")) {
                ref = id;
                return false;
            }
        });
    }

    if (ref) {
        // обновляем куку, если нашли ref
        $.cookies.set("ref", ref, {expiresAt: date});
    }

    IHC.setRef = function (ele) {
        var anchor, href;
        if (ref && ele) {
            anchor = $(ele);
            href = anchor.attr("href") || "";
            if (anchor.is("a") && panelUrlRx.test(href) && !partnerRx.test(href)) {
                anchor.attr("href", href + (searchRx.test(href) ? "&" : "?") + "ref=" + ref);
            }
        }
    };

    // контрольный выстрел по недопатченным ссылкам
    $(function () {
        $("a").each(function () {
            IHC.setRef(this);
        });
    });

}());
