# Various message sorting methods

import utils
import string
from pyneheaders import *

def date_sort_pve(a, b):
	var_a = a[HEAD_DATE]
	var_b = b[HEAD_DATE]
	if var_a < var_b:
		return 1
	elif var_a > var_b:
		return -1
	else:
		return 0

def date_sort_nve(a, b):
	var_a = a[HEAD_DATE]
	var_b = b[HEAD_DATE]
	if var_a < var_b:
		return -1
	elif var_a > var_b:
		return 1
	else:
		return 0

def fromto_sort_pve(a, b):
	var_a = string.lower(utils.split_address(a[HEAD_FROM_TO])[0])
	var_b = string.lower(utils.split_address(b[HEAD_FROM_TO])[0])
	if var_a < var_b:
		return 1
	elif var_a > var_b:
		return -1
	else:
		return 0

def fromto_sort_nve(a, b):
	var_a = string.lower(utils.split_address(a[HEAD_FROM_TO])[0])
	var_b = string.lower(utils.split_address(b[HEAD_FROM_TO])[0])
	if var_a < var_b:
		return -1
	elif var_a > var_b:
		return 1
	else:
		return 0

def subject_sort_pve(a, b):
	var_a = a[HEAD_SUBJECT]
	var_b = b[HEAD_SUBJECT]
	if var_a < var_b:
		return 1
	elif var_a > var_b:
		return -1
	else:
		return 0

def subject_sort_nve(a, b):
	var_a = a[HEAD_SUBJECT]
	var_b = b[HEAD_SUBJECT]
	if var_a < var_b:
		return -1
	elif var_a > var_b:
		return 1
	else:
		return 0

# Tuple. (positive sort, negative sort)
sort_methods = {
	0: (subject_sort_pve, subject_sort_nve),
	1: (fromto_sort_pve, fromto_sort_nve),
	2: (date_sort_pve, date_sort_nve)
}



syntax highlighted by Code2HTML, v. 0.9.1