/*
 * Monotaro User Targeting Script
 */

(function($) {
    var name_space = 'monotaroUserTargeting';
    var class_name = 'user_targeting';

    $.fn[name_space] = function(options) {

        // 設定情報の構築
        var settings = $.extend({
            // プラグインの初期値を設定
        }, options);

        // ABテスト
        var startUserTargeting = function(el, params) {
            var now = new Date();
            var nowStr = $.monotaro.date_format(now, 'yyyy/MM/dd');
            var el_id= el.get(0).id;
            var name = params.name;
            var value = params.value;
            var from = params.from;
            var to = params.to;
            $.monotaro.debug('UserTargeting start '+ el_id + ' : ' + value);
            var def_value = null;
            eval('if (typeof ' + name + ' != "undefined") { def_value = ' + name + ' }');

            if (value == def_value && nowStr >= from && nowStr <= to) {
                $.monotaro.debug(value);
                el.show();
                uc = '/virtual/monotaro_user_targeting/'+ el_id + '/' + value;
                var uc_label = el_id + '_' + value;
                $.monotaro.debug('Throw UC:' + uc);
                //urchinTracker(uc);
                $.monotaro.track_event('event', 'imp', uc_label);
            }
        };

        // ABTestの属性値をパラメータとして取得
        var getUserTargetingParameters = function(el) {
            var attrs = el.get(0).attributes;
            var params = {};
            for (var i=0; i<attrs.length; i++) {
                var attr = attrs[i];
                var attr_name = attr.nodeName;
                var attr_value = attr.value;
                var param_name = attr_name.match(/^ut_(.*)$/);
                if (param_name) {
                    params[param_name[1]] = attr_value;
                }
            }
            return params;
        };

        // 対象の要素に対して処理実行
        this.each(function() {
            var params = $.extend({}, settings, getUserTargetingParameters($(this)));
            startUserTargeting($(this), params);
        });

        //method chain
        return this;
    };

    // 起動時処理
    $(function(){
        $('.'+class_name)[name_space]();
    });

})(jQuery);
