function initTimeTable() {

	$("#ShowAll").click(function () {
		$("#searchtimetable").attr("value", "Ange ort/h" + unescape("%E5") + "llplats/linjenummer");
		//$("#searchtimetable").append("test");
		
		$(".tidtabeller li").css({ "display": "block" });
		$(".tidtabeller li").removeClass("valid");
		$(".tidtabeller li").addClass("valid");
		fixTimeTableLayout();
	});

	$("#ShowAll1136").click(function () {
		$("#ShowAll1136").hide();
		$("#ShowAll1138").show();
		$("#searchtimetable").attr("value", "Ange ort/h" + unescape("%E5") + "llplats/linjenummer");
		//$("#searchtimetable").append("test");

		$(".tidtabeller li").css({ "display": "none" });
		$(".tidtabeller li").removeClass("valid");
		$("#tidtabell1136.tidtabeller li").css({ "display": "block" });
		$("#tidtabell1136.tidtabeller li").addClass("valid");
		ShowHideUpcoming();
		fixTimeTableLayout();
	});

	$("#ShowAll1138").click(function () {
		$("#ShowAll1138").hide();
		$("#ShowAll1136").show();
		$("#searchtimetable").attr("value", "Ange ort/h" + unescape("%E5") + "llplats/linjenummer");
		//$("#searchtimetable").append("test");

		$(".tidtabeller li").css({ "display": "none" });
		$(".tidtabeller li").removeClass("valid");
		$("#tidtabell1138.tidtabeller li").css({ "display": "block" });
		$("#tidtabell1138.tidtabeller li").addClass("valid");
		ShowHideUpcoming();
		fixTimeTableLayout();
	});
	
	$('#showUpcoming').click(function () {
		$("#ShowAll1136").show();
		$("#ShowAll1138").show();
		if ($("#searchtimetable").val() != "" && $("#searchtimetable").val().indexOf('ort') < 0) {
			searchTimeTableData($("#searchtimetable").val());
		}
		else{
			$(".tidtabeller li").css({ "display": "none" });
			$(".tidtabeller li").removeClass("valid");
		}
		ShowHideUpcoming();
		fixTimeTableLayout();
	});
	$('#showActual').click(function () {

		$("#ShowAll1136").show();
		$("#ShowAll1138").show();
		if ($("#searchtimetable").val() != "" && $("#searchtimetable").val().indexOf('ort') < 0) {
			searchTimeTableData($("#searchtimetable").val());
		}
		else
		{
			$(".tidtabeller li").css({ "display": "none" });
			$(".tidtabeller li").removeClass("valid");
		}
		ShowHideUpcoming();
		fixTimeTableLayout();
	});

	$(".tidtabeller li").css({ "display": "none" });
	$(".tidtabeller li").removeClass("valid");
}

function initTimeTableSearchObjects() {
	$("#searchtimetable").keyup(function() {
	    if ($(this).val() != "" && $("#searchtimetable").val().indexOf('ort') < 0) {
	        $(".tidtabeller li").css({ "display": "none" });
	        $(".tidtabeller li").removeClass("valid");
			searchTimeTableData($(this).val());
			ShowHideUpcoming();    
			fixTimeTableLayout();
		}
		else {
			$(".tidtabeller li").css({ "display": "none" });
			$(".tidtabeller li").removeClass("valid");
			//$(".tidtabeller li").addClass("valid");
			ShowHideUpcoming();
			fixTimeTableLayout();
		}
	});
}

function IsNumeric(quantity) {
    var validChars = "0123456789";
    var isNumber = true;
    var nextChar;

    for (var i = 0; i < quantity.length && isNumber == true; i++) {
        var nextChar = quantity.charAt(i);
        if (validChars.indexOf(nextChar) == -1) {
            isNumber = false;
        }
    }
   
    return isNumber;
}


/*Own JQuery expressions for handling contains in any case (upper or lower)*/
$.expr[':'].icontains = function(obj, index, meta, stack) {
	return (obj.textContent || obj.innerText || jQuery(obj).text() || '').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0;
};
$.expr[':'].noticontains = function(obj, index, meta, stack) {
	return (obj.textContent || obj.innerText || jQuery(obj).text() || '').toLowerCase().indexOf(meta[3].toLowerCase()) < 0;
};

$.expr[':'].iequals = function (obj, index, meta, stack) {
	return (obj.textContent || obj.innerText || jQuery(obj).text() || '').toLowerCase() == meta[3].toLowerCase();
};


function ShowHideUpcoming() {
    
    if ($("#showUpcoming:checked").length < 1) {

        $(".valid div.fromDate").each(function (index) {
            var year = $(this).text().substring(0, 4);
            var sMonth = $(this).text().substring(5, 7);
            if (sMonth.substring(0, 1) == "0") {
                sMonth = sMonth.substring(1, 2);
            }
            var month = parseInt(sMonth) - 1;
            var day = $(this).text().substring(8, 10);

            var x = new Date(year, month, day);
            //x.setFullYear(year,month,day);
            var today = new Date();

            //alert(x > today);
            //alert(index + ': ' + $(this).text());
            if (x > today) {
                //alert(x.getMonth());
                $(this).parent().removeClass("valid");
                $(this).parent().css({ "display": "none" });
                //alert("Today is before " + x.toDateString());
            }
        });
	}

	if ($("#showActual:checked").length < 1) {
	    
		$(".valid div.fromDate").each(function (index) {
			var year = $(this).text().substring(0, 4);
			var sMonth = $(this).text().substring(5, 7);
			if (sMonth.substring(0, 1) == "0") {
				sMonth = sMonth.substring(1, 2);
			}
			var month = parseInt(sMonth) - 1;
			var day = $(this).text().substring(8, 10);

			var x = new Date(year, month, day);
			//x.setFullYear(year,month,day);
			var today = new Date();
			//alert(index + ': ' + $(this).text());
			if (x <= today) {
			    //alert(x.getMonth());
				$(this).parent().removeClass("valid");
				$(this).parent().css({ "display": "none" });
				//alert("Today is before " + x.toDateString());
			}
		});
	}
}

function searchTimeTableData(data) {
	
	/*    
	alert($("div.searchdiv:icontains('" + data + "')").length);
	$(".tidtabeller li[class~=tidtabellli] div.searchdiv:icontains('" + data + "')").parent().css({ "display": "block" });
	$(".tidtabeller li[class~=tidtabellli] div.searchdiv:noticontains('" + data + "')").parent().css({ "display": "none" });
	*/
    
    var isNum = IsNumeric(data);

    if (!isNum) {
        $("div.searchdiv:icontains('" + data + "')").parent().css({ "display": "block" });
        $("div.searchdiv").parent().addClass("valid");
    }


    //alert($("div.searchnumber").html()==data);
//	$("div.searchnumber:icontains('" + data + "')").parent().css({ "display": "block" });
//	$("div.searchnumber").parent().addClass("valid");
	
	//$("div.searchdiv.valid:icontains('" + "ume" + "')").parent().addClass("valid");
	//$("div.searchdiv:icontains('" + "ume" + "')").parent().css({ "display": "block" });


	$("#ShowAll1136").show();
	$("#ShowAll1138").show();


	var searchTerms = data.split(" ");

	

	for (var iTerm = 0; iTerm < searchTerms.length; iTerm++) {
	    if (iTerm==0) {
	        
	        if (!isNum) {
	            $("div.searchdiv:noticontains('" + searchTerms[iTerm] + "')").parent().css({ "display": "none" });
	            $("div.searchdiv:noticontains('" + searchTerms[iTerm] + "')").parent().removeClass("valid");
	        }
	        $("div.searchnumber:icontains('" + searchTerms[iTerm] + "')").parent().css({ "display": "block" });
	        $("div.searchnumber:icontains('" + searchTerms[iTerm] + "')").parent().addClass("valid");
		} else {
		    if (!isNum) {
		        $(".valid div.searchdiv:noticontains('" + searchTerms[iTerm] + "')").parent().css({ "display": "none" });
		        $(".valid div.searchdiv:noticontains('" + searchTerms[iTerm] + "')").parent().removeClass("valid");
		    }
		    $(".valid div.searchnumber:icontains('" + searchTerms[iTerm] + "')").parent().css({ "display": "block" });
		    $(".valid div.searchnumber:icontains('" + searchTerms[iTerm] + "')").parent().addClass("valid");
		}
		//document.write("<br /> Element " + i + " = " + mySplitResult[i]); 
	}


	//if ($("div.searchnumber").html() == data) {
//	$("div.searchnumber:iequals('" + searchTerms[iTerm] + "')").parent().css({ "display": "block" });
//	$("div.searchnumber:iequals('" + searchTerms[iTerm] + "')").parent().addClass("valid");
	//}


	ShowHideUpcoming();
	
	//$("div.searchdiv:noticontains('" + data + "')").parent().css({ "display": "none" });
	//$("div.searchdiv:noticontains('" + data + "')").parent().removeClass("valid");
	//$("div.searchdiv.valid:noticontains('" + "sors" + "')").parent().removeClass("valid");

	//$("div.searchdiv:noticontains('" + "ume" + "')").parent().css({ "display": "none" });

	//$(".valid div.searchdiv:noticontains('" + "ycksele" + "')").parent().removClass("valid");
	
	
	//$(".valid").each(function () { /*check last li and if search not found*/
	 //   var validRow = $(this);
	 //   validRow:noticontains('" + "ume" + "').parent().addClass("hej");
	//});
}
function fixTimeTableLayout() {
	//alert($("ul.tidtabeller").length);
	$("ul.tidtabeller").each(function () {
		if (($(this).children().length == $("ul#" + $(this).attr("id") + " li:hidden").length) && $(this).children("li[class=notfound]:visible").length == 0) {
			//$("h3." + $(this).attr("id")).css({ "display": "none" });
			if ($("#searchtimetable").val() != "" && $("#searchtimetable").val().indexOf('ort') < 0) {
				$(this).append("<li class='notfound'>Ingen tidtabell hittades med '" + $("#searchtimetable").val() + "'</li>");
			}
		}
		else {
			if ($(this).children("li[class=notfound]:visible").length > 0) {
				//alert("Inga tidtabell hittades med '" + $("#searchtimetable").val() + "'");
				if ($("#searchtimetable").val() != "" && $("#searchtimetable").val().indexOf('ort') < 0) {
					$(this).children("li[class=notfound]:visible").text("Ingen tidtabell hittades med '" + $("#searchtimetable").val() + "'");
				}
			}
			if ($(this).children("li[class*=tidtabellli]:visible").length > 0 && $(this).children("li[class=notfound]").length > 0) {
				$(this).children("li[class=notfound]").remove();
			}
			$(this).children("li[class*=lasttidtabell]").removeClass("lasttidtabell");
			if (!$(this).children("li:visible:last").hasClass("notfound")) {
				$(this).children("li:visible:last").attr("class", $(this).children("li:visible:last").attr("class") + " lasttidtabell");
			}
		}
	});
}
