var option_field_contexts = [];
option_field_contexts[option_field_contexts.length] = new Array('Bachelor Party',new Array('Bachelor\'s Name','Y'),new Array('',''));
option_field_contexts[option_field_contexts.length] = new Array('Bachelorette Party',new Array('Bachelorette\'s Name','Y'),new Array('',''));
option_field_contexts[option_field_contexts.length] = new Array('Birthday Party',new Array('Guest of Honor\'s Name','Y'),new Array('Age','Y'));
option_field_contexts[option_field_contexts.length] = new Array('Corporate Group',new Array('Name of Company','Y'),new Array('Website','Y'));
option_field_contexts[option_field_contexts.length] = new Array('Church Group',new Array('Name of Church','Y'),new Array('Website','Y'));
option_field_contexts[option_field_contexts.length] = new Array('Family Reunion',new Array('Family Name','Y'),new Array('',''));
option_field_contexts[option_field_contexts.length] = new Array('Friends',new Array('',''),new Array('',''));
option_field_contexts[option_field_contexts.length] = new Array('Other',new Array('',''),new Array('',''));

function reserve_this(pid){
	var xmlHttp;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
		return;

	document.getElementById('reserve_link'+pid).style.display = 'none';

	xmlHttp.onreadystatechange=function(){
		if (xmlHttp.readyState==4){
			document.getElementById('reserve_div'+pid).innerHTML = xmlHttp.responseText;
			document.getElementById('reserve_div'+pid).style.display = 'block';
			document.getElementById('date_td'+pid).appendChild(document.getElementById('date_div'+pid));
			document.getElementById('date_div'+pid).style.display = 'block';
		}else{
			document.getElementById('group_table'+pid).style.display = 'none';
			document.getElementById('reserve_div'+pid).style.display = 'block';
			document.getElementById('reserve_div'+pid).innerHTML = '<div style="text-align:center;width:100%;"><img src="'+images_dir+'/ajax_loader.gif" /></div>';
		}
	}
	xmlHttp.open("GET",xcart_web_dir+'/ajax_product_reservation.php?pid='+pid,true);
	xmlHttp.send(null);
}

function calculate_reservation(pid,order_form){
	if(!document.forms[order_form])
		return;

	var total_cost = total_costs[pid];
	var deposit = deposits[pid];
	var num_players = num_players_arr[pid];
	var max_players = max_players_arr[pid];
	var additional_cost = additional_costs[pid];
	var additional_deposit = additional_deposits[pid];

	var selected_players = document.forms[order_form].num_players.value;
	if(selected_players < num_players){
		selected_players = num_players;
		document.forms[order_form].num_players.value = selected_players;
	}
	if(selected_players > max_players){
		selected_players = max_players;
		document.forms[order_form].num_players.value = selected_players;
	}

	var selected_cost = total_cost;
	var selected_deposit = deposit;
	var selected_due = price_format(total_cost - deposit);

	if(selected_players > num_players){
		var additional_players = selected_players - num_players;
		var selected_add_cost = price_format(additional_players * additional_cost);
		var selected_add_deposit = price_format(additional_players * additional_deposit);
		var selected_add_due = price_format(selected_add_cost - selected_add_deposit);

		selected_cost = price_format(+selected_cost + +selected_add_cost);
		selected_deposit = price_format(+selected_deposit + +selected_add_deposit);
		selected_due = price_format(+selected_due + +selected_add_due);
	}

	document.getElementById('total_cost'+pid).innerHTML = currency_symbol+selected_cost;
	document.getElementById('deposit'+pid).innerHTML = currency_symbol+selected_deposit;
	document.getElementById('due'+pid).innerHTML = currency_symbol+selected_due;

	return true;
}

function check_lead_time(pid){

	var reserveObj = reservation_objects[pid];
	var lead_time = lead_times[pid];
	var min_time = min_times[pid];

	if(reserveObj && lead_time != ''){
		var monthObj = reserveObj.picked.monthIndex;
		var dayObj = reserveObj.picked.day;
		var yearObj = reserveObj.picked.yearValue;
		var selected_date = new Date(yearObj,monthObj,dayObj,0,0,1,0);
		var selected_time = selected_date.getTime() / 1000;
		if(selected_time <= min_time){
			alert('Reserve online at least '+lead_time+' day'+(lead_time>1?'s':'')+' in advance. Please call (425) 402-6042 or choose a later play date.');
			return false;
		}
	}

	return true;
}

function terms_window_open(x){
	terms_window = window.open(xcart_web_dir+'/group_reservation_terms.php?pid='+x,'terms','width=500,height=400,left=50,top=50,screenX=50,screenY=50,location=no,resizable=yes,scrollbars=yes');
	return false;
}

function set_checkin_time(pid,starttimeid){
	if(document.getElementById('checkin_'+pid)){
		var start_time = document.getElementById('po'+starttimeid).options[document.getElementById('po'+starttimeid).selectedIndex].text;
		var start_hours = start_time;
		while(start_hours.match(/[^0-9:]/))
			start_hours = start_hours.replace(/[^0-9:]/,"");

		var start_time_of_day = start_time.replace(start_hours,"");
		while(start_time_of_day.match(/[ ]/))
			start_time_of_day = start_time_of_day.replace(/[ ]/,"");

		if(start_hours.match(/[:]/)){
			var tmp_check = start_hours.split(':');
			start_hours = +tmp_check[0] + (+tmp_check[1] / 60);
		}

		var start_minutes = +start_hours * 60 + (start_time_of_day.toUpperCase() == "PM" && +start_hours < 12?60 * 12:0);

		var checkin_minutes = start_minutes - 30;
		var checkin_minutes_remainder = checkin_minutes % 60;
		var checkin_hours = (checkin_minutes - checkin_minutes_remainder) / 60;

		var checkin_tod = (checkin_hours >= 12?"PM":"AM");
		if(checkin_hours > 12)
			checkin_hours = checkin_hours - 12;

		if(checkin_minutes_remainder < 10)
			checkin_minutes_remainder = '0'+checkin_minutes_remainder;

		checkin_time = checkin_hours+':'+(checkin_minutes_remainder == 0?'00':checkin_minutes_remainder)+' '+checkin_tod;

		document.getElementById('checkin_'+pid).value = checkin_time;
	}

	return;
}

function set_option_contexts(context_field_checkid,context_field1id,context_field2id){
	if(context_field_checkid && document.getElementById('po'+context_field_checkid)){
		var group_type_field = document.getElementById('po'+context_field_checkid);
		var group_type_value = group_type_field.value;
		for(var f=0; f<group_type_field.options.length; f++)
			if(group_type_field.options[f].value == group_type_value){
				var group_type = group_type_field.options[f].text;
				break;
			}

		for(var b in option_field_contexts){
			if(option_field_contexts[b][0] == group_type){
				if(context_field1id && document.getElementById(context_field1id)){
					var context_field = document.getElementById(context_field1id);
					context_field.innerHTML = option_field_contexts[b][1][0];
					context_field.parentNode.parentNode.style.display = option_field_contexts[b][1][1] == 'Y'?'':'none';
				}
				if(context_field2id && document.getElementById(context_field2id)){
					var context_field = document.getElementById(context_field2id);
					context_field.innerHTML = option_field_contexts[b][2][0];
					context_field.parentNode.parentNode.style.display = option_field_contexts[b][2][1] == 'Y'?'':'none';
				}
				break;
			}
			var context_field = document.getElementById(context_field1id);
			context_field.innerHTML = 'Name of Guest of Honor';
			context_field.parentNode.parentNode.style.display = '';
			var context_field = document.getElementById(context_field2id);
			context_field.innerHTML = 'Age (If birthday party)';
			context_field.parentNode.parentNode.style.display = '';
		}
	}
}

function check_group(context_field_checkid){
	if(context_field_checkid && document.getElementById('po'+context_field_checkid) && document.getElementById('po'+context_field_checkid).value == ''){
		alert('Please fill in the group type.');
		return false;
	}

	return true;
}

function GetXmlHttpObject(){
	var xmlHttp
	try
	{
	// Firefox, Opera 8.0+, Safari
	xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
	// Internet Explorer
		try
		{
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}
