$(document).on('ready', function () {

    dlConfig = JSON.parse(dlConfig);
    var event = (/iphone|ipad/gi).test(navigator.appVersion) ? "touchstart" : "mousedown";
    $(document).on(event, '[data-dl-role]', function (e) {
        if (([1, 2, 0].indexOf(e.which) > -1) || e.originalEvent == undefined) {
            e.stopPropagation();
            var $target = $(this);
            if ($target.data('dl-role') && dlConfig.hasOwnProperty($target.data('dl-role'))) {
                if ($target.data('one-click') && $target.data('count-click') != 0) {return false;}

                var data = JSON.parse(JSON.stringify(dlConfig[$target.data('dl-role')]));

                for (var prop in data) {
                    var eventLabel = prop.toLowerCase();

                    if ($target.data('dl-e-' + eventLabel)) {
                        data[prop] = $target.data('dl-e-' + eventLabel);
                    }
                }

                var date = new Date();

                var month   = addZero(date.getMonth() + 1);
                var day     = date.getDate();
                var year    = date.getFullYear();
                var hour    = addZero(date.getHours());
                var minutes = addZero(date.getMinutes());
                var seconds = addZero(date.getSeconds());

                var dates = [month, day, year];
                var times = [hour, minutes, seconds];

                data['eventDate'] = dates.join('/') + ' ' + times.join(':');
                (typeof dataLayer !== 'undefined') && dataLayer.push(data);
                
                if ($target.data('one-click')) { $target.data('count-click', 1); }
            }
        }
    });
});

function addZero(i) {
    if (i < 10) {
        i = '0' + i;
    }
    return i;
}