// ==UserScript==
// @name                Delete convo
// @version             1.2
// @date                2009-07-02
// @author              Ian Malpass ( ian AT etsyhacks DOT com )
// @namespace           etsy.com
// @description         Adds a "delete" button to the convo screen
// @include             http://www.etsy.com/convo_view.php?convo_id=*
// ==/UserScript==

// find the convo id
var match = window.location.search.match( /convo_id=(\d+)/ );
var convo_id = match[ 1 ];

// delete button
var delete_uri = "data:image/gif,GIF89aV%00.%00%E7%F5%00%F77%1D%F78%1E%F69%20%F6%3B%22%F7%3C%23%F7%3E%25%F7%40'%F7A(%F7A)%F7B*%F6C%2C%F7C%2B%F7F%2F%F7H0%F7H1%F7I1%F8J2%F8K4%F7M6%F7N7%F7O8%F8O8%F7P%3A%F8P9%F7Q%3B%F9R%3B%F7S%3D%F8S%3C%F8U%3F%F8U%40%F8WB%F9XG%F9ZE%F8%5BE%F8%5BF%FA%5BJ%FA%5DL%F8%5EI%FA%5EM%FA_N%F8%60K%F8%60L%F8aL%FAaQ%F8cO%F9cO%F8dP%F9dU%FAdS%FAeU%F8iV%F9iU%F9iV%FAiY%F9j%5B%FAk%5B%FAl%5D%F9m%5B%FAm%5D%FAm%5E%FAn_%F9q_%F9tb%F9tc%F9vd%F9we%FAwi%F9yh%F9zh%F9%7Cj%F9%7Ck%EB%80q%F9%7Dl%FB%7Dp%FB~q%F9%7Fo%F9%80p%FB%80s%F9%81q%F2%83t%FB%82v%FB%83v%E8%89%7C%FB%85x%FA%86v%FB%87z%FA%89z%FB%89%7D%FA%8A%7B%E9%8F%83%FA%8D~%FB%8D%81%FA%8E%80%FA%8E%82%FB%8F%84%F9%91%83%FA%91%82%FA%91%83%EB%95%89%FB%91%85%FA%92%84%FB%92%87%FB%93%88%ED%97%8B%FA%94%86%FB%94%89%FA%95%87%FA%95%88%FA%96%89%FA%97%8A%FA%98%8A%F8%99%8C%FB%98%8E%E6%9E%94%FB%9B%8E%FB%9B%90%FC%A1%97%FC%A1%98%F9%A3%97%FC%A3%99%FC%A4%9B%FC%A5%9C%F2%A8%9E%FB%A8%9D%FC%A8%9F%FA%AB%A2%FB%AC%A1%FA%AC%A4%FC%AC%A3%FC%AC%A4%FA%AD%A2%F5%AF%A5%FB%AE%A3%E4%B4%AE%E3%B5%AD%FB%AF%A5%E5%B5%AF%FC%AF%A7%FB%B0%A6%E6%B6%B0%FB%B2%A8%FB%B2%A9%FC%B4%AA%E9%B9%B3%FB%B5%AC%FC%B7%AE%FC%B9%B0%EC%BE%B6%FC%BA%B3%FC%BB%B2%FC%BC%B5%FD%BD%B6%F9%BF%B9%FD%BF%B8%FD%BF%B9%FC%C1%BA%E1%C8%C5%FD%C2%BC%FC%C4%BD%FC%C6%BF%FC%C8%C0%FC%C9%C2%FC%CA%C3%FD%CA%C4%FC%CB%C6%FC%CC%C6%FD%CD%C7%FD%CE%C8%FD%CE%C9%FD%CF%CA%FD%D0%CB%FD%D1%CC%FD%D3%CE%DC%DC%DC%F8%D5%D0%FD%D4%CF%DD%DD%DD%FD%D5%D0%FD%D6%D0%F0%DA%D6%FD%D7%D2%DF%DF%DF%FD%D9%D5%E1%E1%E1%FD%DA%D6%FD%DB%D7%E2%E2%E2%FD%DC%D8%E3%E3%E3%E4%E4%E4%E5%E5%E5%E6%E6%E6%FE%E0%DC%FE%E0%DD%FD%E1%DD%E7%E7%E7%FE%E2%DF%E8%E8%E8%E9%E9%E9%EA%EA%EA%EB%EB%EB%EC%EC%EC%FE%E8%E6%F4%EB%EA%ED%ED%ED%EE%EE%EE%FE%EB%E9%EF%EF%EF%FE%EC%EA%FE%EC%EB%F0%F0%F0%FE%ED%EB%F8%EF%EE%F1%F1%F1%FE%EE%ED%F2%F2%F2%FE%EF%ED%F3%F3%F3%F4%F4%F4%FE%F2%F0%FE%F2%F1%F5%F5%F5%FE%F3%F1%FE%F4%F2%F6%F6%F6%FE%F4%F3%FE%F5%F4%F7%F7%F7%FE%F6%F5%F8%F8%F8%FE%F7%F6%F9%F9%F9%FE%F8%F7%FE%F9%F8%FA%FA%FA%FE%FA%FA%FB%FB%FB%FE%FB%FB%FC%FC%FC%FE%FC%FC%FD%FD%FD%FE%FD%FC%FE%FD%FD%FE%FE%FE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%FE%11Created%20with%20GIMP%00!%F9%04%01%00%00%FF%00%2C%00%00%00%00V%00.%00%00%08%FE%00%FF%09%1CH%B0%A0%C1%83%08%13*%5C%C8%B0aAz%10%23J%9CH%B1%A2%C5%8B%183%D2s(%90%DE%BC%8F%F3%E0%89%1CI%B2%A4%C9%93(S%AAD%09r%DEF%85%1EC%BAs%C7%AE%A6%CD%9B8s%EA%DC%C9%B3'%CF%99%EE%E0%7DL%E8%11%DE%A6%3F%82%FE%F4Y%CA%B4%A9%D3%A7P%A3J%9D%1A%15%13%B5r%E7%D8%05%9D%870d%97%11%60%C3%8A%1DK%B6%AC%D9%B3h%D3%825%B2%AC%DB8u%5B%0Dz%24%A5%B6%AE%DD%BBx%F5H%CB%F6%D6%9D%CB%82!%FF%E0%1DL%B8%F0%93c%CD%B2%95c%07%EF%E5%C0y%EE%04%15%9EL%19%ED%19_%C7%A4%81S'%94%A0Gw%82%2B%8B%1E-%E6%D60f%DA%CE%F9%F5%3C%8F%5D%9F%D1%B0%C9z%E8%90!%82%ED%08%0C%10%E8F%A0%C0v%96Z%BE%92%5D%2B%E7%D71%3Dx%AEcW%FE%D0%017%02%01%00%A2K%9FN%1D%80%14X%BC%90%0Dg%F7%B7%23%F2%D7%CA%F1%FE~%C8%E0%A0%40%F5%F3%E8%ADc%3FVm%1Cc%E3%DF%C3%DB%C5%A0%20%BD%FD%F3RZ%F1b%EF%BE%F1%C0%E3%C9%C9w%D6%07%11%40w%DF%81%D3%E5%A7%0B%7F%EF%FD%17%9FZ%3C%EC%C0%83%0E1%84U%03%0F%18%F2%80%C3%08'%E8%B0%C2X8%D8%80%82%05%134%00%C0%01%14H%20%C1%04%13P%00%40%00)%B2H%81%01%07*%C8%A0%7F%DE%05%98%96D%AC%08%01%160%12%913B%14%F4%A4!V%0A%13%9D%02%00%19%14%01%B0%C0DX%D4%D8%CA%82%ED5%98%23x%3B%C6%92%07%25%DF%8C%02%C3%08%B6(%13%08%1F%7C%DC1B%13%EB%8C%11V%07%08%7C%23%0B%1Ak%B4%81%04%00*%B0Q%89%3C%7B%A8%E1%06%00%09%D0%E3%09%18k%C8Q%82%94T%F6%07%9F%8Eh%D1%03%08XtXS%C5%08%BB%A02%16%9Aj%82%00At%E2%F81%5D%00%D1%0D%F1%CE%06%D2%F5i%05%82%D2%D9X%25%8E%FF%00%88e%A2%89%80%15%855%FEs%8C%80K0el%B1%C5%15g%A6%09%C2%03%D2%85%13J%0F%3E%FC%E0%82tK%BC%13B%A8%F44%92%83%0FA%5C%40%E8%8D%87%AEz%16%3D%AD%8E%90D4x%8C%40%0B%3D%EBtkM%AEch0%DD6%EF%A4%93%CE%3B%9F%10k%2C%B2%ED%98K%0F%15%CF%9E%1Am%5D%D4%82%A5%044f%E2B%0C%1Ci%98%E1E%AEj%100%5D8%A6%10Q%04%124%A8%7Blt%7DF%02D%11L%80z%9F%A9%86%3A%88%E8%B4%D5N1%0D%1C%23%E4%B2%8A%09b%A1i%04u%E2(r%5E%B1%0B%F3I%0F%17%A4FG%B1%95%A9%3E%B8c%20%60%D5%E1%0C%14%1D%AB%22%D6%0B_%A0%D3%03%C9%87%9C%BC.%C3%F4h%D1%B2uSBk%B1%B4f%D1%03%8C%25%A9%C4%A3%09%C8%B6%60%D3I%26%9A%40%A2%00%0B%F4%E4%02%8A(%AFp%00%807%C2(%C2%88%23a(%8C%EC%2B%840%22%C9%0C%F1V%7C%25%BD%10%99s%C9%0D%60%D9%22%11%FE7%00%B80%11%0A%00%90%23Q)%D29A%8F%08%C8J4%EA%C4I%CB%BB%F4%60%24%88%D5B%0B2%1C%1D%9D%00%03%0C%609~%8D%CB%1D%F3%C5j%8DW%DE%E6%A4%C7%0D%B3%AAv%7DP%81y%A5%B7%CEx%A1%A7%23g%C7m%B79%B0%9B%00%05(%A0%40%01%06%BA%EE%3B%E7%B0%A3%0A%E0%1B%BF%17%DF%FA%CB%C2%23G%BC%F1%CC%1F%9D%DF~%8E%E7%B8%7C%F3%D4O%BC%5E%F4%9FO_%FD%F6%D5%5D%D7%8Bv%8Bu%97jk%AEpo%3Euq%00%97%8Cb%C5%FD%07Y9%83%9C%7F%FE%11%B0%E8RL3%A9%ADF%10d%E7h3%CB%24%8FX%04%22%0Aa%88%02%1A%F0%80%08L%A0%02%17%C8%C0%06%26%90%13%B5%D0%C5%2F%90Q%8D%CDtf%7F%C8%19%C75%98a%8C_%F4%82%17%BC%D0%85%08GH%C2%12%9A%F0%84(L%A1%0AG%08%C2%5E%F8%A2%18%C8%90F%FEP%D5%11%FE%81%E3%1A%CFH%062%8E%C1%C3%1E%FA%F0%87%86%40%0C%A2%10%87H%C4%20%22%23%19%CD%A8%866%16sA%C0%20%E7%1C%E3%E8F6%AEQ%8D*Z%F1%8AX%CC%A2%16%B7%C8%C5.j%F1%1A%D9%D0%068%B2%22%14%C7%B0%06%1E49G9%CA1%8E6%BA%F1%8Dp%8C%A3%1C%E7H%C7%3A%CAq%8D%E7%80K%19%89%F2%114%D2%C4'%80%0C%A4%20%039%13%91%88%8F%8F%20Y%89%22%17%C9HE%B6%C4%8C%0D%D1%88%24'II%8Dp%E4%92%98%CC%A4%267%C9%C9Nzr!%01%01%00%3B";

// find the "reply" button
var nav = getElementsByClassName( 'list_dynamic_link' )[ 0 ];

// nnc is the code used to prevent cross-site request forgery attacks
// we need to to identify ourselves as a kosher request
var inputs = document.getElementsByTagName( 'input' );
var nnc;
for ( var i = 0; i < inputs.length; i++ ) {
    if ( inputs[ i ].name && inputs[ i ].name == '_nnc' ) {
        nnc = inputs[ i ].value;
        break;
    }
}    

if ( nnc ) {
    // build the form
    var form = document.createElement( 'form' );
    form.action = 'http://www.etsy.com/convo_main.php';
    form.method = 'POST';
    form.innerHTML = '<input type="hidden" name="select_convo_id[]" value="' + convo_id + '" /><input type="hidden" name="_nnc" value="' + nnc + '" /><input type="hidden" name="delete" value="Delete" /><img width="86" height="47" src="' + delete_uri + '" style="cursor: pointer" />';
    // add the submission confirmation code
    form.lastChild.addEventListener( 'click', function () {
        if ( window.confirm( 'Delete convo?' ) ) {
            form.submit();
        }
    }, true );

    // add the form and button
    nav.parentNode.appendChild( form );
    nav.style.cssFloat = 'left';
    form.insertBefore( nav, form.firstChild );
}

// 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;
    }
}




