bam.imports(bam.soap,bam.xml);

var HologramId = "";
var enterType;
var enterId;
var popupRef = null;

var Authenticator = {
			SoapRequest: function (hType, hId) {
					var Sreq = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">" + 
					"<soapenv:Header><ns0:appCredentials xmlns:ns0=\"http://services.bamnetworks.com/application/types/1.0\" /> " +
					"</soapenv:Header><soapenv:Body><m:getHologramData xmlns:m=\"http://auth.mlb.com\">" +
					"<type>" + hType + "</type><id>" + hId + "</id>" +
					"</m:getHologramData></soapenv:Body></soapenv:Envelope>";					
					return Sreq;
			},
			RequestAuthentication: function(soapReq, callback) {
					$.ajax({
						 type: "POST",
						 url: "/mlb/components/authentication/auth_proxy.jsp",
						 dataType: "xml",
						 processData: false,
						 data: soapReq,
						 complete: callback,
						 beforeSend: function(req) {
						 		req.setRequestHeader("SOAPAction", "authJavaBeanService");
						 }
					})			
			}
}

function testInput (prefix, serialNum) {	
	var minLength;
	var maxLength;	
	switch(prefix) {
		case ""    :
			alert("You must select a letter code!");
			return false;
			break;
		case "AR"  :
		case "BB"  :
		case "BC"  :
		case "LH"  :
		case "GR"  :
		case "MR"  :
		case "RD"  :
		case "SH"  :
		case "WBC" :
		case "__" :
			minLength = 6;
			maxLength = 6;
			break;
		case "GT"  :
			minLength = 5;
			maxLength = 6;
			break;
		case "R"   :
			minLength = 7;
			maxLength = 7;
			break;
		case "AT"  :
			minLength = 6;
			maxLength = 8;
			break;
		case "MT"  :
		case "TD"  :
		case "CR"  :
		case "DR"  :
		case "DT"  :
			minLength = 8;
			maxLength = 8;
			break;
		case "T"   :
			minLength = 9;
			maxLength = 9;
			break;
	}
	var serialLength = serialNum.length;	
	if (serialLength<1) {
		alert("You must select a number code!");
		return false;
	}	
	var tooShort = serialLength < minLength;
	var tooLong = serialLength > maxLength;
	if (tooShort || tooLong) {
		var errorMsg = "The number code must be ";
		if (minLength != maxLength) {
			errorMsg += "between " + minLength + " and " + maxLength;
		} else {
			errorMsg += minLength;
		}
		errorMsg += " digits!";    
		alert(errorMsg);
		return false;
	}
	return true;
}



function getVal(){
	enterType = $('#typeInput').val();
	enterId = $('#idInput').val();
	HologramId = enterType + enterId;
	if (testInput(enterType,enterId)) {
		popWin('/mlb/authentication/results_pop.jsp','authenticate',473,645);				
	}
}


function init(){
	var SR = Authenticator.SoapRequest(window.opener.enterType,window.opener.enterId);
	Authenticator.RequestAuthentication(SR, processRequest);
	$('div#resultsNfo').text("Working...");
}

function processRequest (data){

	var AuthData     = bam.xml.xmlToJSON(data.responseXML);
	
	if (AuthData){
			var ResponseData = AuthData.Body[0].getHologramDataResponse[0].getHologramDataReturn[0].authenticationResponse[0].authenticationSessions.responseCode;
			 
			if ((ResponseData != -1) && (AuthData.Body[0].getHologramDataResponse[0].getHologramDataReturn[0].authenticationResponse[0].authenticationSessions[0].authenticationSession)){
					var Adata = AuthData.Body[0].getHologramDataResponse[0].getHologramDataReturn[0].authenticationResponse[0].authenticationSessions[0].authenticationSession;
					var DataLen = Adata.length;
					var	holID = Adata[0].sessionData[0].dataItem[1].value[0].Text;
					var	storedUnder = Adata[0].sessionData[0].dataItem[4].value[0].Text;
					var	prodDesc = Adata[0].sessionData[0].dataItem[5].value[0].Text;
					var game = Adata[0].sessionData[0].dataItem[18].value[0].Text;
					/*
					var aInfo = Adata[0].sessionData[0].dataItem[17].value[0].Text;
					if (aInfo){
						addNfo = "<strong>Additional Information:</strong> <span id=\"additional\">" + aInfo + "</span>"	;
						$('div#addInfo').html(addNfo);
					}else{
						addNfo = "";
						$('div#addInfo').text(addNfo);
					}
					*/
					if (game){
						gameData = "<strong>Game:</strong> <span id=\"game\">" + game + "</span>"	;
						$('div#gameDiv').html(gameData);
					}else{
						gameData = "";
						$('div#gameDiv').text(gameData);
					}
					
					$('span#holgrm').text(holID);
					$('span#itemStored').html(storedUnder);
					$('span#SessionProd').html(prodDesc);
					var dataDisp = "";
					for(i=0;i<DataLen;i++){
						var	SessionName = Adata[i].sessionData[0].dataItem[7].value[0].Text;
						var	SessionDate = Adata[i].sessionData[0].dataItem[8].value[0].Text;
						var DateSpl = SessionDate.split("-");
						var sessionYr = DateSpl[0];
						var sessionMn = DateSpl[1];
						var sessionDay = DateSpl[2];
						var sMonth;
						switch(sessionMn)
						{
						case "01":
							sMonth = "January";
							break;
						case "02":
							sMonth = "Feburary";
							break;
						case "03":
							sMonth = "March";
							break;
						case "04":
							sMonth = "April";
							break;
						case "05":
							sMonth = "May";
							break;
						case "06":
							sMonth = "June";
							break;
						case "07":
							sMonth = "July";
							break;
						case "08":
							sMonth = "August";
							break;
						case "09":
							sMonth = "September";
							break;
						case "10":
							sMonth = "October";
							break;
						case "11":
							sMonth = "November";
							break;
						case "12":
							sMonth = "December";
							break;
						}	
						var sDate = sMonth + " " + sessionDay + ", " + sessionYr;
						var autographer = Adata[i].sessionData[0].dataItem[16].value[0].Text;
						var autogrphData = (typeof autographer !="undefined") ? autographer : "" ;
						var authenticator = Adata[i].sessionData[0].dataItem[14].value[0].Text;
						 
						dataDisp += "<b>Session Name:</b> <span class=\"dataStr\">" + SessionName + "</span><br />" +
												"<b>Session Date:</b> <span clsss=\"dataStr\">" + sDate + "</span><br />" +
												"<b>Autographer:</b> <span class=\"dataStr\">" + autogrphData + "</span><br />" +
												"<b>Authenticator:</b> <span class=\"dataStr\">" + authenticator + "</span><br />";
						
						/* Additional Info change 10-2008 */
						var aInfo = Adata[i].sessionData[0].dataItem[17].value[0].Text;
						if (aInfo){
							dataDisp += "<b>Additional Information:</b> <span class=\"dataStr\">" + aInfo + "</span><br />";
						}
						dataDisp += "<br />";

					}
					
					
					$('div#resultsNfo').html(dataDisp);
			} else if (ResponseData == -1 || ResponseData == "" || ResponseData == null) {
								alert("Hologram ID " + window.opener.HologramId + " not found.\n\nCheck your id and re-enter it or please try again later.");
								window.close();
			} 
		}	else {
				alert("The Service is currently not working. Please try again later");
				//window.close();
	}
	//alert(holID);
	//alert(storedUnder);
	//alert(prodDesc);
	//alert(Game);
	//alert(SessionName);
	//alert(GmDate);
	//window.open('testpop.html','mywindow','width=400,height=200');
}