YAHOO.util.Event.onDOMReady(function(){

    var Event = YAHOO.util.Event,
        Dom = YAHOO.util.Dom,
        dialog, dialog2,
        dialog3, dialog4,
        calendar, calendar2,
        calendar3, calendar4;

    var txtDateArrive = Dom.get("txtDateArrive");

    Event.on(txtDateArrive, "focus", function() {
        if (!dialog) {
            Event.on(document, "click", function(e) {
                var el = Event.getTarget(e);
                var dialogEl = dialog.element;
                if (el != dialogEl && !Dom.isAncestor(dialogEl, el) && el != txtDateArrive && !Dom.isAncestor(txtDateArrive, el)) {
                    dialog.hide();
                }
            });

            function resetHandler() {
                var selDates = calendar.getSelectedDates();
                var resetDate;
    
                if (selDates.length > 0) {
                    resetDate = selDates[0];
                } else {
                    resetDate = calendar.today;
                }
    
                calendar.cfg.setProperty("pagedate", resetDate);
                calendar.render();
            }
    
            function closeHandler() {
                dialog.hide();
            }

            dialog = new YAHOO.widget.Dialog("container", {
                visible:false,
                context:["show", "tl", "bl"],
                buttons:[ {text:"Reset", handler: resetHandler, isDefault:true}, {text:"Close", handler: closeHandler}],
                draggable:false,
                close:true
            });
            dialog.setHeader('Select Arrival Date');
            dialog.setBody('<div id="cal"></div>');
            dialog.render('boxDateArriveCalendar');

            dialog.showEvent.subscribe(function() {
                if (YAHOO.env.ua.ie) {
                    dialog.fireEvent("changeContent");
                }
            });
        }

        if (!calendar) {

            calendar = new YAHOO.widget.Calendar("cal", {
                iframe:false, 
                hide_blank_weeks:true
            });
            calendar.render();

            calendar.selectEvent.subscribe(function() {
                if (calendar.getSelectedDates().length > 0) {

                    var selDate = calendar.getSelectedDates()[0];
                    var dStr = selDate.getDate();
                    var mStr = selDate.getMonth()+1;
                    var yStr = selDate.getFullYear();
    
                    Dom.get("txtDateArrive").value = mStr + "/" + dStr + "/" + yStr;
                    if (calendar2) {
                        calendar2.cfg.setProperty('mindate', selDate);
                        calendar2.cfg.setProperty("pagedate", selDate);
                    }
                } else {
                    Dom.get("txtDateArrive").value = "";
                }
                dialog.hide();
            });

            calendar.renderEvent.subscribe(function() {
                dialog.fireEvent("changeContent");
            });
        }

        var seldate = calendar.getSelectedDates();

        if (seldate.length > 0) {
            calendar.cfg.setProperty("pagedate", seldate[0]);
            calendar.render();
        }

        dialog.show();
    });

    var txtDateArrive2 = Dom.get("txtDateArrive2");

    Event.on(txtDateArrive2, "focus", function() {
        if (!dialog3) {
            Event.on(document, "click", function(e) {
				var el = Event.getTarget(e);
                var dialogEl = dialog3.element;
                if (el != dialogEl && !Dom.isAncestor(dialogEl, el) && el != txtDateArrive2 && !Dom.isAncestor(txtDateArrive2, el)) {
                    dialog3.hide();
                }
            });

            function resetHandler() {
                var selDates = calendar3.getSelectedDates();
                var resetDate;
    
                if (selDates.length > 0) {
                    resetDate = selDates[0];
                } else {
                    resetDate = calendar3.today;
                }
    
                calendar3.cfg.setProperty("pagedate", resetDate);
                calendar3.render();
            }
    
            function closeHandler() {
                dialog3.hide();
            }

            dialog3 = new YAHOO.widget.Dialog("container", {
                visible:false,
                context:["show", "tl", "bl"],
                buttons:[ {text:"Reset", handler: resetHandler, isDefault:true}, {text:"Close", handler: closeHandler}],
                draggable:false,
                close:true
            });
            dialog3.setHeader('Select Arrival Date');
            dialog3.setBody('<div id="cal"></div>');
            dialog3.render('boxDateArriveCalendar2');

            dialog3.showEvent.subscribe(function() {
                if (YAHOO.env.ua.ie) {
                    dialog3.fireEvent("changeContent");
                }
            });
        }

        if (!calendar3) {

            calendar3 = new YAHOO.widget.Calendar("cal", {
                iframe:false, 
                hide_blank_weeks:true
            });
            calendar3.render();

            calendar3.selectEvent.subscribe(function() {
                if (calendar3.getSelectedDates().length > 0) {

                    var selDate = calendar3.getSelectedDates()[0];
                    var dStr = selDate.getDate();
                    var mStr = selDate.getMonth()+1;
                    var yStr = selDate.getFullYear();
    
                    Dom.get("txtDateArrive2").value = mStr + "/" + dStr + "/" + yStr;
                    if (calendar4) {
                        calendar4.cfg.setProperty('mindate', selDate);
                        calendar4.cfg.setProperty("pagedate", selDate);
                    }
                } else {
                    Dom.get("txtDateArrive2").value = "";
                }
                dialog3.hide();
            });

            calendar3.renderEvent.subscribe(function() {
                dialog3.fireEvent("changeContent");
            });
        }

        var seldate = calendar3.getSelectedDates();

        if (seldate.length > 0) {
            calendar3.cfg.setProperty("pagedate", seldate[0]);
            calendar3.render();
        }

        dialog3.show();
    });

    var txtDateDepart = Dom.get("txtDateDepart");

    Event.on(txtDateDepart, "focus", function() {
        if (!dialog2) {
            Event.on(document, "click", function(e) {
                var el = Event.getTarget(e);
                var dialogEl = dialog2.element;
                if (el != dialogEl && !Dom.isAncestor(dialogEl, el) && el != txtDateDepart && !Dom.isAncestor(txtDateDepart, el)) {
                    dialog2.hide();
                }
            });

            function resetHandler() {
                var selDates = calendar.getSelectedDates();
                var resetDate;
    
                if (selDates.length > 0) {
                    resetDate = selDates[0];
                } else {
                    resetDate = calendar.today;
                }
    
                calendar2.cfg.setProperty("pagedate", resetDate);
                calendar2.render();
            }
    
            function closeHandler() {
                dialog2.hide();
            }

            dialog2 = new YAHOO.widget.Dialog("container2", {
                visible:false,
                context:["show", "tl", "bl"],
                buttons:[ {text:"Reset", handler: resetHandler, isDefault:true}, {text:"Close", handler: closeHandler}],
                draggable:false,
                close:true
            });
            dialog2.setHeader('Select Departure Date');
            dialog2.setBody('<div id="cal2"></div>');
            dialog2.render('boxDateDepartCalendar');

            dialog2.showEvent.subscribe(function() {
                if (YAHOO.env.ua.ie) {
                    dialog2.fireEvent("changeContent");
                }
            });
        }

        if (!calendar2) {

            calendar2 = new YAHOO.widget.Calendar("cal2", {
                iframe:false, 
                hide_blank_weeks:true
            });
            if (calendar) {
                if (calendar.getSelectedDates().length > 0) {
                    calendar2.cfg.setProperty('mindate', calendar.getSelectedDates()[0]);
                    calendar2.cfg.setProperty('pagedate', calendar.getSelectedDates()[0]);
                }
            }
            calendar2.render();

            calendar2.selectEvent.subscribe(function() {
                if (calendar2.getSelectedDates().length > 0) {

                    var selDate = calendar2.getSelectedDates()[0];
                    var dStr = selDate.getDate();
                    var mStr = selDate.getMonth()+1;
                    var yStr = selDate.getFullYear();
    
                    Dom.get("txtDateDepart").value = mStr + "/" + dStr + "/" + yStr;
                } else {
                    Dom.get("txtDateDepart").value = "";
                }
                dialog2.hide();
            });

            calendar2.renderEvent.subscribe(function() {
                dialog2.fireEvent("changeContent");
            });
        }

        var seldate = calendar2.getSelectedDates();

        if (seldate.length > 0) {
            calendar2.cfg.setProperty("pagedate", seldate[0]);
            calendar2.render();
        }

        dialog2.show();
    });

    var txtDateDepart2 = Dom.get("txtDateDepart2");

    Event.on(txtDateDepart2, "focus", function() {
        if (!dialog4) {
            Event.on(document, "click", function(e) {
                var el = Event.getTarget(e);
                var dialogEl = dialog4.element;
                if (el != dialogEl && !Dom.isAncestor(dialogEl, el) && el != txtDateDepart2 && !Dom.isAncestor(txtDateDepart2, el)) {
                    dialog4.hide();
                }
            });

            function resetHandler() {
                var selDates = calendar3.getSelectedDates();
                var resetDate;
    
                if (selDates.length > 0) {
                    resetDate = selDates[0];
                } else {
                    resetDate = calendar3.today;
                }
    
                calendar4.cfg.setProperty("pagedate", resetDate);
                calendar4.render();
            }
    
            function closeHandler() {
                dialog4.hide();
            }

            dialog4 = new YAHOO.widget.Dialog("container2", {
                visible:false,
                context:["show", "tl", "bl"],
                buttons:[ {text:"Reset", handler: resetHandler, isDefault:true}, {text:"Close", handler: closeHandler}],
                draggable:false,
                close:true
            });
            dialog4.setHeader('Select Departure Date');
            dialog4.setBody('<div id="cal2"></div>');
            dialog4.render('boxDateDepartCalendar2');

            dialog4.showEvent.subscribe(function() {
                if (YAHOO.env.ua.ie) {
                    dialog4.fireEvent("changeContent");
                }
            });
        }

        if (!calendar4) {

            calendar4 = new YAHOO.widget.Calendar("cal2", {
                iframe:false, 
                hide_blank_weeks:true
            });
            if (calendar3) {
                if (calendar3.getSelectedDates().length > 0) {
                    calendar4.cfg.setProperty('mindate', calendar3.getSelectedDates()[0]);
                    calendar4.cfg.setProperty('pagedate', calendar3.getSelectedDates()[0]);
                }
            }
            calendar4.render();

            calendar4.selectEvent.subscribe(function() {
                if (calendar4.getSelectedDates().length > 0) {

                    var selDate = calendar4.getSelectedDates()[0];
                    var dStr = selDate.getDate();
                    var mStr = selDate.getMonth()+1;
                    var yStr = selDate.getFullYear();
    
                    Dom.get("txtDateDepart2").value = mStr + "/" + dStr + "/" + yStr;
                } else {
                    Dom.get("txtDateDepart2").value = "";
                }
                dialog4.hide();
            });

            calendar4.renderEvent.subscribe(function() {
                dialog4.fireEvent("changeContent");
            });
        }

        var seldate = calendar4.getSelectedDates();

        if (seldate.length > 0) {
            calendar4.cfg.setProperty("pagedate", seldate[0]);
            calendar4.render();
        }

        dialog4.show();
    });
});

function vacationPlannerGoBook(form) {
    var blnResult = true; // optimistic
    var w, h, lpos, tpos;
    w = 800;
    h = 650;
    lpos = (screen.width)?(screen.width-w)/2:100;
    tpos = (screen.height)?(screen.height-h)/2:100;

    var dtArrive, dtDepart, d1_ms, d2_ms, iDays;
    dtArrive = form.txtDateArrive.value;
    dtDepart = form.txtDateDepart.value;
    d1_ms = Date.parse(dtArrive);
    d2_ms = Date.parse(dtDepart);
    if (isNaN(d1_ms) || isNaN(d2_ms)) {
        alert('Please select your Arrival and/or Departure Dates.');
        return false;
    }
    iDays = daysBetween(Date.parse(dtArrive), Date.parse(dtDepart));

    var iAdults, iChildren;
    iAdults = form.ddlNumAdults[form.ddlNumAdults.selectedIndex].value;
    iChildren = form.ddlNumChildren[form.ddlNumChildren.selectedIndex].value;
    if (isNaN(iAdults) || isNaN(iChildren) || (Number(iAdults) + Number(iChildren) < 1)) {
        alert('Your party size must be greater than 0.');
        return false;
    }

    window.open("/go.book.chamber.asp?adt=" + dtArrive + "&days=" + iDays + "&ad=" + iAdults + "&ch=" + iChildren + "&tn=0&sr=0&utm_source=booking-engine&utm_medium=VacationPlanner","","height="+h+",width="+w+",toolbar=1,resizable=1,scrollbars=1,location=1,status=1,menubar=1,top="+tpos+",left="+lpos);
    return false; // don't want to post the form

} // vacationPlannerGoBook

function vacationPlannerGoBook2(form) {
    var blnResult = true; // optimistic
    var w, h, lpos, tpos;
    w = 800;
    h = 650;
    lpos = (screen.width)?(screen.width-w)/2:100;
    tpos = (screen.height)?(screen.height-h)/2:100;

    var dtArrive, dtDepart, d1_ms, d2_ms, iDays;
    dtArrive = form.txtDateArrive2.value;
    dtDepart = form.txtDateDepart2.value;
    d1_ms = Date.parse(dtArrive);
    d2_ms = Date.parse(dtDepart);
    if (isNaN(d1_ms) || isNaN(d2_ms)) {
        alert('Please select your Arrival and/or Departure Dates.');
        return false;
    }
    iDays = daysBetween(Date.parse(dtArrive), Date.parse(dtDepart));

    var iAdults, iChildren;
    iAdults = form.ddlNumAdults[form.ddlNumAdults.selectedIndex].value;
    iChildren = form.ddlNumChildren[form.ddlNumChildren.selectedIndex].value;
    if (isNaN(iAdults) || isNaN(iChildren) || (Number(iAdults) + Number(iChildren) < 1)) {
        alert('Your party size must be greater than 0.');
        return false;
    }

    window.open("/go.book.chamber.asp?adt=" + dtArrive + "&days=" + iDays + "&ad=" + iAdults + "&ch=" + iChildren + "&tn=0&sr=0&utm_source=booking-engine&utm_medium=VacationPlanner","","height="+h+",width="+w+",toolbar=1,resizable=1,scrollbars=1,location=1,status=1,menubar=1,top="+tpos+",left="+lpos);
    return false; // don't want to post the form

} // vacationPlannerGoBook

function daysBetween(date1_ms, date2_ms) {
    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24

    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms)
    
    // Convert back to days and return
    return Math.round(difference_ms/ONE_DAY)

} // daysBetween

function goWebCORISWithPackageAndForce(packageid){
	width = 800;
	height = 570;
	leftposition=(screen.width)?(screen.width-width)/2:100;
	topposition=((screen.height)?(screen.height-height)/2:100)-30;
	winpops=window.open("http://steamboat.mountainvisit.com/ReservationBooking/Secure/Vacation.aspx?action=startres&adt=&ddt=&days=&ad=&ch=&tn=&sr=&pkgid=" + packageid + "&pkgidfc=y","","height="+height+",width="+width+",toolbar=1,resizable=1,scrollbars=1,location=1,status=1,menubar=1,top="+topposition+",left="+leftposition)

} // goWebCORISWithPackageAndForce

