<!--
var b_cities = new Array("Boston", "New York", "Washington DC", "Baltimore", "Los Angeles", 
    "Anaheim", "John Wayne Airport", "LAX Airport", "San Francisco", "Cupertino", 
    "San Jose", "Oakland", "Hartford", "Mohegan Sun", "Mohegan Sun Casino", "Atlanta", 
    "Rockville", "Vancouver", "Everett, BC", "SeaTac Airport", "Seattle", "Bellingham Airport", 
    "Las Vegas", "Reno", "Albany", "JFK Airport", "Woodbury Outlets", 
    "Philadelphia", "Norfolk", "Richmond", "LGA Airport", "Foxwoods Casino",
    "Charlotte", "Wilmington", "Miami", "Orlando", "Virginia Beach",
    "Buffalo", "Toronto", "Niagara Falls", "Newark, DE", "San Diego");
var g_bus = new Object;
var total_cities = b_cities.length;
for (i=0; i<total_cities; i++)
  g_bus[b_cities[i]] = new Array;

g_bus["Boston"][0] = "Hartford";
g_bus["Boston"][1] = "Mohegan Sun Casino";
g_bus["Boston"][2] = "New York";

g_bus["New York"][0] = "Albany";
g_bus["New York"][1] = "Atlanta";
g_bus["New York"][2] = "Baltimore";
g_bus["New York"][3] = "Boston";
g_bus["New York"][4] = "Buffalo";
g_bus["New York"][5] = "Charlotte";
g_bus["New York"][6] = "Foxwoods Casino";
g_bus["New York"][7] = "Hartford";
g_bus["New York"][8] = "JFK Airport";
g_bus["New York"][9] = "LGA Airport";
g_bus["New York"][10] = "Mohegan Sun Casino";
g_bus["New York"][11] = "Niagara Falls";
g_bus["New York"][12] = "Norfolk";
g_bus["New York"][13] = "Philadelphia";
g_bus["New York"][14] = "Richmond";
g_bus["New York"][15] = "Rockville";
g_bus["New York"][16] = "Toronto";
g_bus["New York"][17] = "Virginia Beach";
g_bus["New York"][18] = "Washington DC";
g_bus["New York"][19] = "Wilmington";
g_bus["New York"][20] = "Woodbury Outlets";

g_bus["Washington DC"][0] = "Baltimore";
g_bus["Washington DC"][1] = "New York";
g_bus["Washington DC"][2] = "Philadelphia";
g_bus["Washington DC"][3] = "Richmond";

g_bus["Baltimore"][0] = "New York";

g_bus["Los Angeles"][0] = "Anaheim";
g_bus["Los Angeles"][1] = "Cupertino";
g_bus["Los Angeles"][2] = "Las Vegas";
g_bus["Los Angeles"][3] = "LAX Airport";
g_bus["Los Angeles"][4] = "Oakland";
g_bus["Los Angeles"][5] = "San Diego";
g_bus["Los Angeles"][6] = "San Francisco";
g_bus["Los Angeles"][7] = "San Jose";

g_bus["Anaheim"][0] = "Universal Studio";
g_bus["Anaheim"][1] = "John Wayne Airport";
g_bus["Anaheim"][2] = "Las Vegas";
g_bus["Anaheim"][3] = "Los Angeles";
g_bus["Anaheim"][4] = "San Diego";

g_bus["John Wayne Airport"][0] = "Anaheim";

g_bus["LAX Airport"][0] = "Anaheim";

g_bus["San Diego"][0] = "Anaheim";
g_bus["San Diego"][1] = "Los Angeles";

g_bus["San Francisco"][0] = "Los Angeles";
g_bus["San Francisco"][1] = "Reno";

g_bus["Cupertino"][0] = "Los Angeles";

g_bus["Oakland"][0] = "Los Angeles";
g_bus["San Jose"][0] = "Los Angeles";

g_bus["Hartford"][0] = "Boston";
g_bus["Hartford"][1] = "New York";

g_bus["Mohegan Sun"][0] = "Boston";

g_bus["Atlanta"][0] = "New York";

g_bus["Rockville"][0] = "New York";

g_bus["Las Vegas"][0] = "Anaheim";
g_bus["Las Vegas"][1] = "Los Angeles";
g_bus["Las Vegas"][2] = "San Diego";

g_bus["Reno"][0] = "San Francisco";

g_bus["Albany"][0] = "New York";

g_bus["JFK Airport"][0] = "New York";

g_bus["LGA Airport"][0] = "New York";

g_bus["Woodbury Outlets"][0] = "New York";

g_bus["Philadelphia"][0] = "New York";
g_bus["Philadelphia"][1] = "Washington DC";

g_bus["Norfolk"][0] = "New York";
g_bus["Virginia Beach"][0] = "New York";

g_bus["Richmond"][0] = "New York";
g_bus["Richmond"][1] = "Washington DC";

g_bus["Wilmington"][0] = "Atlantic City";
g_bus["Wilmington"][1] = "New York";

g_bus["Newark, DE"][0] = "Atlantic City";

g_bus["Buffalo"][0] = "New York";

g_bus["Toronto"][0] = "New York";

g_bus["Niagara Falls"][0] = "New York";

g_bus["Miami"][0] = "Orlando";

g_bus["Orlando"][0] = "Miami";

g_bus["Bellingham Airport"][0] = "Vancouver";
g_bus["SeaTac Airport"][0] = "Vancouver";
g_bus["Seattle"][0] = "Vancouver";
g_bus["Everett, BC"][0] = "Vancouver";

g_bus["Vancouver"][0] = "Bellingham Airport";
g_bus["Vancouver"][1] = "Everett, BC";
g_bus["Vancouver"][2] = "SeaTac Airport";
g_bus["Vancouver"][3] = "Seattle";

function update_bus_from()
{
        var bf_obj = get_bus_from_obj();
        for (var i=bf_obj.options.length-1; i>0; i--)
        {
        bt_obj.options[i]=null;
        }
        for (var i=0; i<b_cities.length; i++)
        {
                var j = i+1;
        bf_obj.options[j] = new Option(b_cities[i], b_cities[i]);
        }
}

function change_r_date(d)
{
    if (document.bus_search)
    {
	if (d == "")
	{
		d = "N/A";
	}
        var f_count = document.forms.length;
        for (var i=0; i<f_count; ++i)
        {
            if (document.forms[i].r_date)
            {
                document.forms[i].r_date.value = d;
            }
        }
    }
}

function change_passengers(n)
{
    if (document.bus_search)
    {
        var f_count = document.forms.length;
        for (var i=0; i<f_count; ++i)
        {
            if (document.forms[i].vol)
            {
                document.forms[i].vol.value = n;
            }
        }
    }
}

function select_oneway(no_update)
{
        if (document.bus_search)
        {
		document.bus_search.return_date.value = '';
                document.bus_search.return_date.disabled = true;
                var bimg_obj = document.getElementById('br_img');
                if (bimg_obj != null)
                {
                        bimg_obj.src = "/images/calendar_hidden.gif";
                }
		conditional_update();
	}
}

function select_roundtrip(d)
{
        if (document.bus_search)
        {
               	document.bus_search.return_date.disabled = false;
                var bimg_obj = document.getElementById('br_img');
                if (bimg_obj != null)
                {
                        bimg_obj.src = "/images/calendar.gif";
                }
	        var rd_obj = document.bus_search.return_date;
                var d = document.bus_search.filter_date.value;
                var darray = d.split("-");
                var start_d = new Date(darray[0], darray[1]-1, darray[2]);
                var r_d = new Date(start_d.valueOf() + 172800000);
                var m = r_d.getMonth() + 1;
                if (m < 10)
                {
                        m = "0" + m;
                }
                var dt = r_d.getDate();
                if (dt < 10)
                {
                        dt = "0" + dt;
                }
                rd_obj.value = r_d.getFullYear() + '-' + m + '-' + dt;
		conditional_update();
        }
}

function select_preset()
{
	if (document.bus_search && document.bus_search.sbus_from)
	{
		document.bus_search.sbus_from.disabled = true;
		document.bus_search.sbus_to.disabled = true;
		document.bus_search.bus_from.disabled = false;
		document.bus_search.bus_to.disabled = false;
	}
}

function select_search()
{
    if (document.bus_search && document.bus_search.sbus_from)
    {
		document.bus_search.sbus_from.disabled = false;
		document.bus_search.sbus_to.disabled = false;
		document.bus_search.bus_from.disabled = true;
		document.bus_search.bus_to.disabled = true;
	}
}

function update_bus_to(f)
{
	if (f)
	{
		var bt_obj = get_bus_to_obj();
		for (var i=bt_obj.options.length-1; i>0; i--)
		{
        	bt_obj.options[i]=null;
    		}
		for (var i=0; i<g_bus[f].length; i++)
		{
			var j = i+1;
        	bt_obj.options[j] = new Option(g_bus[f][i], g_bus[f][i]);
	}
	}
	else
	{
		var bt_obj = get_bus_to_obj();
                for (var i=bt_obj.options.length-1; i>0; i--)
                {
                bt_obj.options[i]=null;
                }
	}
	conditional_clear();
}

function get_bus_from_obj()
{
	return window.document.bus_search.bus_from;
}

function get_sbus_from_obj()
{
       	return window.document.bus_search.sbus_from;
}

function get_bus_to_obj()
{
	return window.document.bus_search.bus_to;
}

function get_sbus_to_obj()
{
	return window.document.bus_search.sbus_to;
}

function set_selected(obj, v)
{
    for (var i=0; i<obj.options.length; i++)
    {
        if (obj.options[i].value == v)
        {
            obj.options.selectedIndex = i;
            return i;
        }
    }
    return -1;
}

function update_bus_from_to(f, t)
{
    var bf_obj = get_bus_from_obj();
    if (f)
    {
        index = set_selected(bf_obj, f);
    }
    else
    {
        index = bf_obj.selectedIndex;
		if (index > 0)
		{	
			f = bf_obj.options[index].value;
		}
    }
    if (t)
    {
        var bt_obj = get_bus_to_obj();
       	update_bus_to(f);
	index = set_selected(bt_obj, t);
    }
    else if (index > 0)
    {
       	update_bus_to(f);
    }
    return 0;
}

function jump_or_clear()
{
    var bf_obj = get_bus_from_obj();    
    var bt_obj = get_bus_to_obj();
    var fv = bf_obj.options[bf_obj.selectedIndex].value;
    var tv = bt_obj.options[bt_obj.selectedIndex].value;
    if (tv == "Mohegan Sun Casino")
    {
        if (fv == "New York")
        {
            return ga("http://www.ivymedia.com/goldenglobaltravel/newyork_mohegansun/");
        }
        else if (fv == "Boston")
        {
            return ga("http://www.ivymedia.com/sunshine/boston_mohegansuntour/");
        }
    }
    else if (tv == "Atlantic City")
    {
        if (fv == "Newark, DE" || fv == "Wilmington")
        {
            return ga("http://www.ivymedia.com/creativetravel/");
        }
    }
    else if (tv == "Reno")
    {
        if (fv == "San Francisco")
        {
            return ga("http://www.ivymedia.com/usasia/sanfrancisco___reno/");
        }
    }
    else if (tv == "Orlando")
    {
        if (fv == "Miami")
        {
            return ga("http://www.ivymedia.com/gatortours/miami__orlando/");
        }
    }
    else if (tv == "Miami")
    {
        if (fv == "Orlando")
        {
            return ga("http://www.ivymedia.com/gatortours/orlando__miami/");
        }
    }
    else if (tv == "Universal Studio")
    {
	if (fv == "Anaheim")
	{
            return ga("http://www.ivymedia.com/airportbus/anaheim_universalstudio/");
        }
    }
    else if (fv == "Washington DC" && tv == "Baltimore")
    {
	return ga("http://www.ivymedia.com/dragoncoach/baltimore_washingtondc/washingtondc__baltimore/");
    }
    else if (tv == "Foxwoods Casino")
    {
	return ga("http://www.ivymedia.com/shortline/citytour/foxwoodsresortandcasino1_daytour.html"); 
    }
    conditional_clear();
}

function conditional_clear()
{
	var t_obj = document.getElementById("timeList");
	if (t_obj)
	{
	    t_obj.innerHTML = ""; 
	}
}

function get_departure_date()
{
	return document.bus_search.filter_date;
}

function get_return_date()
{
	return document.bus_search.return_date;
}

function check_short_bus_data()
{
    if (document.bus_search.bus_from.value == "")
    {
        alert("Please select a valid Departure City!");
        document.bus_search.bus_from.focus();
        return false;
    }
    if (document.bus_search.bus_to.value == "")
    {
        alert("Please select a valid Arrival City!");
        document.bus_search.bus_to.focus();
        return false;
    }
    if (document.bus_search.filter_date.value == "")
    {
        alert("Please select a valid Departure Date!");
        document.bus_search.filter_date.focus();
        return false;
    }
    return true;
}

function check_bus_data()
{
	if (document.bus_search.option.value == "Select")
	{
		if (document.bus_search.bus_from.value == "")
		{
			alert("Please select a valid Departure City!");
			document.bus_search.bus_from.focus();
			return false;
		}
		if (document.bus_search.bus_to.value == "")
		{
			alert("Please select a valid Arrival City!");
			document.bus_search.bus_to.focus();
			return false;
		}
	}
	else if (document.bus_search.option.value == "Search")
	{
		if (document.bus_search.sbus_from.value == "")
		{
			alert("Please enter a valid Departure City!");
			document.bus_search.sbus_from.focus();
			return false;
		}
		if (document.bus_search.sbus_to.value == "")
		{
			document.bus_search.sbus_to.focus();
			alert("Please enter a valid Arrival City!");
			return false;
		}
	}
    if (document.bus_search.filter_date.value == "")
    {
        alert("Please select a valid Departure Date!");
        document.bus_search.filter_date.focus();
        return false;
    }
    if (document.bus_search.return_date.disabled == false && document.bus_search.return_date.value == "")
    {
        alert("Please select a valid Return Date!");
        document.bus_search.return_date.focus();
        return false;
    }
	return true;
}

function check_roundtrip(d, value)
{
	var roundtrip = document.bus_search.roundtrip;
	if (roundtrip)
	{
		if (value)
		{
			document.bus_search.return_date.value = value;
		}
		else
		{
			var rd_obj = document.bus_search.return_date;
			if (rd_obj && rd_obj.value != '')
			{
				return_date = rd_obj.value;
			}
			alert(return_date);
			if (return_date == '')
			{
				var d = document.bus_search.filter_date.value;
				var darray = d.split("-");
				var start_d = new Date(darray[0], darray[1], darray[2]);
				return_date = new Date(start_d.valueOf() + 172800000);
			}
			rd_obj.value = return_date;
			document.bus_search.roundtrip.checked = true;
			return_date.disabled = false;
		}
		conditional_update();
	}
}

function pickdaterange()
{
    var dateObj = document.getElementById("beforethisdate");
    var dateFilter = dateObj.options[dateObj.selectedIndex].value;
    if (document.bus_search && document.bus_search.filter_date)
    {
        document.bus_search.filter_date.value = dateFilter;
    }
    server_update();
    window.document.getElementById("beforethisdate").focus();
}

function conditional_update()
{
	var t_obj = document.getElementById("timeList");
	if (t_obj && t_obj.innerHTML != "")
	{
		server_update();
	}
}

function server_update()
{
	var from;
	var to;
	var vfrom;
	var vto;
	var vopt;
	if (document.bus_search.option && document.bus_search.option.value == "Hidden")
	{
		from = document.bus_search.bus_from.value;
		to   = document.bus_search.bus_to.value;
		vopt = "option=Hidden";
        vfrom = "&bus_from=";
        vto = "&bus_to=";
	}
	else if (document.bus_search.option.value == "Select")
	{
		var bus_from_obj = get_bus_from_obj();
		if (bus_from_obj && bus_from_obj.value != "")
		{
			from = bus_from_obj.value;
		}
		else
		{
			conditional_clear();
			return;
		}
   		var bus_to_obj = get_bus_to_obj();
		if (bus_to_obj && bus_to_obj.value)
		{
			to = bus_to_obj.value;
		}
		else
		{
			conditional_clear();
			return;
		}
        vfrom = "&bus_from=";
        vto = "&bus_to=";
        vopt = "option=Select";
	}
	else
	{
		from = document.bus_search.sbus_from.value;
		to   = document.bus_search.sbus_to.value;
        vfrom = "&sbus_from=";
        vto = "&sbus_to=";
        vopt = "option=Search";
	}
	var date_obj = window.document.bus_search.filter_date;
	var date = "";
	if (date_obj)
	{
		date = date_obj.value;
	}
	else
	{
		date_obj = window.document.getElementById("beforethisdate");
		if (date_obj)
		{
            date = date_obj.value;
		}
    }
	var op_url = "";
	var operator_obj = window.document.getElementById("operatorList");
	if (operator_obj)
	{
		op_url = "&operator=" + operator_obj.value;
	}
	var q_url = "";
	if (window.document.bus_search.quantity && window.document.bus_search.quantity.value > 1)
	{
		var quantity = window.document.bus_search.quantity.value;
		q_url = "&quantity=" + quantity;
	}
	var rt_url = "";
	var return_url = "";
	var roundtrip = -1;
	if (window.document.bus_search.roundtrip)
	{
	    if (document.bus_search.roundtrip[1].checked == true)
	    {
		roundtrip = 1;
	    }
	    else
	    {
	        roundtrip = 0;
	    }
        }
        if (document.bus_search.option && document.bus_search.option.value != "Hidden")
	{
            var return_obj = window.document.bus_search.return_date;
            if (return_obj)
            {
                var return_date = return_obj.value;
                return_url = "&return_date=" + return_date;
	    }
	    if (roundtrip < 0)
	    {
	       roundtrip = 1;
	    }
	}
	else
	{
	    roundtrip = 0;
	}
	rt_url = "&roundtrip=" + roundtrip;
        var nm_url = "";
        if (window.document.bus_search.nm && window.document.bus_search.nm.value != '')
        {
                var nm = window.document.bus_search.nm.value;
                nm_url = "&nm=" + nm;
        }
        var st_url = "";
        if (window.document.bus_search.st && window.document.bus_search.st.value != '')
        {
                var st = window.document.bus_search.st.value;
                st_url = "&st=" + st;
        }

        ga("/cgi-bin/bus.cgi?" + vopt + vfrom + from + vto + to + "&filter_date=" + date + op_url + q_url + rt_url + return_url + nm_url + st_url);
}

function assignOperator(operator)
{
    var operatorObj = window.document.getElementById("operatorList");
	for (var i=0; i<operatorObj.options.length; i++)
	{
		if (operatorObj.options[i].value == operator)
        {
	        operatorObj.options[i].selected = true;
		    operatorFilter = operator;
		}
		else
		{
			operatorObj.options[i].selected = false;
		}
	}
	server_update();
}

function reverse_from_to()
{
    var to   = document.bus_search.bus_from.value;
    var from = document.bus_search.bus_to.value;
    var need_clear = 0;
    if (from)
    {
        need_clear = 1;
        update_bus_from_to(from, to);
    }
    if (document.bus_search.sbus_from)
    {
        to   = document.bus_search.sbus_from.value; 
        from = document.bus_search.sbus_to.value;
        if (from)
        {
            need_clear = 1;
            document.bus_search.sbus_from.value = from;
            document.bus_search.sbus_to.value = to;
        }
    }
    if (need_clear == 1)
    {
        conditional_clear();
    }
}

function copy_select_to_search()
{
    var f_obj = document.bus_search.bus_from;
    var t_obj = document.bus_search.bus_to;
    var sf_obj = document.bus_search.sbus_from;
    var st_obj = document.bus_search.sbus_to;
    if (t_obj.selectedIndex > 0)
    {
        st_obj.value = t_obj.options[t_obj.selectedIndex].value;
    }

    if (f_obj.selectedIndex > 0)
    {
        sf_obj.value = f_obj.options[f_obj.selectedIndex].value;
    }
}

function copy_search_to_select()
{
    var sf_obj = document.bus_search.sbus_from;
    var st_obj = document.bus_search.sbus_to;
    update_bus_from_to(sf_obj.value, st_obj.value);
}

function bus_where_switch()
{
    var option_obj = document.bus_search.option;
    if (option_obj)
    {
        conditional_clear();
        var select = document.getElementById("select_where");
        var search = document.getElementById("search_where");
        if (option_obj.value == "Select")
        {
            option_obj.value = "Search";
	    if (select && search)
            {
                select.className = "ivyDivHidden";
                search.className = "ivyDivShow";
            }
            copy_select_to_search();
        }
        else
        {
            option_obj.value = "Select";
            if (select && search)
            {
                select.className = "ivyDivShow";
                search.className = "ivyDivHidden";
            }
            copy_search_to_select();
        }
    }
} 

function bus_departure_date_clicked(y,m,d)
{
	if (m < 10) m = '0' + m;
	if (d < 10) d = '0' + d;
	document.bus_search.filter_date.value = y + '-' + m + '-' + d;
	conditional_update();
}	

function bus_return_date_clicked(y,m,d)
{
	if (document.bus_search.return_date.disabled == false)
	{
        	if (m < 10) m = '0' + m;
        	if (d < 10) d = '0' + d;
		var dd = y + '-' + m + '-' + d;
        	document.bus_search.return_date.value = dd;
        	change_r_date(dd);
	}
}

function validate_form_selections(f)
{
    for (var i=0, j=f.elements.length; i<j; i++) 
    {
        var t = f.elements[i].type;
        if (t.match(/select/))
		{
		    if (f.elements[i].value == '') 
			{
				alert("Please Select " + f.elements[i].name + "!");
                f.elements[i].focus();
				return false;
			}
        }
    }
    if (f.time != null && f.time.value < 1.01)
    {
        return confirm("Important: It is a new date after passing 12:00am.\nYou have selected a very early schedule on " + f.Date.value + ".  Please confirm.");
    }   
}

function onBalloonOver()
{
	var b_obj = document.getElementById('balloon').style;
	b_obj.visibility = "visible";
	b_obj.display = "block";
}

function onBalloonOut()
{
        var b_obj = document.getElementById('balloon').style;
        b_obj.visibility = "hidden";
        b_obj.display = "none";
}

function el_pos(obj)
{
    var xOffset, yOffset, elParent;
    if(obj.offsetTop){
        yOffset = (obj.offsetTop?obj.offsetTop:0);
        xOffset = (obj.offsetLeft?obj.offsetLeft:0);
        elParent = obj.offsetParent;
        while(elParent){
            yOffset += (elParent.offsetTop?elParent.offsetTop:0);
            xOffset += (elParent.offsetLeft?elParent.offsetLeft:0);
            elParent = elParent.offsetParent;
        }
    }else if(typeof obj.y != 'undefined'){
        yOffset = obj.y;
        xOffset = obj.x;
    }else{      //information is not available
        yOffset = -1;
        xOffset = -1;
    } 
    return {x:xOffset,y:yOffset};
}

function b_text(obj, text)
{
        var b_obj = document.getElementById('balloon').style;
        var tt = "<table width=150 bgcolor=#aaaaaa cellpadding=4 cellspacing=1><tr><td bgcolor=#ffffff style=\"font-family:ariel,sans-serif\">" + text + "</td></tr></table>";
        document.getElementById('balloon').innerHTML = tt;
        var pos = el_pos(obj);
        b_obj.top = pos.y + 16;
        b_obj.left = pos.x + 16;
        b_obj.visibility = "visible";
        b_obj.display = "block";
}

function no_b_text()
{
        var b_obj = document.getElementById('balloon').style;
        b_obj.visibility = "hidden";
        b_obj.display = "none";
}
//-->

