YAHOO.namespace("tphawaii.calendar");

function setJapanese() {
    // Date labels for Japanese locale
    this.cfg.setProperty("MONTHS_SHORT",   ["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"]);
    this.cfg.setProperty("MONTHS_LONG",    ["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"]);
    this.cfg.setProperty("WEEKDAYS_1CHAR", ["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"]);
    this.cfg.setProperty("WEEKDAYS_SHORT", ["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"]);
    this.cfg.setProperty("WEEKDAYS_MEDIUM",["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"]);
    this.cfg.setProperty("WEEKDAYS_LONG",  ["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"]);
}

function handleSelect(type,args,obj) {
    var dates = args[0];
    var date = dates[0];
    var year = date[0], month = date[1], day = date[2];
    var tourDateEl = document.getElementById("tourDate");
    var arrySelect = tourDateEl.getElementsByTagName("select");
    for (var i = 0; i < arrySelect.length; i++) {
        if (arrySelect[i].name == (obj.id + "_month")) {
            var selMonth = arrySelect[i];
        }
        if (arrySelect[i].name == (obj.id + "_day")) {
            var selDay = arrySelect[i];
        }
        if (arrySelect[i].name == (obj.id + "_year")) {
            var selYear = arrySelect[i];
        }
    }
    for (var y=0;y<selMonth.options.length;y++) {
        if (selMonth.options[y].text == month) {
            selMonth.selectedIndex = y;
            break;
        }
    }
    for (var y=0;y<selDay.options.length;y++) {
        if (selDay.options[y].text == day) {
            selDay.selectedIndex = y;
            break;
        }
    }
    for (var y=0;y<selYear.options.length;y++) {
        if (selYear.options[y].text == year) {
            selYear.selectedIndex = y;
            break;
        }
    }
    obj.hide();
    obj.viewMode = true;
}

function updateCal(e,obj) {
    var tourDateEl = document.getElementById("tourDate");
    var arrySelect = tourDateEl.getElementsByTagName("select");
    for (var i = 0; i < arrySelect.length; i++) {
        if (arrySelect[i].name == (obj.id + "_month")) {
            var selMonth = arrySelect[i];
        }
        if (arrySelect[i].name == (obj.id + "_day")) {
            var selDay = arrySelect[i];
        }
        if (arrySelect[i].name == (obj.id + "_year")) {
            var selYear = arrySelect[i];
        }
    }
    
    var month = selMonth.selectedIndex + 1;
    var day = selDay.selectedIndex + 1;
    var year = parseInt(selYear.options[selYear.selectedIndex].value);

    if (! isNaN(month) && ! isNaN(day) && ! isNaN(year)) {
        var date = month + "/" + day + "/" + year;
        obj.select(date);
        obj.cfg.setProperty("pagedate", month + "/" + year);
        obj.render();
    }
}

function toggleCal(e,obj){
    if ( obj.viewMode ){
        obj.show();
        obj.render();
        obj.viewMode = false;
    }
    else {
        obj.hide();
        obj.viewMode = true;
    }
}

function init() {
    // Setup minimum and maximum dates
    var now = new Date();
    var minDate = (now.getMonth() + 1) + '/' + now.getDate() + '/' + now.getFullYear();
    var maxDate = (now.getMonth() + 1) + '/' + now.getDate() + '/' + (now.getFullYear() + 4);
    var futureDate = new Date();
    futureDate.setDate(futureDate.getDate()+5);
    var selectedDate = (futureDate.getMonth() + 1) + '/' + futureDate.getDate() + '/' + futureDate.getFullYear();
    var pageDate = (futureDate.getMonth() + 1) + '/' + futureDate.getFullYear();

    YAHOO.tphawaii.calendar.tour_date = new YAHOO.widget.Calendar("tour","tourDateContainer", {
                                                                                                selected: selectedDate,
                                                                                                pagedate: pageDate,
                                                                                                mindate: minDate,
                                                                                                maxdate: maxDate,
                                                                                                title:"参加日:",
                                                                                                close:true });
    YAHOO.tphawaii.calendar.tour_date.setJapanese = setJapanese;
    YAHOO.tphawaii.calendar.tour_date.setJapanese();
    YAHOO.tphawaii.calendar.tour_date.selectEvent.subscribe(handleSelect, YAHOO.tphawaii.calendar.tour_date, true);
    YAHOO.tphawaii.calendar.tour_date.render();

    var tourDateEl = document.getElementById("tourDate");
    var arrySelect = tourDateEl.getElementsByTagName("select");
    for (var i = 0; i < arrySelect.length; i++) {
        if (arrySelect[i].name == ("tour_month")) {
            var selMonth = arrySelect[i];
        }
        if (arrySelect[i].name == ("tour_day")) {
            var selDay = arrySelect[i];
        }
        if (arrySelect[i].name == ("tour_year")) {
            var selYear = arrySelect[i];
        }
    }
    YAHOO.util.Event.addListener([selMonth,selDay,selYear], "change", updateCal, YAHOO.tphawaii.calendar.tour_date);
    YAHOO.tphawaii.calendar.tour_date.hide();
    YAHOO.tphawaii.calendar.tour_date.viewMode = true;
    YAHOO.util.Event.addListener("tourCalIcon", "click", toggleCal, YAHOO.tphawaii.calendar.tour_date);
    
    YAHOO.util.Dom.setStyle(['tourDateContainer'], 'display', 'none');
    
    // Search field
    YAHOO.util.Event.addListener('search-field', "blur", setSrchText);
    YAHOO.util.Event.addListener('search-field', "click", clearSrch);
} 

YAHOO.util.Event.addListener(window, "load", init);

function submitForm(){
    document.detailForm.submit();
}
