
//AJAX functions
function GetXmlHttpObject()
{ 
  var objXMLHttp=null;
  if (window.XMLHttpRequest)
  {
    objXMLHttp=new XMLHttpRequest();
  }
  else if (window.ActiveXObject)
  {
    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  return objXMLHttp;
} 

var xmlHttp;
function getCityState(txtZipCode)
{
  //zip code lookup is available only for USA or CAN
  objForm = txtZipCode.form;
  if(!(objForm.countryCD.options[objForm.countryCD.selectedIndex].value == "USA" || objForm.countryCD.options[objForm.countryCD.selectedIndex].value == "CAN") ) {
    return(false);
  }

  var strZipCode = txtZipCode.value;
  if (strZipCode.length==0)
  {
    document.getElementById("cityState").innerHTML="";
    return;
  }
  
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
  	// browser does not support AJAX: do it the old fashioned way
  	this.form.LOOKUP.value = 'YES';
  	this.form.submit();
    return;
  }
  var url="/WebSiteSS/servlets/citystateservlet";
  url=url+"?zipCode="+strZipCode;
  url=url+"&sid="+Math.random();

  xmlHttp.onreadystatechange=populateCityState;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}

function populateCityState()
{
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  {
    var zscColl = eval('(' + xmlHttp.responseText + ')').zipCityStateCollection;
    cityStateCount = zscColl.length;
    
    var str = "<table width='100%' border='1' cellspacing='0' cellpadding='3' bgcolor='#ffffff'>";
        str += "<tr><th colspan='4'><b>Select your city state combination</b></td></tr>";
        str += "<tr>";
        str += "<th style='text-align:center'>Select</th>";
        str += "<th style='text-align:center'>City</th>";
        str += "<th style='text-align:center'>State</th>";
        str += "<th style='text-align:center'>Country</th>";
        str += "</tr>";
    
    for (var i=0;i<zscColl.length;i++)
    {
        str += "<tr>";
        str += "<td style='text-align:center'>";
        str += "<input type='radio' name='cityStateSelect' value='"+i+"'class='formelement' onclick='copyValues(this); resetCityState();'>";
        str += "<input type='hidden' name='lookupZipCode' value='"+zscColl[i].zipcode+"' >";
        str += "</td>";
        str += "<td style='text-align:center'>";
        str += "<input type='hidden' name='lookupCity' value='"+zscColl[i].city+"' >";
        str += zscColl[i].city;
        str += "</td>";
        str += "<td style='text-align:center'>";
        str += "<input type='hidden' name='lookupStateProvince' value='"+zscColl[i].stateProvinceName+"' >";
        str += "<input type='hidden' name='lookupStateProvinceCode' value='"+zscColl[i].stateProvinceCD+"' >";
        str += zscColl[i].stateProvinceName;
        str += "</td>";
        str += "<td style='text-align:center'>";
        str += "<input type='hidden' name='lookupCountryCode' value='"+zscColl[i].countryCD+"' >";
        str += zscColl[i].countryCD;
        str += "</td>";
        str += "</tr>";
    }
    str += "</table>";

    document.getElementById("cityState").innerHTML=str;
  } 
}


function activateSession()
{
  //alert("inside activateSession");

  
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
    alert ("Browser does not support HTTP Request");
    return;
  } 
  var url="/WebSiteSS/servlets/activatesession";
//alert(url);
  xmlHttp.onreadystatechange=sessionActivated ;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
} 

var activateSessionId;
function sessionActivated(){
	//alert("Session Activated");
  clearTimeout(activateSessionId);
  genericTimer(600000,'activateSession()');
}



//get employee info
function getEmployeeInfo(objForm)
{
 var strEmpFirstName = '';
 var strEmpLastName = objForm.lastName.value;

  if (strEmpLastName.length==0)
  {
    return;
  }
  
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
  	// browser does not support AJAX: do not do anything
    return;
  }
  var url="/WebSiteSS/servlets/employeeinfoservlet";
  url=url+"?empFirstName="+strEmpFirstName+"&empLastName="+strEmpLastName;
  xmlHttp.onreadystatechange=populateEmployeeInfo;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}

function populateEmployeeInfo()
{
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
  	if(xmlHttp.responseText =="" ){
	  alert("Sorry, this Employee not found in database");
	}else {
    var empColl = eval('(' + xmlHttp.responseText + ')').employeeCollection;
    var str = "<table width='100%' border='1' cellspacing='0' cellpadding='3' bgcolor='#ffffff'>";
        str += "<tr><th colspan='4' style='text-align:center'><b>Select your Name</b></td></tr>";
        str += "<tr>";
        str += "<th style='text-align:center'>Select</th>";
        str += "<th style='text-align:center'>First Name</th>";
        str += "<th style='text-align:center'>Last Name</th>";
        str += "<th style='text-align:center'>Department Name</th>";
        str += "</tr>";
	    for (var i=0;i<empColl.length;i++) {
	        str += "<tr>";
	        str += "<td style='text-align:center'>";
	        str += "<input type='radio' name='empNo' value='"+empColl[i].empNo+"'class='formelement' onclick='copyEmployeeValues(this.form); resetEmployee();'>";
	        str += "</td>";
	        str += "<td style='text-align:center'>";
	        str += "<input type='hidden' name='empFirstName' value='"+empColl[i].empFirstName+"' >";
	        str += empColl[i].empFirstName;
	        str += "</td>";
	        str += "<td style='text-align:center'>";
	        str += "<input type='hidden' name='empLastName' value='"+empColl[i].empLastName+"' >";
	        str += "<input type='hidden' name='empNickName' value='"+empColl[i].empNickName+"' >";
	        str += empColl[i].empLastName;
	        str += "</td>";
	        str += "<td style='text-align:center'>";
	        str += "<input type='hidden' name='empSupervisorNumber' value='"+empColl[i].empSupervisorNumber+"' >";
	        str += "<input type='hidden' name='empDeptNumber' value='"+empColl[i].deptNo+"' >";
	        str += empColl[i].deptName;
	        str += "</td>";
	        str += "</tr>";
	    }
    str += "</table>";

    document.getElementById("employeeList").innerHTML=str;
    }
  } 
}

function getEmployeeShows(objForm)
{
    var alertString = "The following fields are required.\n";
    var displayAlert = false;
    	
    //var objForm = txtDate.form;
  var locationCD = "";
  if(objForm.locationCD[0].checked){
	  locationCD = "STRASBURG_PA";
  }else if(objForm.locationCD[1].checked){
	  locationCD = "BRANSON_MO";
  }

  var empBenefitCodeSelected = false;
  for(var i = 1; i <  objForm.empBenefitCode.length; i++) {
	 if(objForm.empBenefitCode[i].selected) {
		 empBenefitCodeSelected = true;
		 break;
	 }
  }
  if(!empBenefitCodeSelected){
  	  alertString += "Ticket Type.\n";
  	  displayAlert = true; 	  
  }   
       
  if(verifyIndividualCount(objForm) == false) {
	 return false;
  }	

 // var strDate = txtDate.value;
  var strDate = objForm.showDate.value;
  if (strDate.length==0) {
	  alertString += "Show date.\n";
	  displayAlert = true;
  }
  if (! /\d{1,2}\/\d{1,2}\/\d{2}/.test(strDate)) {
    //alert("Invalid date format.  MM/DD/YY is required.");
    //document.getElementById("selectShow").innerHTML="&nbsp;";
   // return;  	
	  alertString += "Invalid date format. Show date should be MM/DD/YY format.\n";
	  displayAlert = true;    
  }
 

  if(displayAlert) {
	  alert(alertString);
	  document.getElementById("selectShow").innerHTML="&nbsp;";    
	  return (false);
  }

	
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
  	// browser does not support AJAX: do it the old fashioned way
  	txtDate.form.LOOKUP.value = 'YES';
  	txtDate.form.submit();
    return;
  }
  
  var empBenefitCode;
  for(var i = 1; i <  objForm.empBenefitCode.length; i++) {
	 if(objForm.empBenefitCode[i].selected) {
	   empBenefitCode = objForm.empBenefitCode[i].value;			
	   break;	
	 }
  } 
  
  var count = document.forms[0].total_seats.value;
  var url="/WebSiteSS/servlets/employeeShowSearch?showDate="+strDate+"&sid="+Math.random()+"&count="+count+"&empBenefitCode="+empBenefitCode+"&locationCD="+locationCD;
  xmlHttp.onreadystatechange=populateEmployeeShowSelect;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}

function populateEmployeeShowSelect()
{
  try {
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  {
    var eventColl = eval('(' + xmlHttp.responseText + ')').eventColl;
    var errorColl = eval('(' + xmlHttp.responseText + ')').errorColl;
    var str = "";

    if (typeof(eventColl) == "undefined" || typeof(eventColl.length) == "undefined" || eventColl.length == 0) {
      str += "<font color='red' size='3'> No shows found.  Please try a different date.</font>";
      document.getElementById("selectShow").innerHTML=str;
      return; 
    }

    str += "<table height='100%' border='1' cellspacing='0' cellpadding='3'>";
    for (var i = 0; i < eventColl.length; i++) {
      str += "<tr><th colspan='4' style='text-align:left'>"+eventColl[i].eventName+"&nbsp;&nbsp;";
      //add show availability link
      str += "<a class='pageLink' href=javascript:openInfoWindow('/WebSiteSS/ordertix/getShowCalendarAct.do?eventCD="+eventColl[i].eventCD+"','600','500');>Show Availability</a>&nbsp;&nbsp;";      
	  str += "</th></tr>"; 
      str += "<tr>";
      str += " <td colspan='4' style='text-align:center'>";	 
      str += "<table height='100%' border='1' cellspacing='0' cellpadding='3'>";
      str += " <td class='fontPageSubTitle'>"+"Select"+"</td>";	 
      str += " <td class='fontPageSubTitle'>"+"Show time"+"</td>";
      str += " <td class='fontPageSubTitle'>"+"Available seats"+"</td>";
      str += " <td >"+"&nbsp;"+"</td>";
      var eventTimes = eventColl[i].eventTimes;
      for (var j = 0; j < eventTimes.length; j++) {
        str += "<tr>";
        str += " <td style='text-align:center'>";
		str += "<input type='radio' name='showSelection' value='"+eventTimes[j].showSelection+"' class='input' onclick=\"enableDisableSeatingPreference(\'"+eventTimes[j].showLocationCD+"\',\'"+eventTimes[j].eventTypeCD+"\');\">";        
        str += " </td>";
        str += "<td>"+eventTimes[j].timeDisplay+"</td>";
        str += "<td>"+eventTimes[j].availableSeats+"</td>";
        
        //seating chart link
        str += " <td>";
        if(eventTimes[j].ticketedYN == 'Y'){
        	var showSelectionStr = eventTimes[j].showSelection;
			var eventCD = showSelectionStr.substring(0,showSelectionStr.indexOf("|"));
			var strShowDateTime = showSelectionStr.substring(showSelectionStr.indexOf("|")+1);
        	str +="<a class='pageLink' href=javascript:openInfoWindow('/WebSiteSS/ordertix/viewSeatingChart.do?eventCD="+eventCD+"&showDateTime="+escape(strShowDateTime)+"','1100','950');>Check Seating</a>";
        }else{
        	str += "&nbsp;";            
        }
        str += "</td>";
        str += "</tr>";
      } //end of inner for loop
      str += "</table>";
      str += "</td>";
      str += "</tr>";      
    } //end of outer for loop
    str += "</table>";
      //alert(str);    
    document.getElementById("selectShow").innerHTML=str;
    
  }
  } catch (e) {
    alert(e.message);
  }
}


function getShows(txtDate)
{
    var objForm = txtDate.form;
	if(verifyIndividualCount(objForm) == false) {
	    return false;
	}	

  var strDate = txtDate.value;
  if (strDate.length==0) {
    document.getElementById("selectShow").innerHTML="&nbsp;";
    return;
  }
  if (! /\d{1,2}\/\d{1,2}\/\d{2}/.test(strDate)) {
    alert("Invalid date format.  MM/DD/YY is required.");
    document.getElementById("selectShow").innerHTML="&nbsp;";
    return;  	
  }
  
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
  	// browser does not support AJAX: do it the old fashioned way
  	txtDate.form.LOOKUP.value = 'YES';
  	txtDate.form.submit();
    return;
  }
  var count = document.forms[0].total_seats.value;
  var url="/WebSiteSS/servlets/fasterSalesShowSearch?showDate="+strDate+"&sid="+Math.random()+"&count="+count;
//alert(url);
  xmlHttp.onreadystatechange=populateShowSelect;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}

function populateShowSelect()
{
	//alert("coming inside");	
  try {
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  {
    var eventColl = eval('(' + xmlHttp.responseText + ')').eventColl;
    var errorColl = eval('(' + xmlHttp.responseText + ')').errorColl;
    var str = "";

    if (errorColl != null && errorColl.length >= 0) { 
   	  str += "<font color='red' size='3'> The HOT discount cannot be applied to this order.<br>";
   	  str += "We have not received your Participation Form for this show season.<br>";   
   	  str += "Please contact us at 717.687.4220 x 2280 to receive the Participation Form.</font>" ;
      document.getElementById("selectShow").innerHTML=str;
      return;
    }else if (eventColl != null && eventColl.length == 0) {
      str += "<font color='red' size='3'> No shows found.  Please try a different date.</font>";
      //alert(str);
      document.getElementById("selectShow").innerHTML=str;
      return; 
    }

    str += "<table height='100%' border='1' cellspacing='0' cellpadding='3'>";
    for (var i = 0; i < eventColl.length; i++) {
    	
      str += "<tr><th colspan='3' style='text-align:left'>"+eventColl[i].eventName+"&nbsp;&nbsp;";
      /*
      if("LW"==eventColl[i].locationCD){
        str +="<a class='pageLink' href=javascript:openInfoWindow('/WebSiteSS/ordertix/images/seat_livingwaters.jpg','650','400');>Seating Chart</a>&nbsp;&nbsp;&nbsp;&nbsp;";
      }else if("MT"==eventColl[i].locationCD){
        str +="<a class='pageLink' href=javascript:openInfoWindow('/WebSiteSS/ordertix/images/MT_2006.jpg','650','400');>Seating Chart</a>&nbsp;&nbsp;&nbsp;&nbsp;";      
      }else if("BR"==eventColl[i].locationCD){
        str +="<a class='pageLink' href=javascript:openInfoWindow('/WebSiteSS/ordertix/images/seat_branson.jpg','650','400');>Seating Chart</a>&nbsp;&nbsp;&nbsp;&nbsp;";      
      }
      */
      //add show availability link
        str +="<a class='pageLink' href=javascript:openInfoWindow('/WebSiteSS/ordertix/getShowCalendarAct.do?eventCD="+eventColl[i].eventCD+"','600','500');>Show Availability</a>&nbsp;&nbsp;";      
		str +="</th></tr>"; 
	              
      var eventTimes = eventColl[i].eventTimes;
      for (var j = 0; j < eventTimes.length; j++) {
        str += "<tr>";
        str += " <td style='text-align:center'>";
		str += "<input type='radio' name='showSelection' value='"+eventTimes[j].showSelection+"' class='input' onclick=\"enableDisableSeatingPreference(\'"+eventTimes[j].showLocationCD+"\',\'"+eventTimes[j].eventTypeCD+"\');\">";        
        str += " </td>";
        str += "<td>"+eventTimes[j].timeDisplay+"</td>";
        //seating chart link
        str += " <td>";
        if(eventTimes[j].ticketedYN == 'Y'){
        	var showSelectionStr = eventTimes[j].showSelection;
			var eventCD = showSelectionStr.substring(0,showSelectionStr.indexOf("|"));
			var strShowDateTime = showSelectionStr.substring(showSelectionStr.indexOf("|")+1);
        	str +="<a class='pageLink' href=javascript:openInfoWindow('/WebSiteSS/ordertix/viewSeatingChart.do?eventCD="+eventCD+"&showDateTime="+escape(strShowDateTime)+"','1100','950');>Check Seating</a>";
        }else{
        	str += "&nbsp;";            
        }
        str += "</td>";
        str += "</tr>";
      }
    }
    str += "</table>";
      //alert(str);    
    document.getElementById("selectShow").innerHTML=str;
    
  }
  } catch (e) {
    alert(e.message);
  }
}
