$(document).ready(function() {
	$.tablesorter.addParser({
		id: "weekDays",
		is: function(s) {
			return false;
		},
		format: function(s){
			s = s.toLowerCase();
			s = s.replace("sun", 0);
			s = s.replace("mon", 1);
			s = s.replace("tue", 2);
			s = s.replace("wed", 3);
			s = s.replace("thu", 4);
			s = s.replace("fri", 5);
			s = s.replace("sat", 6);
			return s;
		},
		type: "numeric"
	});
	
	//alert(test("09:00 AM - 09:45 AM"));
	
	$.tablesorter.addParser({
		id: "programTime",
		is: function(s) {
			return false;
		},
		format: function(s){
			
			var timesArray = s.split(" - ");
			
			var toComparsion = "";
			
			for (var i = 0 ; i<timesArray.length ; i++)
			{
				// Get the AM - PM
				var signal = timesArray[i].substr(6, 2).toUpperCase();
				var hour = timesArray[i].substr(0, 2);
				var minutes = timesArray[i].substr(3, 2);
				
				toComparsion += signal + hour + minutes;
			}		
			
			return toComparsion;
		},
		type: "text"
	});
	
	$.tablesorter.addParser({
		id: "programDates",
		is: function(s) {
			return false;
		},
		format: function(s){
			s = s.toLowerCase();
			
			contentsArray = s.split(" ");
			
			var toComparsion = "";
			
			for (var i = 0 ; i < contentsArray.length ; i++)
			{
				var current = contentsArray[i];
				
				switch (current)
				{
					case "1":
					{
						current = "0".concat(current);
						
						break;
					}
					case "2":
					{
						current = "0".concat(current);
						
						break;
					}
					case "3":
					{
						current = "0".concat(current);
						
						break;
					}
					case "4":
					{
						current = "0".concat(current);
						
						break;
					}
					case "5":
					{
						current = "0".concat(current);
						
						break;
					}
					case "6":
					{
						current = "0".concat(current);
						
						break;
					}
					case "7":
					{
						current = "0".concat(current);
						
						break;
					}
					case "8":
					{
						current = "0".concat(current);
						
						break;
					}
					case "9":
					{
						current = "0".concat(current);
						
						break;
					}
					default:
					{
						current = current.replace("jan", "01");
						current = current.replace("feb", "02");
						current = current.replace("mar", "03");
						current = current.replace("apr", "04");
						current = current.replace("may", "05");
						current = current.replace("jun", "06");
						current = current.replace("jul", "07");
						current = current.replace("aug", "08");
						current = current.replace("sep", "09");
						current = current.replace("oct", "10");
						current = current.replace("nov", "11");
						current = current.replace("dec", "12");
						
						break;
					}
				}
				
				toComparsion = toComparsion.concat(current);
			}
			//alert(toComparsion);
			return toComparsion;
		},
		type: "text"
	});
	
	$(".tableSort").each(function(){
		$(this).tablesorter({
			headers: {
				1: {
					sorter: "weekDays"
				},
				2: {
					sorter: "programTime"
				},
				5: {
					sorter: "programDates"
				},
				6: {
					sorter: false
				}
			},
			widgets: ['zebra'],
			widgetZebra: {css: ["normalRow","alternatedRow"]}
		});
	});
});
