<!--
var b_cities = new Array('Baltimore', 'New York', 'Richmond', 'Washington DC');
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['Baltimore'][0] = 'New York';
g_bus['New York'][0] = 'Baltimore';
g_bus['New York'][1] = 'Richmond';
g_bus['New York'][2] = 'Washington DC';
g_bus['Richmond'][0] = 'New York';
g_bus['Richmond'][1] = 'Washington DC';
g_bus['Washington DC'][0] = 'New York';
g_bus['Washington DC'][1] = 'Richmond';
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 = "http://www.ivymedia.com/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 = "http://www.ivymedia.com/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";
}
//-->

