﻿// YUI Calendar
var cal1;
var over_cal = false;
var current_input = '';
function init() {
    cal1 = new YAHOO.widget.CalendarGroup("cal1","cal1Container",{mindate: new Date(), hide_blank_weeks:true});
    cal1.selectEvent.subscribe(getDate, cal1, true);
    cal1.renderEvent.subscribe(setupListeners, cal1, true);

	// Date labels for China locale
	cal1.cfg.setProperty("MONTHS_LONG",    ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]);
	cal1.cfg.setProperty("WEEKDAYS_1CHAR", ["日", "一", "二", "三", "四", "五", "六"]);
	cal1.cfg.setProperty("WEEKDAYS_SHORT", ["日", "一", "二", "三", "四", "五", "六"]);

	YAHOO.util.Event.addListener('date_in', 'focus', showCal);
	YAHOO.util.Event.addListener('date_in', 'blur', hideCal);
	YAHOO.util.Event.addListener('date_out', 'focus', showCal);
	YAHOO.util.Event.addListener('date_out', 'blur', hideCal);
    cal1.render();
}
function setupListeners() {
    YAHOO.util.Event.addListener('cal1Container', 'mouseover', function() {over_cal = true;});
    YAHOO.util.Event.addListener('cal1Container', 'mouseout', function() {over_cal = false;});
}
function getDate() {
    var calDate = this.getSelectedDates()[0];
    var date_str = calDate.getFullYear() + '-' + (calDate.getMonth() + 1) + '-' + calDate.getDate();
    $(current_input).value = date_str;
    over_cal = false;
    hideCal();
    if (validate_date(calDate) && current_input=='date_in') {
    	$('date_out').focus();
    	current_input = 'date_out';
    }
}
function showCal(e) {
	if (e.target) { // for Firefox and other DOM compatible browser
		current_input = e.target.id;
	} else { // for IE
		current_input = e.srcElement.id;
	}

    var xy = YAHOO.util.Dom.getXY(current_input);
    var date_str = $(current_input).value;
    if (date_str) {
    	date_obj = new Date(date_str.replace(/\-/g, '/'));
    	date_str = (date_obj.getMonth() + 1) + '/' + date_obj.getDate() + '/' + date_obj.getFullYear();
        cal1.cfg.setProperty('selected', date_str);
        cal1.cfg.setProperty('pagedate', date_obj, true);
        if (current_input == 'date_out' && $('date_in').value != '') {
        	var mindate = new Date($('date_in').value.replace(/\-/g, '/'));
        	cal1.cfg.setProperty('mindate', mindate);
        } else {
        	cal1.cfg.setProperty('mindate', new Date());
        }
        cal1.render();
    }
    YAHOO.util.Dom.setStyle('cal1Container', 'display', 'block');
    xy[1] = xy[1] + 20;
    YAHOO.util.Dom.setXY('cal1Container', xy);
}
function hideCal() {
    if (!over_cal) {
        YAHOO.util.Dom.setStyle('cal1Container', 'display', 'none');
    }
}
function validate_date() {
	var now_date = new Date();
	var in_two_month = now_date.getTime() + 60 * 24 * 3600000;
	var date_in = ($('date_in').value!='') ? new Date($('date_in').value.replace(/\-/g, '/')) : new Date();
	var date_out = ($('date_out').value!='') ? new Date($('date_out').value.replace(/\-/g, '/')) : new Date();
	if (date_in.getTime() >= in_two_month) {
		alert('如果您要预订两个月之后的酒店，请致电客服电话，我们会竭诚为您服务。');
		$('date_in').value='';
		$('date_in').focus();
		return false;
	}
	if (date_out.getTime() >= in_two_month) {
		alert('如果您要预订两个月之后的酒店，请致电客服，我们会竭诚为您服务。');
		$('date_out').value='';
		$('date_out').focus();
		return false;
	}
	if ($('date_in').value!='' && $('date_out').value!='') {
		if (date_in.getTime() >= date_out.getTime()) {
			alert('离店时间必须在入住时间之后');
			$('date_out').value='';
			$('date_out').focus();
			return false;
		}
		if (date_out.getTime()-date_in.getTime() > 14*24*3600000) {
			alert('入住天数超过14天，为了保证订单的顺利确认，请拨打客服电话预订酒店，谢谢！');
			$('date_out').value='';
			$('date_out').focus();
			return false;
		}
	}
	return true;
}
YAHOO.util.Event.addListener(window, 'load', init);


