bam.loadSync("/shared/scripts/bam/bam.datagrid.js");
var player_search_results = new bam.datagrid.DataGrid({
				tableClass:"jtable", // css assigned to ps_results
				oddClass: "odd",
				showHeader: true,
				onColumnSort: function(c) {
					player_search_results.refresh("ps_results");
					if ($("div#ps_results table").hasClass("historical")) {
						$("div#ps_results table.jtable th[index=4]").show();
						$("div#ps_results table.jtable td[index=4]").show();
						$("div#ps_results table.jtable th[index=2]").hide();
						$("div#ps_results table.jtable td[index=2]").hide();
					}
				},
				dataType: "json",
				columns: [
					{dataField: "name_display_first_last", title: "Player", sortable:true,decorator:function(that) {
							var dr = player_search_results.rows(that.row);
							var pid = dr.cell("player_id").value.toString();
							var player_name = dr.cell("name_display_first_last").value.toString();
							return '<a href="/team/player.jsp?player_id=' + pid + '">' + player_name + '</a>';
						}
					},
					{dataField: "player_id", title: "Player ID", type: bam.datagrid.DataType.Number, visible:false},
					{dataField: "team_abbrev", title: "Team", sortable:true},
					{dataField: "position", title: "Position", sortable:true},
					{dataField: "service_years", title: "Years Active", sortable:true,visible:false}
				]
		});
		
var player_search = (function(){
	var _self = {
		generateResults : function(player,is_historical) {
			$("div#ps_results").addClass("loadingMask");
			$("div#ps_results table").hide();
			$("div#ps_results").empty();
			var active_flag = "";
			if (is_historical) { 
				active_flag = "&active_sw='N'";
			} else {
				active_flag = "&active_sw='Y'";
			}
			var ds = "/lookup/json/named.search_player_all.bam?sport_code='mlb'&name_part='" + player.toUpperCase() + "%25'"+active_flag;
			player_search_results.dataSource = ds;
			if (is_historical) {
				player_search.loadResults("search_player_all",true);
			} else {
				player_search.loadResults("search_player_all");
			}
			return false;
		},
		
		loadResults : function(query_results_name,is_historical) {
			player_search_results.clearData();
			player_search_results.loadData({
				dataset: query_results_name,
				async: true,
				callback: function() {						
					player_search_results.refresh("ps_results");
					$("div#ps_results").removeClass("loadingMask");
					$("div#ps_results table").show();
					if (is_historical == true) {
						$("div#ps_results table.jtable th[index=4]").show();
						$("div#ps_results table.jtable td[index=4]").show();
						$("div#ps_results table.jtable th[index=2]").hide();
						$("div#ps_results table.jtable td[index=2]").hide();
						$("div#ps_results table.jtable").addClass("historical");
					}
					return false;
				}
			});
		},
		
		validate_input : function(form_id) {
			var ln = $("form#"+form_id+" input[id^='ps_']");
			var ln_id = ln.attr("id");
			var inputText = ln.val();
			var alphaNumeric = /^[a-z|A-Z|\-|\'|\s]*$/g;
			var isLegal = inputText.match(alphaNumeric);
			var msg = "";
			if (inputText.length <= 1 || inputText == "Enter Last Name") {
				msg = "Please refine your search to include the first two letters of the player's last name.";
			} else if (!isLegal) {
				msg = "Illegal characters were entered in the search box.";
			}
			if (msg.length < 1) {
				ln.css("background-color","white");
				$("span#player_search_err_msg").hide();
				return true;
			} else {
				ln.css("background-color","red");
				var $err = $("<span></span>").attr("id","player_search_err_msg").html("<br />"+msg).css("color","red");
				$("form#"+form_id+" label[for='"+ln_id+"']").after($err);
				return false;
			}
		}
	}; //end self
	return _self;
})();


$(document).ready(function() {
		$("form#searchforplayer1").submit(function() {
			var test_id = $(this).attr("id");
			if (player_search.validate_input(test_id)) {
				player_search.generateResults($("#ps_lastname").val());
			} else {
				$("div#ps_results").removeClass("loadingMask");
				$("div#ps_results table").show();
			}
			return false;
		});
		
		$("form#searchforhistoricalplayer").submit(function() {
			var test_id_2 = $(this).attr("id");
			if (player_search.validate_input(test_id_2)) {
				player_search.generateResults($("#ps_playerLocator").val(),true);
			} else {
				$("div#ps_results").removeClass("loadingMask");
				$("div#ps_results table").show();
			}
			return false;
		});
		
		$("form#searchforplayer2").submit(function() {
			var test_id_3 = $(this).attr("id");
			$("div#ps_results").addClass("loadingMask");
			$("div#ps_results table").hide();
			if ($("#ps_position").val()!="")  {
				$("div#ps_results").empty();
				var dataSource = "/lookup/json/named.search_player_all_pos.bam?sport_code='mlb'&active_sw='Y'";
				dataSource += "&position='" + $("#ps_position").val() + "'";
				if ($("input[name=ps_conference]:checked").val()!="") {
					dataSource += "&league_code='" + $("input[name=ps_conference]:checked").val() + "'";
				}
				player_search_results.dataSource = dataSource;
				player_search.loadResults("search_player_all_pos");
				return false;
			} else {
				$("div#ps_results").removeClass("loadingMask");
				$("div#ps_results table").show();
				alert("Please select a position from the drop down.");
			}
		});
		
var passed_vars = window.location.search.substring(1);
if (passed_vars) {
	var passed_keys = passed_vars.split("&");
	for (var i=0;i < passed_keys.length;i++) {
			var val = passed_keys[i].split("=");
			if (val[0] == "ps_lastname") {
				player_search.generateResults(val[1]);
			}
			if (val[0] == "ps_playerLocator") {
				player_search.generateResults(val[1],true);
			}
		}
} 
});

