// ==UserScript==
// @name         Tanszéki portál értékelések színezése
// @namespace    http://tampermonkey.net/
// @version      0.6
// @description  A tanszéki portálon az értékelések listájánál a nem értékelt sorok hátterét kiszínezi
// @author       Ákos Nagy, Dániel Kis-Nagy, Tibor Tóth
// @match        https://www.aut.bme.hu/Course/*/*/*/*
// @grant        none
// ==/UserScript==
/* jshint -W097 */
'use strict';

var rowSelector = '#gvUserOnAssignmentResult > tbody > tr.gridViewRow';
var rowAltSelector = '#gvUserOnAssignmentResult > tbody > tr.gridViewAltRow';
var rows=$(rowSelector + ', ' + rowAltSelector);
var changedCount = 0;

rows.each(function() {
    var gradeSelect = $(this).find('option:selected');
    if (gradeSelect.text()=='Értékelje')
    {
        $(this).css('background-color','#FFDFDF');
    }
    
    var gradeTextInput = $(this).find('input#txtResult');
    if (gradeTextInput.length > 0) {
        var gradeText = gradeTextInput.val();
        if (!gradeText || /^\s*$/.test(gradeText))
        {
            $(this).css('background-color','#FFDFDF');
        }
    }
});

var inputChangedHandler = function(e) {
    $(e.currentTarget.parentNode.parentNode).css('background-color','#FFCE43');

    if ($(e.currentTarget.parentNode.parentNode).data('changed') == null){
        $(e.currentTarget.parentNode.parentNode).data('changed', true);
        changedCount++;
    }

    // Ha több változásunk van, akkor a Ment gombot letiltjuk, ugyanis azzal
    // nagyon könnyen el tudjuk veszíteni az összes többi módosításunkat...
    if (changedCount > 1) {
        $(".btnAccept[value='Ment']").each(function() {
            this.disabled = true;
            this.style.opacity = "0.5";
            this.title = "Több sor is megváltozott. Használd inkább az Összes eredmény mentése gombot!";
        });
    }
};

$(rowSelector + ' select, ' + rowAltSelector + ' select').change(inputChangedHandler);

$(rowSelector + ' input#txtResult, ' + rowAltSelector + ' input#txtResult').live('change keydown paste', inputChangedHandler);

$(rowSelector + ' textArea#txtStaffComment, ' + rowAltSelector + ' textArea#txtStaffComment').live('change keydown paste', inputChangedHandler);
$(rowSelector + ' textArea#txtComment, ' + rowAltSelector + ' textArea#txtComment').live('change keydown paste', inputChangedHandler);