<!--//--><![CDATA[//><!--

//var tickets = new Array("adult|adult_pass|adult_total|<% =tkt_price(0) %>", "adult_return|adult_return_pass|adult_return_total|45", "child1|child1_pass|child1_total|17", "child1_return|child1_return_pass|child1_return_total|30", "child2|child2_pass|child2_total|17", "child2_return|child2_return_pass|child2_return_total|30");
//var tickets = new Array("adult|adult_pass|adult_total|25", "adult_return|adult_return_pass|adult_return_total|45", "child1|child1_pass|child1_total|17", "child1_return|child1_return_pass|child1_return_total|30", "child2|child2_pass|child2_total|17", "child2_return|child2_return_pass|child2_return_total|30");
// tickets is now defined in prices.inc.asp
var sum=0;

function calc_cost(num, book_type)
{
//alert("test");
//alert("<% =tkt_price(0) %>"); this code does not work

        var tickets_s = tickets[num].split("|");

        var num_tickets = document.getElementById(tickets_s[0]).value; // Number of tickets
        if (isNaN(num_tickets)) // if not a number
        {
                document.getElementById(tickets_s[0]).value=0; // Tickets
                //document.getElementById(tickets_s[1]).value=0; // Passengers
                document.getElementById(tickets_s[2]).value=0; // Cost
	}
	else
	{	        
                document.getElementById(tickets_s[2]).value = parseInt(num_tickets)*tickets_s[3]; // Cost is tickets * price
                // Passengers  
                //alert(tickets.indexOf("adult"));
                /*
                if(tickets_s[0].indexOf("adult") == 0)
                        document.getElementById(tickets_s[1]).value = tickets;  
                else
                {
                        if (document.getElementById(tickets_s[0]).value == 0)
                                document.getElementById(tickets_s[1]).value = 0;
                        else
                                document.getElementById(tickets_s[1]).value = "";
                }
                */           
        }

        if (document.getElementById("grand_total")) // if on booking page
                show_hide_total(book_type);                 
}

function show_hide_total(book_type)
{
        //alert("book_type: " + book_type);
        
        var ret_jrny = document.getElementById("ret_jrny");
        var child_res = document.getElementById("child_res");
        
        //if (book_type == "ls") // Shared service
        if (book_type != "lp") // Shared & shuttle service
        {
                var child2_ticket = false;
                var return_ticket = false;
                sum=0;        
                for (i=0; i<tickets.length; i++)
                {
                        tickets_s = tickets[i].split("|");
                        //alert("key2: <% =key %>");
                        num_tickets = document.getElementById(tickets_s[0]).value; // Number of tickets              
                        sum += parseInt(document.getElementById(tickets_s[2]).value); // Total all ticket costs
                        //alert(sum);
                        if ((tickets_s[0].indexOf("child2") == 0) && (num_tickets > 0))
                            child2_ticket = true;                       
                        if ((tickets_s[0].indexOf("return") > 0) && (num_tickets > 0))
                            return_ticket = true;                                   
                } 
                                
                document.getElementById("grand_total").value = sum;        
             
                // Set hidden field value, as this field is used for the Premium service and allows only 1 field to be checked 
                //alert(child2_ticket);                 
                if (child2_ticket)                       
                        child_res.checked = true;   
                else 
                        child_res.checked = false; 
                
                // Set hidden field value, as this field is used for the Premium service and allows only 1 field to be checked
                //alert(return_ticket);                 
                if (return_ticket)
                        ret_jrny.checked = true;
                else 
                        ret_jrny.checked = false;
        } 
        else // Premium service
        {
                show_section("tr_ret_jrny", true); 
                show_section("table_tp", true); 
        } 
         
        // Show hide return journey and child restraint sections
        show_section("table_rj", ret_jrny); 
        show_section("table_cr", child_res);
        if (ret_jrny.checked == true)
        {
                show_hide_addr("pu"); show_hide_addr("dt"); show_hide_addr("ret_pu"); show_hide_addr("ret_dt");                
        }
        else 
        {  
                show_hide_addr("pu"); show_hide_addr("dt");       
        } 
        
        //alert("end function show_hide_total");                           
}

function show_section(section, val)
{
        // val of true or false: used for address line & PS only sections; val checked: used for child restraints & return journey sections        
	if ((val == true) || val.checked)
	{
                var objSpan = document.getElementById(section);
                objSpan.style.display = "";
	}
        else 
        {
                var objSpan = document.getElementById(section);
                objSpan.style.display = "none"; 
        }                    
}

function show_hide_addr(val)
{      
        loc = document.getElementById(val + "_location").value;
        //alert(loc);
        if (loc.length == 0) // An airport is NOT selected
        {
                show_section('show_hide_' + val + "1", false);
                show_section('show_hide_' + val + "2", true);
                show_section('show_hide_' + val + "3", true);
        } 
        else // An airport is selected
        { 
                if (loc == "Sydney Star City Casino")
                        show_section('show_hide_' + val + "1", false);
                else
                        show_section('show_hide_' + val + "1", true);
                show_section('show_hide_' + val + "2", false);              
                show_section('show_hide_' + val + "3", false);
        }                   
}

/* Used in book.asp - tickets2.asp */
function process_submit_frm_book2(book_type, location)
{
        //alert("in function process_submit");  
	var intErrors = 0;
	var strErrors = "Sorry, your booking form could not be sent for the following reasons:\n\n"; 
	var address_error = false;
	var re = /^([a-zA-Z]{2}|[a-zA-Z]\d|\d[a-zA-Z])([a-zA-Z])?(\d{1,4})([a-zA-Z])?$/;
	
	//clear_form_fields();
	
	// Total Cost
	if ((book_type != "lp") & (sum ==0))
        {
		intErrors++;  
		strErrors+= intErrors +") Please enter your ticket(s) required\n"; 
	}

        // Pickup Address details	
	if ((document.getElementById("pu_location").value == "") && ((Trim(document.getElementById("pu_addr_line_1").value).length == 0) || (Trim(document.getElementById("pu_suburb").value).length == 0)))	
	{
	        intErrors++;
	        strErrors+= intErrors +") Pickup: Please select your location or enter address/suburb details\n";
	        address_error = true;
	        //document.getElementById("pu_addr_line_1").style.backgroundColor = "#dddddd";		
	        //document.getElementById("pu_suburb").style.backgroundColor = "#dddddd";	        
	}
	else if (document.getElementById("show_hide_pu1").style.display != "none") // Flight # is displayed
	{
	        // Flight #
                if (Trim(document.getElementById("pu_flight_number").value).length == 0)
                {
		        intErrors++;  
		        strErrors+= intErrors +") Pickup: Please enter your flight #\n"; 
		        //document.getElementById("pu_flight_number").style.backgroundColor = "#dddddd";
	        }
	        /*
	        else
	        {
	                if ((document.getElementById("pu_flight_number").value != "?") && (re.test(document.getElementById("pu_flight_number").value) == false))
	                {
		                intErrors++;  
		                strErrors+= intErrors +") Pickup: Invalid flight #\n\nA flight designator comprises the airline designator 'xx(a)', plus the numeric flight number 'n(n)(n)(n)', plus an optional, so-called, 'operational suffix' being one alpha character '(a)'; the full format of a flight designator is thus: 'xx(a)n(n)(n)(n)(a)'\n(if you do not know your flight #, just enter ?)\n"; 	                
                        }
	        }
	        */
	}
	
        //alert(document.getElementById("txtName").value);
        //alert(document.frm.txtName.value);
        	
	// Contact Name
	/*
        if (Trim(document.getElementById("name").value).length == 0)
        {
		intErrors++;  
		strErrors+= intErrors +") Please enter a contact name\n"; 
		//document.getElementById("name").style.backgroundColor = "#dddddd";
	}
	*/
		
	// Email
	/*
        if (Trim(document.getElementById("email").value).length == 0)
        {
		intErrors++;  
		strErrors+= intErrors +") Please enter an email address\n"; 
		//document.getElementById("email").style.backgroundColor = "#dddddd";
	}
	*/

	// Pickup Date
	if(!IsDate(document.getElementById("pu_dd").value + "/" +
			document.getElementById("pu_mm").value + "/" +
			document.getElementById("pu_yy").value))
	{
		intErrors++;
		strErrors+= intErrors +") Pickup: Please select a valid date\n";
		//document.getElementById("pu_dd").style.backgroundColor = "#dddddd";
		//document.getElementById("pu_mm").style.backgroundColor = "#dddddd";
		//document.getElementById("pu_yy").style.backgroundColor = "#dddddd";
	}
	else if (check_date(false) < 86400000)  // 1 day
	{
		intErrors++;
		//strErrors+= intErrors +") Pickup: Date / time must not be less than the current date / time\n";
		strErrors+= intErrors +") Pickup: Date / time must be 24 hours greater than the current date / time\n\t(otherwise phone bookings are accepted)\n";
	}
	
	// Pickup Time
        if (Trim(document.getElementById("pu_t_hh").value).length == 0)
        {
		intErrors++;  
		strErrors+= intErrors +") Pickup: Please select a time\n"; 
		//document.getElementById("pu_t_hh").style.backgroundColor = "#dddddd";
	}

	// Phone
        if (Trim(document.getElementById("phone").value).length == 0)
        {
		intErrors++;  
		strErrors+= intErrors +") Pickup: Please enter a phone #\n"; 
		//document.getElementById("phone").style.backgroundColor = "#dddddd";
	}
			
	
        // Destination Address details	
	if ((document.getElementById("dt_location").value == "") && ((Trim(document.getElementById("dt_addr_line_1").value).length == 0) || (Trim(document.getElementById("dt_suburb").value).length == 0)))	
	{
	        intErrors++;
	        strErrors+= "\n" + intErrors + ") Destination: Please select your location or enter address/suburb details\n\n";
	        address_error = true;
	        //document.getElementById("dt_addr_line_1").style.backgroundColor = "#dddddd";		
	        //document.getElementById("dt_suburb").style.backgroundColor = "#dddddd";
	}
	
	// Check that either pickup or destination is the airport/casino
	if (address_error == false)
	{
	        //alert(location);
	        if (location == "Sydney_SC")
	                fixed_point = "Casino";	        
	        else
	                fixed_point = "Airport";	        
	        fixed_point_pu = document.getElementById("pu_location").value.indexOf(fixed_point);
	        fixed_point_dt = document.getElementById("dt_location").value.indexOf(fixed_point);
	        //alert(fixed_point_pu);
	        //alert(fixed_point_dt);
	        if ((fixed_point_pu > 0 && fixed_point_dt > 0) || (fixed_point_pu < 0 && fixed_point_dt < 0))
	        {
	                intErrors++;
                        strErrors+= "\n" + intErrors + ") Pickup/Destination: Either your pickup or destination must be the airport/casino\n\n";	        
	        }
	}
	
	
        // Return Journey
	//if (return_ticket)
	if (document.getElementById("table_rj").style.display != "none") // Return Journey section is showing
	{        	
                // Return Pickup Address details	
	        if ((document.getElementById("ret_pu_location").value == "") && ((Trim(document.getElementById("ret_pu_addr_line_1").value).length == 0) || (Trim(document.getElementById("ret_pu_suburb").value).length == 0)))	
	        {
	                intErrors++;
	                strErrors+= intErrors +") Return Pickup: Please select your location or enter address/suburb details\n";
	                address_error = true;
	                //document.getElementById("ret_pu_addr_line_1").style.backgroundColor = "#dddddd";		
	                //document.getElementById("ret_pu_suburb").style.backgroundColor = "#dddddd";
	        }
	        else if (document.getElementById("show_hide_ret_pu1").style.display != "none") // Flight # is displayed
	        {
	                // Flight #
                        if (Trim(document.getElementById("ret_pu_flight_number").value).length == 0)
                        {
		                intErrors++;  
		                strErrors+= intErrors +") Return Pickup: Please enter your flight #\n"; 
		                //document.getElementById("ret_pu_flight_number").style.backgroundColor = "#dddddd";
	                }
	                /*
	                else
	                {	                        
	                        if ((document.getElementById("ret_pu_flight_number").value != "?") && (re.test(document.getElementById("ret_pu_flight_number").value) == false))
	                        {
		                        intErrors++;		                          
		                        strErrors+= intErrors +") Return Pickup: Invalid flight #\n\nA flight designator comprises the airline designator 'xx(a)', plus the numeric flight number 'n(n)(n)(n)', plus an optional, so-called, 'operational suffix' being one alpha character '(a)'; the full format of a flight designator is thus: 'xx(a)n(n)(n)(n)(a)'\n(if you do not know your flight #, just enter ?)\n"; 
                                }
	                }  
	                */              	
	        }
	        
	        // Return Pickup Date
	        if(!IsDate(document.getElementById("ret_pu_dd").value + "/" +
			        document.getElementById("ret_pu_mm").value + "/" +
			        document.getElementById("ret_pu_yy").value))
	        {
		        intErrors++;
		        strErrors+= intErrors +") Return Pickup: Please select a valid date\n";
		        //document.getElementById("ret_pu_dd").style.backgroundColor = "#dddddd";
		        //document.getElementById("ret_pu_mm").style.backgroundColor = "#dddddd";
		        //document.getElementById("ret_pu_yy").style.backgroundColor = "#dddddd";
	        }
	        else if (check_date(true) < 0)
	        {
		        intErrors++;
		        strErrors+= intErrors +") Return Pickup: Date / time must not be less than the pickup date / time\n";
	        }
        	
	        // Return Pickup Time
                if (Trim(document.getElementById("ret_pu_t_hh").value).length == 0)
                {
		        intErrors++;  
		        strErrors+= intErrors +") Return Pickup: Please select a time\n"; 
		        //document.getElementById("ret_pu_t_hh").style.backgroundColor = "#dddddd";
	        }
	        	        
        	
                // Return Destination Address details	
	        if ((document.getElementById("ret_dt_location").value == "") && ((Trim(document.getElementById("ret_dt_addr_line_1").value).length == 0) || (Trim(document.getElementById("ret_dt_suburb").value).length == 0)))	
	        {
	                intErrors++;
	                strErrors+= "\n" + intErrors + ") Return Destination: Please select your location or enter address/suburb details\n\n";
	                address_error = true;
	                //document.getElementById("ret_dt_addr_line_1").style.backgroundColor = "#dddddd";		
	                //document.getElementById("ret_dt_suburb").style.backgroundColor = "#dddddd";
	        }
	
	        // Check that either return pickup or destination is the airport/casino
	        if (address_error == false)
	        {
	                if (location == "Sydney_SC")
	                        ret_fixed_point = "Casino";	        
	                else
	                        ret_fixed_point = "Airport";
	                ret_fixed_point_pu = document.getElementById("ret_pu_location").value.indexOf(ret_fixed_point);
	                ret_fixed_point_dt = document.getElementById("ret_dt_location").value.indexOf(ret_fixed_point);
	                //alert(ret_airport_pu);
	                //alert(ret_airport_dt);
	                if ((ret_fixed_point_pu > 0 && ret_fixed_point_dt > 0) || (ret_fixed_point_pu < 0 && ret_fixed_point_dt < 0))
	                {
	                        intErrors++;
                                strErrors+= "\n" + intErrors + ") Return Pickup/Destination: Either your pickup or destination must be the airport/casino\n\n";	        
	                }
	        }	        
	}	
	
	// Transport (Premium Only)
	if (document.getElementById("table_tp").style.display != "none") // Transport section is showing
	{
                if (Trim(document.getElementById("vehicle").value).length == 0)
                {
		        intErrors++;  
		        strErrors+= intErrors +") Transport: Please select a vehicle\n"; 
		        //document.getElementById("vehicle").style.backgroundColor = "#dddddd";
	        } 
	        
                if (Trim(document.getElementById("passengers").value).length == 0)
                {
		        intErrors++;  
		        strErrors+= intErrors +") Transport: Please select number of passengers\n\n"; 
		        //document.getElementById("passengers").style.backgroundColor = "#dddddd";
	        } 
	        
	        if ((Trim(document.getElementById("vehicle").value).length > 0) && (Trim(document.getElementById("passengers").value).length > 0))
                {
                        if ((Trim(document.getElementById("vehicle").value) == "Holden Caprice") || (Trim(document.getElementById("vehicle").value) == "BMW 7 Series") || (Trim(document.getElementById("vehicle").value) == "Mercedes Benz S Class")  || (Trim(document.getElementById("vehicle").value) == "Chrysler 300C Sedan"))
                        {
                                if (Trim(document.getElementById("passengers").value) > 4)
                                {
		                        intErrors++;  
		                        strErrors+= intErrors +") Transport: Number of passengers is greater than car capacity.\n\n";
                                }
                        }
                        
                        if (Trim(document.getElementById("vehicle").value) == "Ford LTD Stretch")
                        {
                                if (Trim(document.getElementById("passengers").value) > 7)
                                {
		                        intErrors++;  
		                        strErrors+= intErrors +") Transport: Number of passengers is greater than car capacity.\n\n";
                                }
                        }  
                        
                        if (Trim(document.getElementById("vehicle").value) == "Mercedes Benz Vito")
                        {
                                if (Trim(document.getElementById("passengers").value) > 8)
                                {
		                        intErrors++;  
		                        strErrors+= intErrors +") Transport: Number of passengers is greater than car capacity.\n\n";
                                }
                        }                                               
                }	        	            	        
	}	
	
	// Child restraints
	//alert (document.getElementById("table_cr").style.display);
	//if (child2_ticket)
	/*
	if (document.getElementById("table_cr").style.display != "none") // Child Restraints section is showing
	{
	        // check for non-numeric data
	        if ((isNaN(document.getElementById("txtCapsules").value))  || (isNaN(document.getElementById("txtBabySeats").value)) || (isNaN(document.getElementById("txtBoosterSeats").value)))
	        {
		        intErrors++;
		        strErrors+= intErrors + ") Child Restraints: Values for Capsules/Baby seats/Booster seats must be numeric\n\n";
	        }      	        
	}
	*/				
		
	if(0 == intErrors)
	{        	        
                document.frm_book2.submit();	        
	} 
	else 
	{
		alert(strErrors);
	}	                       
}

function clear_form_fields()
{
	document.getElementById("name").style.backgroundColor = "#ffffff";
	document.getElementById("phone").style.backgroundColor = "#ffffff";
	document.getElementById("pu_dd").style.backgroundColor = "#ffffff";
	document.getElementById("pu_mm").style.backgroundColor = "#ffffff";
	document.getElementById("pu_yy").style.backgroundColor = "#ffffff";
	document.getElementById("pu_t_hh").style.backgroundColor = "#ffffff";
	document.getElementById("pu_addr_line_1").style.backgroundColor = "#ffffff";
	document.getElementById("pu_suburb").style.backgroundColor = "#ffffff";	
	document.getElementById("pu_flight_number").style.backgroundColor = "#ffffff";		
	document.getElementById("dt_addr_line_1").style.backgroundColor = "#ffffff";
	document.getElementById("dt_suburb").style.backgroundColor = "#ffffff";		
}

function check_date(return_required)
{
// This function will check that pickup date > current date and return pickup date > pickup date

	// Get current date / time
	var today = new Date();
	difference = 0;

	// Calculate pickup date / time value
	yr = document.getElementById("pu_yy").value; mth = document.getElementById("pu_mm").value - 1; day = document.getElementById("pu_dd").value;
	//if (document.getElementById("pu_t_hh").value == "")
	//	hr_24 = today.getHours();
	//else
	//{
	        //alert(document.getElementById("am").checked);	
		//if (document.getElementById("am").checked && Number(document.getElementById("pu_t_hh").value == 12))
		// 12 am 
			hr_24 = 0;
		//else
		//if (document.getElementById("am").checked || Number(document.getElementById("pu_t_hh").value == 12))
		// 1 am to 12 pm
			hr_24 = Number(document.getElementById("pu_t_hh").value);
		//else
		// 1 pm to 11 pm
			//hr_24 = Number(document.getElementById("pu_t_hh").value) + 12;
		//alert(hr_24);
	//}

	//if (document.getElementById("pu_t_mm").value == "")
	//	mins = today.getMinutes();
	//else
		mins = document.getElementById("pu_t_mm").value

	// Pickup date / time must be greater than current date / time
	var pu_date = new Date(yr, mth, day, hr_24, mins); 
	var current = new Date(today.getFullYear(), today.getMonth(), today.getDate(), today.getHours(), today.getMinutes()); 
	//alert(yr + ", " + today.getFullYear()); alert(mth + ", " + today.getMonth()); alert(day + ", " + today.getDate()); alert(hr_24 + ", " + today.getHours()); alert(mins + ", " + today.getMinutes());

	if (return_required == true) // return journey
	{
		// Calculate return pickup date / time value
		ryr = document.getElementById("ret_pu_yy").value; rmth = document.getElementById("ret_pu_mm").value - 1; rday = document.getElementById("ret_pu_dd").value;
		rhr_24 = Number(document.getElementById("ret_pu_t_hh").value);
		rmins = document.getElementById("ret_pu_t_mm").value;

		var ret_pu_date = new Date(ryr, rmth, rday, rhr_24, rmins);    

		difference = ret_pu_date - pu_date;
		//alert("Difference return: " + difference);
		return (difference);
	}
	else
	{
		difference = pu_date - current;
		//alert("Difference: " + difference);	
		return (difference);
	}
}

//--><!]]>
