У меня как то получилось, логически дошёл до этого!
var chat_sort2 = 1, chat_sort3 = 1;
function chat_sort(){ // сортировка пользователей чата
var chat_mas = [];
$('#chat_list1 div').each(function(i){
chat_mas[i] = [$(this).attr('percent'), $(this).attr('status'), $(this).html()];
});
if(chat_sort2 == 1 && chat_sort3 == 1){ // все от 0
chat_mas.sort(function(a, b){
return a[0] - b[0];
});
} else if(chat_sort2 == 1 && chat_sort3 == 2){ // все от 100
chat_mas.sort(function(a, b){
return b[0] - a[0];
});
} else if(chat_sort2 == 2 && chat_sort3 == 1){ // чат от 0
chat_mas.sort(function(a, b){
if(a[1] == 2 && b[1] == 2) return a[0] - b[0];
if(a[1] == 2 && b[1] == 3) return -1;
if(a[1] == 3 && b[1] == 2) return 1;
if(a[1] == 3 && b[1] == 3) return a[0] - b[0];
return 0;
});
} else if(chat_sort2 == 2 && chat_sort3 == 2){ // чат от 100
chat_mas.sort(function(a, b){
if(a[1] == 2 && b[1] == 2) return b[0] - a[0];
if(a[1] == 2 && b[1] == 3) return -1;
if(a[1] == 3 && b[1] == 2) return 1;
if(a[1] == 3 && b[1] == 3) return b[0] - a[0];
return 0;
});
} else if(chat_sort2 == 3 && chat_sort3 == 1){ // игра от 0
chat_mas.sort(function(a, b){
if(a[1] == 2 && b[1] == 2) return a[0] - b[0];
if(a[1] == 2 && b[1] == 3) return 1;
if(a[1] == 3 && b[1] == 2) return -1;
if(a[1] == 3 && b[1] == 3) return a[0] - b[0];
return 0;
});
} else if(chat_sort2 == 3 && chat_sort3 == 2){ // игра от 100
chat_mas.sort(function(a, b){
if(a[1] == 2 && b[1] == 2) return b[0] - a[0];
if(a[1] == 2 && b[1] == 3) return 1;
if(a[1] == 3 && b[1] == 2) return -1;
if(a[1] == 3 && b[1] == 3) return b[0] - a[0];
return 0;
});
}
var text_mas = '';
for(i=0; i<chat_mas.length; i++){
text_mas += '<div class="chat_user" percent="'+chat_mas[i][0]+'" status="'+chat_mas[i][1]+'">'+chat_mas[i][2]+'</div>';
}
$('#chat_list1').html(text_mas);
}