var deleteBtn = false;

var usStates = new Array(
"Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine",
"Maryland","Massachusettes","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio",
"Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","Washington DC","West Virginia","Wisconsin","Wyoming",
"AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE",
"NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","DC","WV","WI","WY")


var caProv = new Array(
"Alberta","British Columbia","New Brunswick","Newfoundland","Nova Scotia","Nunavut","Manitoba","Ontario","Prince Edward Island","Quebec","Saskatchewan","Yukon Territory",
"AB","BC","NB","NL","NS","NU","MB","ON","PE","QC","SK","YT")


function getStates(countryObj,selValue){
	cid = countryObj.el.value;
	type = countryObj.el.name.substr(0,4);
	if((type != "bill") && (type != "ship")){
	  type = "";
	}
	var selbox = document.getElementById(type + "state");
	var stateBox = new Dynamic(document.getElementById(type + "StateBox"));
	selbox.options.length = 0;
	if (cid == "215") {
	  numStates = usStates.length/2;
	  for(s=0; s<numStates; s++){
		var choose = (usStates[s+numStates] == selValue) ? true : false;
	    selbox.options[selbox.options.length] = new Option(usStates[s],usStates[s+numStates],"",choose);
	  }
	  stateBox.showBlock();
	} else if (cid == "35") {
	  numProv = caProv.length/2;
	  for(p=0; p<numProv; p++){
	    var choose = (caProv[p+numProv] == selValue) ? true : false;
	    selbox.options[selbox.options.length] = new Option(caProv[p],caProv[p+numProv],"",choose);
	  }
	  stateBox.showBlock();
	} else {
	  stateBox.collapse();
	}
}


function showSub(ind) {
	var d = document.getElementsByTagName("div");
 	for (i=0; i<d.length; i++) {
		if(/^sub/.test(d[i].id))d[i].style.display = "none"
	}
	document.getElementById("sub"+ind).style.display = "block"
}


function upperCase(x){
	var y=document.getElementById(x).value;
	document.getElementById(x).value=y.toUpperCase()
}


function changeTripName(){
  Page.oldTripName.collapse();
  Page.newTripName.showBlock();;
  Page.newTripName.el.focus();
}


function showNewTripName(tripName){
  document.getElementById("oldTripName").innerHTML = tripName;
  Page.newTripName.collapse();
  Page.oldTripName.showBlock();
}


function jsRedirect(url){
  window.location = url;
}


function changeTicketOrder(orderStr){
  document.getElementById("ticketConf").innerHTML = arguments[0];
  document.getElementById("EventName").innerHTML = arguments[1];
  document.getElementById("EventDate").innerHTML = arguments[2];
  document.getElementById("EventTime").innerHTML = arguments[3];
  document.getElementById("VenueName").innerHTML = arguments[4];
  document.getElementById("City").innerHTML = arguments[5];
  document.getElementById("State").innerHTML = arguments[6];
  document.getElementById("Section").innerHTML = arguments[7];  
  document.getElementById("Row").innerHTML = arguments[8];
  document.getElementById("TicketNotes").innerHTML = arguments[9];
  document.getElementById("UpgradeMe").innerHTML = arguments[10];
  document.getElementById("ShipName").innerHTML = arguments[11];
  document.getElementById("PricePerTicket").innerHTML = '$' + arguments[12];
  document.getElementById("Quantity").innerHTML = arguments[13];
  document.getElementById("SubTotal").innerHTML = '$' + arguments[14];  
  document.getElementById("ShipCost").innerHTML = '$' + arguments[15];
  document.getElementById("ProcessingFee").innerHTML = '$' + arguments[16];
  document.getElementById("Tax").innerHTML = '$' + arguments[17];
  document.getElementById("grandTotal").innerHTML = '$' + arguments[18];
  Page.TicketList.collapse();
  Page.TicketFields.showBlock();
}


function changeName(firstname,lastname,company,middlename,prefix,suffix,i){
	document.getElementById("firstname" + i).value = firstname;
	document.getElementById("lastname" + i).value = lastname;
	try{
		document.getElementById("company" + i).value = company;
	} catch (e) {}
	try{
	  (!middlename) ? document.getElementById("nomiddlename" + i).checked = true : document.getElementById("nomiddlename" + i).checked = false;
		document.getElementById("middlename" + i).value = middlename;
	} catch (e) {}
	try{
		document.getElementById("prefix" + i).value = prefix;
	} catch (e) {}
	try{
		document.getElementById("suffix" + i).value = suffix;
	} catch (e) {}
}


function changePhone(dayph,nightph,cellph,i){
	try{
		document.getElementById("dayph" + i).value = dayph;
		document.getElementById("nightph" + i).value = nightph;
		document.getElementById("cellph" + i).value = cellph;
	} catch (e) {}
}


function changeBirthdate(birthdate,i){
	try{
    document.getElementById("birthdate" + i).value = birthdate;
	} catch (e) {}
}


function changeTraveler(travelerid,wheelchair,redressnum,i){
	document.getElementById("travelerid" + i).value = travelerid;
	try{
		document.getElementById("wheelchair" + i).value = wheelchair;
		document.getElementById("redressnum" + i).value = redressnum;
	} catch (e) {}
	try{
		Page.travelerFields = new Dynamic("travelerFields" + i);
		Page.travelerFields.showBlock();
	} catch (e) {}
}


function changeAddress(type,addressid,countryid,address1,address2,city,state,zip,i){
	try{
		document.getElementById(type + "addressid" + i).value = addressid;
		document.getElementById(type + "countryid" + i).value = countryid;
		document.getElementById(type + "address1" + i).value = address1;
		document.getElementById(type + "address2" + i).value = address2;
		document.getElementById(type + "city" + i).value = city;
		document.getElementById(type + "state" + i).value = state;
		document.getElementById(type + "zip" + i).value = zip;
		countryObj = new Dynamic(document.getElementById(type + "countryid" + i));
		getStates(countryObj,state);
	} catch (e) {}
	try{
		Page.addressFields = new Dynamic(type + "AddressFields" + i);
		Page.addressFields.showBlock();
	} catch (e) {}
}


function changeCard(cardid,addressid,type,number,ccv,expmonth,expyear,i){
  document.getElementById("cardid" + i).value = cardid;
  document.getElementById("billaddressid" + i).value = addressid;
  document.getElementById("type" + i).value = type;
  document.getElementById("number" + i).value = number;
  document.getElementById("ccv" + i).value = ccv;
  document.getElementById("expmonth" + i).value = expmonth;
  document.getElementById("expyear" + i).value = expyear;
  try{
    Page.cardFields = new Dynamic("cardFields" + i);
    Page.cardFields.showBlock();
  } catch (e) {}
}

function changeAcctButtons(type){
  if(type == 'add'){
    $('#delete').parent().hide();
    
    $('#type').parent().show();
    $('#number').parent().show();
    $('#ccv').parent().show();
  }else if(type == 'delete'){
    $('#delete').parent().show();
    
    $('#type').parent().hide();
    $('#number').parent().hide();
    $('#ccv').parent().hide();
  }
}


function changeReward(travelerrewardid,rewardid,rewardnum,i){
	document.getElementById("travelerrewardid" + i).value = travelerrewardid;
	document.getElementById("rewardid" + i).value = rewardid;
	document.getElementById("rewardnum" + i).value = rewardnum;
	try{
		Page.travelerRewardBox = new Dynamic("travelerRewardBox" + i);
		Page.travelerRewardBox.showBlock();
	} catch (e) {};
}


function changeTravelerRewards(rewardStr){
	travRewards = new Dynamic("travelerRewards");
	rewardCnt = (arguments.length/3);
	if(rewardCnt >= "1"){
		Page.frag = document.createDocumentFragment();
		myRewards = Page.frag.appendChild(document.createElement("div"));
		myRewards.setAttribute("id","myRewards");
		label = myRewards.appendChild(document.createElement("label"));
		label.className = "bigLabel";
		label.appendChild(document.createTextNode("Loyalty Programs"));
		for(r=0; r<rewardCnt; r++){
			rewardText = myRewards.appendChild(document.createElement("div"));
			rewardText.className = "column";
			rewardText.appendChild(document.createTextNode(arguments[r]));
			rewardText.appendChild(document.createTextNode(" #" + arguments[r+rewardCnt]));
			deleteBox = myRewards.appendChild(document.createElement("div"));
			deleteLink = deleteBox.appendChild(document.createElement("a"));
			deleteLink.appendChild(document.createTextNode("Delete"));
			traveler = document.getElementById("travelerid").value;
			deleteLink.setAttribute("href","travelers.php?travelerid=" + traveler + "&deleteReward=" + arguments[r+(rewardCnt*2)]);
		}
		travRewards.empty();
		travRewards.el.appendChild(Page.frag);
	}else{
		travRewards.empty();
	}
}


function valDetails(i) {
	if(!valName(i)) return false;
	if(!valPhone(i)) return false;
	var Email = new FormField(document.getElementById("email"));

  var Birthdate = new FormField(document.getElementById("birthdate"));
  var Redressnum = new FormField(document.getElementById("redressnum"));
  
	if(!Email.valEmail("Please enter a valid email address.")) return false;
  
  if(!Birthdate.valNotEmpty("Please enter your birthdate.")) return false;
  if(!Birthdate.valDate("Please enter your birthdate.")) return false;
  if(Redressnum.isNotEmpty()) {
    if(!Redressnum.valAlphaNum("Please enter a redress number with the characters a-z, A-Z, and 0-9.")) return false;
    if(!Redressnum.valMaxLength(99,"The redress number you entered is longer than the 99 characters allowed.")) return false;
  }
  
	return true;
}


function valTraveler(t,r){
	if(!deleteBtn){
	  if(!valName(t)) return false;
	  if(!valPhone(t)) return false;
	  if(!valBirthdate(t)) return false;
	  if(!valRewards(t,r)) return false;
	  
	  var Redressnum = new FormField(document.getElementById("redressnum"));
	  
	  if(Redressnum.isNotEmpty()) {
      if(!Redressnum.valAlphaNum("Please enter a redress number with the characters a-z, A-Z, and 0-9.")) return false;
	    if(!Redressnum.valMaxLength(99,"The redress number you entered is longer than the 99 characters allowed.")) return false;
	  }
	    
	  deleteBtn = false;
	}
	return true;
}


function valPref() {
	var Portid = new FormField(document.getElementById("portid"));
	if(!Portid.valNum("Please enter a prefered departure airport.")) return false;
	return true;
}


function valChangePassword() {
	var Pass = new FormField(document.getElementById("pass"));
	var Newpass = new FormField(document.getElementById("newpass"));
	var Verifypass = new FormField(document.getElementById("verifypass"));
	if(!Pass.valAlphaNum("Please enter a password with the characters a-z, A-Z, and 0-9.")) return false;
	if(!Pass.valMinLength(6,"The password requires 6 characters.")) return false;
	if(!Newpass.valAlphaNum("Please enter a new password with the characters a-z, A-Z, and 0-9.")) return false;
	if(!Newpass.valMinLength(6,"The new password requires 6 characters.")) return false;
	if(!Verifypass.valAlphaNum("Please verify the password with the characters a-z, A-Z, and 0-9.")) return false;
	if(!Verifypass.valMinLength(6,"The verified password requires 6 characters.")) return false;
	if(!Verifypass.valEqualTo(Newpass.fieldValue,"Please make sure the password and verified password matches.")) return false;
	return true;
}


function valName(i){
	try{
		if(i){ var m = " for traveler #" + i + ".";	}else{ var m = ".";	}
		var Firstname = new FormField(document.getElementById("firstname" + i));
		var Middlename = new FormField(document.getElementById("middlename" + i));
		var Lastname = new FormField(document.getElementById("lastname" + i));
		if(!Firstname.valAlphaSpace("Please enter a valid first name" + m)) return false;

	  if(document.getElementById("nomiddlename" + i).checked != true) {
	    if(!Middlename.valAlphaSpace("Please enter a valid middle name" + m)) return false;
	  }
	
		if(!Lastname.valAlphaSpace("Please enter a valid last name" + m)) return false;
		try{
			var Prefix = new FormField(document.getElementById("prefix" + i));
			if(!Prefix.valPosNum("Please select a valid prefix" + m)) return false;
		} catch (e) {}		
		try{
			var Company = new FormField(document.getElementById("company" + i));
			if(Company.isNotEmpty()) {
				if(!Company.valAlphaNumExtra("Please enter a valid company name" + m)) return false;
			}
		} catch (e) {}
	} catch (e) {}
	return true;
}


function valPhone(i){
	try{
		if(i){ var m = " for traveler #" + i + ".";	}else{ var m = ".";	}
		var Dayph = new FormField(document.getElementById("dayph" + i));
		var Nightph = new FormField(document.getElementById("nightph" + i));
		var Cellph = new FormField(document.getElementById("cellph" + i));
		if(!Dayph.valPhone("Please enter a valid daytime phone" + m)) return false;
		if(Nightph.isNotEmpty()) {
			if(!Nightph.valPhone("Please enter a valid evening phone number" + m)) return false;
		}
		if(Cellph.isNotEmpty()) {
			if(!Cellph.valPhone("Please enter a valid cell phone number" + m)) return false;
		}
	} catch (e) {}
	return true;
}


function valUSPhone(i){
	try{
		if(i){ var m = " for traveler #" + i + ".";	}else{ var m = ".";	}
		var Dayph = new FormField(document.getElementById("dayph" + i));
		var Nightph = new FormField(document.getElementById("nightph" + i));
		var Cellph = new FormField(document.getElementById("cellph" + i));
		if(!Dayph.valUSPhone("Please enter a valid daytime phone" + m)) return false;
		if(Nightph.isNotEmpty()) {
			if(!Nightph.valUSPhone("Please enter a valid evening phone number" + m)) return false;
		}
		if(Cellph.isNotEmpty()) {
			if(!Cellph.valUSPhone("Please enter a valid cell phone number" + m)) return false;
		}
	} catch (e) {}
	return true;
}


function valBirthdate(i){
	try{
		if(i){ var m = " for traveler #" + i + ".";	}else{ var m = ".";	}
		var Birthdate = new FormField(document.getElementById("birthdate" + i));
		if(!Birthdate.valAlphaNumExtra("Please enter a valid birthdate" + m)) return false;
		if(!Birthdate.valMaxLength(10,"The birthdate is more than the required 10 characters" + m)) return false;
		if(!Birthdate.valMinLength(10,"The birthdate is less than the required 10 characters" + m)) return false;
	} catch (e) {}
	return true;
}


function valCard(i){
	if(!deleteBtn){
	  try{
		  if(!valName(i)) return false;
			var Expmonth = new FormField(document.getElementById("expmonth"));
			var Expyear = new FormField(document.getElementById("expyear"));
      if(!Expmonth.valNum("Please select the expiration month.")) return false;
      if(!Expyear.valNum("Please select the expiration year.")) return false;

      if(document.getElementById('cardid').value < '0'){
	      var Type = new FormField(document.getElementById("type"));
	      var CardNumber = new FormField(document.getElementById("number"));
	      var Ccv = new FormField(document.getElementById("ccv"));			
				if(!Type.valAlpha("Please select a card type.")) return false;
				if(!CardNumber.valNum("Please enter a valid card number.")) return false;
				if(!CardNumber.valMinLength(15,"The card number requires 15 characters.")) return false;
				if(!Ccv.valNum("Please enter a valid security code.")) return false;
				if(!Ccv.valMinLength(3,"The security code requires 3 characters.")) return false;
      }
      
	  } catch (e) {}
	  deleteBtn = false;
	}
	return true;
}


function valAddress(i){
	if(!deleteBtn){
	  try{
		if(!valName(i)) return false;
		var Address1 = new FormField(document.getElementById("address1"));
		var Address2 = new FormField(document.getElementById("address2"));
		var City = new FormField(document.getElementById("city"));
		var Zip = new FormField(document.getElementById("zip"));
		if(!Address1.valAlphaNumExtra("Please enter a valid address.")) return false
		if(Address2.isNotEmpty()) {	
			if(!Address2.valAlphaNumExtra("Please enter a valid address.")) return false
		}
		if(!City.valAlphaSpace("Please enter a valid city/town.")) return false
		if(!Zip.valZip("Please enter a valid zip/postal code.")) return false;
	  } catch (e) {}
	  deleteBtn = false;
	}
	return true;
}


function valBillAddress(i){
	try{
		if(!valName(i)) return false;
		var BillAddress1 = new FormField(document.getElementById("billaddress1"));
		var BillAddress2 = new FormField(document.getElementById("billaddress2"));
		var BillCity = new FormField(document.getElementById("billcity"));
		var BillZip = new FormField(document.getElementById("billzip"));
		if(!BillAddress1.valAlphaNumExtra("Please enter a valid billing address.")) return false
		if(BillAddress2.isNotEmpty()) {	
			if(!BillAddress2.valAlphaNumExtra("Please enter a valid billing address.")) return false
		}
		if(!BillCity.valAlphaSpace("Please enter a valid billing city/town.")) return false
		if(!BillZip.valZip("Please enter a valid billing zip/postal code.")) return false;
	} catch (e) {}
	return true;
}


function valShipAddress(i){
	try{
		if(!valName(i)) return false;
		var ShipAddress1 = new FormField(document.getElementById("shipaddress1"));
		var ShipAddress2 = new FormField(document.getElementById("shipaddress2"));
		var ShipCity = new FormField(document.getElementById("shipcity"));
		var ShipZip = new FormField(document.getElementById("shipzip"));
		if(!ShipAddress1.valAlphaNumExtra("Please enter a valid shipping address.")) return false
		if(ShipAddress2.isNotEmpty()) {	
			if(!ShipAddress2.valAlphaNumExtra("Please enter a valid shipping address.")) return false
		}
		if(!ShipCity.valAlphaSpace("Please enter a valid shipping city/town.")) return false
		if(!ShipZip.valZip("Please enter a valid shipping zip/postal code.")) return false;
	} catch (e) {}
	return true;
}


function valRewards(t,r){
	if(!deleteBtn){
	  try{
		if(t){ var m = " for traveler #" + t + ".";	}else{ var m = ".";	}
		var Reward = new FormField(document.getElementById("rewardnum" + t + r));
		if(Reward.isNotEmpty()) {	
		  if(!Reward.valAlphaNum("Please enter a valid loyalty program number" + m)) return false;
		  if(!Reward.valMinLength(6,"The loyalty program number is less then the required 6 characters" + m)) return false;
		  if(!Reward.valMaxLength(15,"The loyalty program number is more then the allowed 15 characters" + m)) return false;
		}
	  } catch(e) {}
	  deleteBtn = false;
	}
	return true;
}


function valMultiTravelers(travelerCnt,rewardCnt){
	try {
	  var Travelerid1 = new FormField(document.getElementById("travelerid1"));
	} catch (e) {}
	try {
		var Travelerid2 = new FormField(document.getElementById("travelerid2"));
		if(Travelerid2.fieldValue >= "0") {
			if(!Travelerid1.valNotEqualTo(Travelerid2.fieldValue,"Travelers #1 and #2 must be unique.")) return false;
		}
	} catch (e) {}
	try {
		var Travelerid3 = new FormField(document.getElementById("travelerid3"));
		if(Travelerid3.fieldValue >= "0") {
			if(!Travelerid1.valNotEqualTo(Travelerid3.fieldValue,"Travelers #1 and #3 must be unique.")) return false;
			if(!Travelerid2.valNotEqualTo(Travelerid3.fieldValue,"Travelers #2 and #3 must be unique.")) return false;
		}
	} catch (e) {}
	try {
		var Travelerid4 = new FormField(document.getElementById("travelerid4"));
		if(Travelerid4.fieldValue >= "0") {
			if(!Travelerid1.valNotEqualTo(Travelerid4.fieldValue,"Travelers #1 and #4 must be unique.")) return false;
			if(!Travelerid2.valNotEqualTo(Travelerid4.fieldValue,"Travelers #2 and #4 must be unique.")) return false;
			if(!Travelerid3.valNotEqualTo(Travelerid4.fieldValue,"Travelers #3 and #4 must be unique.")) return false;
		}
	} catch (e) {}
	try {
		var Travelerid5 = new FormField(document.getElementById("travelerid5"));
		if(Travelerid5.fieldValue >= "0") {
			if(!Travelerid1.valNotEqualTo(Travelerid5.fieldValue,"Travelers #1 and #5 must be unique.")) return false;
			if(!Travelerid2.valNotEqualTo(Travelerid5.fieldValue,"Travelers #2 and #5 must be unique.")) return false;
			if(!Travelerid3.valNotEqualTo(Travelerid5.fieldValue,"Travelers #3 and #5 must be unique.")) return false;
			if(!Travelerid4.valNotEqualTo(Travelerid5.fieldValue,"Travelers #4 and #5 must be unique.")) return false;
		}
	} catch (e) {}
	try {
		var Travelerid6 = new FormField(document.getElementById("travelerid6"));
		if(Travelerid6.fieldValue >= "0") {
			if(!Travelerid1.valNotEqualTo(Travelerid6.fieldValue,"Travelers #1 and #6 must be unique.")) return false;
			if(!Travelerid2.valNotEqualTo(Travelerid6.fieldValue,"Travelers #2 and #6 must be unique.")) return false;
			if(!Travelerid3.valNotEqualTo(Travelerid6.fieldValue,"Travelers #3 and #6 must be unique.")) return false;
			if(!Travelerid4.valNotEqualTo(Travelerid6.fieldValue,"Travelers #4 and #6 must be unique.")) return false;
			if(!Travelerid5.valNotEqualTo(Travelerid6.fieldValue,"Travelers #5 and #6 must be unique.")) return false;
		}
	} catch (e) {}	
	try {
		var Travelerid7 = new FormField(document.getElementById("travelerid7"));
		if(Travelerid7.fieldValue >= "0") {
			if(!Travelerid1.valNotEqualTo(Travelerid7.fieldValue,"Travelers #1 and #7 must be unique.")) return false;
			if(!Travelerid2.valNotEqualTo(Travelerid7.fieldValue,"Travelers #2 and #7 must be unique.")) return false;
			if(!Travelerid3.valNotEqualTo(Travelerid7.fieldValue,"Travelers #3 and #7 must be unique.")) return false;
			if(!Travelerid4.valNotEqualTo(Travelerid7.fieldValue,"Travelers #4 and #7 must be unique.")) return false;
			if(!Travelerid5.valNotEqualTo(Travelerid7.fieldValue,"Travelers #5 and #7 must be unique.")) return false;
			if(!Travelerid6.valNotEqualTo(Travelerid7.fieldValue,"Travelers #6 and #7 must be unique.")) return false;
		}
	} catch (e) {}		
    for(t=1; t<=travelerCnt; t++){
		if(!valName(t)) return false;
		if(!valPhone(t)) return false;
		if(!valBirthdate(t)) return false;
		for(r=0; r<rewardCnt; r++){
			if(!valRewards(t,r)) return false;
		}
    }
	return true;
}


function valAgree() {
	var Agree = new FormField(document.getElementById("agree"));
	if(!Agree.valChecked("Please agree to the terms and conditions to proceed.")) return false;
    return true;
}


function selectPortId() {
		var selectedItem = this.currResults[this.focusKey] ? this.currResults[this.focusKey] : false;
		if(selectedItem) {
				this.Input.el.value = selectedItem.code + ": " + selectedItem.airport + " - " + selectedItem.city + ", " + selectedItem.loc;
				document.getElementById(this.outputIds.hiddenInput).value = selectedItem.portid;
		}
}