// ==UserScript==
// @name                Fast batch feedback
// @version             2.1
// @date                2009-02-04
// @author              Ian Malpass ( ian AT etsyhacks DOT com )
// @namespace           etsy.com
// @description         Adds controls to set the values of all the feedback fields in the Bulk Feedback screen
// @include             http://www.etsy.com/feedback_awaiting.php?style=bulk*
// ==/UserScript==


var rows = getElementsByClassName( 'row_grey' );
if ( rows.length ) {
    var first_row = rows[ 0 ];
    var tbl = first_row.parentNode;
    var tr = document.createElement( 'tr' );
    var td = document.createElement( 'td' );
    td.innerHTML = 'foo';
    td.style.border = '1px solid #999999';
    td.style.padding = '10px';
    tr.appendChild( td );
    td.innerHTML = '<script type="text/javascript">\nfunction set_all_comments( node ) { var f = document.forms[ "feedback" ]; for ( var e = 0; e < f.elements.length; e++ ) { if ( f[ e ].nodeName == "TEXTAREA" && f[ e ].name.indexOf( "feedback_message" ) == 0 ) f[ e ].value = node.value; } }\nfunction set_all( value ) { var f = document.forms[ "feedback" ]; for ( var e = 0; e < f.elements.length; e++ ) { if ( f[ e ].type == "radio" && f[ e ].name.indexOf( "feedback_value" ) == 0 && f[ e ].value == value ) f[ e ].checked = true; } }\n</script>';
    td.innerHTML += '<strong>All feedback:</strong><table style="margin-top: 5px; margin-bottom: 5px"><tbody><tr><td style="vertical-align: middle;"><input type="radio" value="pos" onclick="set_all( \'pos\' )" /></td><td style="vertical-align: middle;"><img height="14" width="14" alt="" src="http://www.etsy.com/images/icon_positive_small.gif"/></td><td class="green_text" style="padding: 0px 15px 0px 5px; vertical-align: middle;">Positive</td><td style="vertical-align: middle;"><input type="radio" value="none" onclick="set_all( \'none\' )" /></td><td style="padding: 0px 15px 0px 5px; vertical-align: middle;">Don\'t leave now</td></tr></tbody></table><textarea cols="65" rows="2" onchange="set_all_comments( this )"></textarea>';
    tbl.insertBefore( tbl.rows[ 4 ].cloneNode( true ), tbl.rows[ 4 ] );
    tbl.insertBefore( tr, tbl.rows[ 5 ] );
}

// utility function to replicate getElementsByClassName() on older Firefoxes
function getElementsByClassName ( class, node ) {
    if ( node == null ) node = document;
    if ( node.getElementsByClassName ) {
        return node.getElementsByClassName( class );
    } else {
        var classElements = new Array();
        var els = node.getElementsByTagName( '*' );
        var elsLen = els.length;
        var pattern = new RegExp("(^|\\s)"+class+"(\\s|$)");
        for (i = 0, j = 0; i < elsLen; i++) {
            if ( pattern.test(els[i].className) ) {
                classElements[j] = els[i];
                j++;
            }
        }
        return classElements;
    }
}
