define(['index', 'telerik.kendoui-pt-BR'], function (index) {

    'use strict';

    index.register.directive('directiveGantt', ganttDirective);

    ganttDirective.$inject = [];

    function ganttDirective() {
        var ganttObject= {
            restric: 'E',
            scope: {
                tDataSource: '=',
                tDependencies: '=',
                tResources: '=',
                tAssignments: '=',
                tColumns: '=',
                tViews: '=',
                tToolbar: '=',
                tPdfName: '@',
                tAdd: '&',
                tRemove: '&',
                tClick: '&',
                tEdit: '&',
                tCancel: '&',
                tSave: '&',
                tMoveEnd: '&',
                tLanguage: '@'
            },
            template: '<div id="gantt"></div>',
            link: link
        };

        return ganttObject;

        function link(scope, element, attrs, ngModel) {
            var gantt;

            createGantt();

            scope.$watchCollection('tLanguage', function (value) {
                if (value) {
                    var baseUrl = 'http://kendo.cdn.telerik.com/2015.3.930/js/messages/kendo.messages.';

                    $.getScript(baseUrl + value + '.min.js', function (data) {
                        console.log(data);
                        createGantt();
                    });
                }
            });

            function createGantt () {
                var element = $('#gantt');

                if (element.data('kendoGantt')) {
                    element.data('kendoGantt').destroy();
                    element.empty();
                }

                kendo.culture("pt-BR");

                element.kendoGantt({
                    dataSource: scope.tDataSource,
                    dependencies: scope.tDependencies,
                    resources: {
                        dataSource: scope.tResources
                    },
                    assignments: {
                        dataSource: scope.tAssignments
                    },
                    views: scope.tViews,
                    columns: scope.tColumns,
                    toolbar: scope.tToolbar,
                    pdf: {
                        fileName: scope.tPdfName || 'Teste Gantt'
                    },
                    add: scope.tAdd,
                    save: scope.tSave,
                    remove: scope.tRemove,
                    edit: scope.tEdit,
                    change: scope.tClick,
                    cancel: scope.tCancel,
                    moveEnd: scope.tMoveEnd
                });
            }
        }
    }
});