﻿/// <reference path="../jquery-1.4.4.js" />

var $objTarget;

// 달력부분 셋팅하는부분
$(document).ready(function () {

    // 오늘 날짜 가져오기
    GetToDay();

    if ($("#resdayadd").val() == "Y") {
        GetAddDay();
    }


});

function OnCalendar(p_btnid, p_targetname) {


    var $objCal = $("#" + p_btnid);

    //타겟 컨트롤
    $objTarget = $("input[name='" + p_targetname + "']");

    var m_x = $objCal.offset().left - 600;
    var m_y = $objCal.offset().top - $(window).scrollTop() + 20; ;


    if ($("#isdlgopen").val() == "Y") {
        $("#calendar").dialog("close");
        $("#isdlgopen").val("N");
    }

    $("#calendar").dialog({
        modal: false,
        title: "지역정보",
        width: 630,
        height: 310,
        resizable: false,
        closeOnEscape: true,
        istitle: false,
        position: [m_x, m_y]
    });

    $("#isdlgopen").val("Y");

    return;
}



// 창닫기
function OnCalendarClose() {

    if ($("#isdlgopen").val() == "Y") {
        $("#calendar").dialog("close");
        $("#isdlgopen").val("N");
    }

}

function GetToDay() {

    var m_senddata = "";

    m_senddata = $("#frmcalendar").serialize();

    var m_url = "/Unit/Calendar/GetToDay";

    AjaxQueue(m_url, m_senddata, OnSucessToday, OnError);


}


function GetAddDay() {

    var m_senddata = "";

    m_senddata = $("#frmcalendar").serialize();

    var m_url = "/Unit/Calendar/GetAddDay";

    AjaxQueue(m_url, m_senddata, OnSucessAddday, OnError);


}


// 오늘 날짜 데이터 받는 부분
function OnSucessToday(data) {

    var m_today = data.today;

    $("#nowdate").val(m_today);

    var m_tempdate = m_today.split('-');

    var m_years = m_tempdate[0];
    var m_month = m_tempdate[1];
    var m_day = m_tempdate[2];

    $("#nowyear").val(m_years);
    $("#nowmonth").val(m_month);
    $("#nowday").val(m_day);

    var m_strtoday = "현재 날짜 : " + m_years + "년 " + parseInt(m_month, 10) + "월 " + parseInt(m_day, 10) + "일";

    $("#divtoday").html(m_strtoday);

    if ($("#resdayadd").val() == "N") {
        $("#resnowdate").val(m_today);
    }

    // 달력 셋팅
    SetCalendarToday();

}


function OnSucessAddday(data) {

   var m_resday = data.today;

   $("#resnowdate").val(m_resday);

}

// 년월일 오늘로 셋팅
function SetCalendarToday() {

    // 년 셋팅
    SetCalendarYear();
    // 월 셋팅
    SetCalendarMonth();
    // 달력 셋팅
    SetCalendar();

}


// 년도 셋팅
function SetCalendarYear() {

    $("#cboyear > option").remove();

    var m_nowyear = 0;
    var m_maxyear = 0;

    m_nowyear = parseInt($("#nowyear").val(), 10);

    m_maxyear = m_nowyear + 10;

    for (i = m_nowyear; i < m_maxyear; i++) {
        $("#cboyear").append("<option value='" + i + "'>" + i + "년</option>");
    }

    // 이번년도 셋팅
    var m_nowyear = 0;

    m_nowyear = $("#nowyear").val();

    $("#cboyear").val(m_nowyear);

}

// 월 셋팅
function SetCalendarMonth() {

    $("#cbomonth > option").remove();

    for (i = 1; i <= 12; i++) {
        $("#cbomonth").append("<option value='" + i + "'>" + i + "월</option>");
    }

    //현재 월 셋팅
    var m_nowmonth = 0;

    m_nowmonth = $("#nowmonth").val();

    m_nowmonth = parseInt(m_nowmonth, 10);

    $("#cbomonth").val(m_nowmonth);

}

// 달력 날짜 셋팅하는 부분
function SetCalendar() {

    // 데이터 가져오기
    var m_senddata = "";

    m_senddata = $("#frmcalendar").serialize();

    var m_url = "/Unit/Calendar/GetDate2";

    AjaxQueue(m_url, m_senddata, OnSucessCalendar, OnError);

}

function OnSucessCalendar(message) {


    var objdata = message;

    var m_monthtitle = "";

    // 왼쪽달력
    var m_prevtablename = "tbprevcal";
    var m_prevyear = objdata.Table[0].prevyear;
    var m_prevmonth = objdata.Table[0].prevmonth;
    var m_prevlastday = objdata.Table[0].prevlastday;
    var m_prevweekend = objdata.Table[0].prevweekend;

    SetMonthCalendar(m_prevtablename, m_prevyear, m_prevmonth, m_prevweekend, m_prevlastday);

    m_monthtitle = m_prevyear + "년 " + m_prevmonth + "월";

    $("#spprevmonth").html(m_monthtitle);

    $("#prevyear").val(m_prevyear);
    $("#prevmonth").val(m_prevmonth);

    // 가운데 달력
    var m_nowtablename = "tbnowcal";
    var m_nowyear = objdata.Table[0].nowyear;
    var m_nowmonth = objdata.Table[0].nowmonth;
    var m_nowlastday = objdata.Table[0].nowlastday;
    var m_nowweekend = objdata.Table[0].nowweekend;

    SetMonthCalendar(m_nowtablename, m_nowyear, m_nowmonth, m_nowweekend, m_nowlastday);

    m_monthtitle = m_nowyear + "년 " + m_nowmonth + "월";

    $("#spnowmonth").html(m_monthtitle);

    // 다음달력
    var m_nexttablename = "tbnextcal";
    var m_nextyear = objdata.Table[0].nextyear;
    var m_nextmonth = objdata.Table[0].nextmonth;
    var m_nextlastday = objdata.Table[0].nextlastday;
    var m_nextweekend = objdata.Table[0].nextweekend;

    SetMonthCalendar(m_nexttablename, m_nextyear, m_nextmonth, m_nextweekend, m_nextlastday);

    m_monthtitle = m_nextyear + "년 " + m_nextmonth + "월";

    $("#spnextmonth").html(m_monthtitle);
    $("#nextyear").val(m_nextyear);
    $("#nextmonth").val(m_nextmonth);
}

// 월별로 달력 셋팅
function SetMonthCalendar(p_calname, p_year, p_month, p_week, p_lastday) {

    // tbody select
    $tbody = $("#" + p_calname + " > tbody");

    $tbody.empty();

    var m_tbody = "";
    var m_day = 1;

    var b_start = false;

    var m_stryear = p_year;
    var m_strmonth = "";
    var m_strday = "";
    var m_strdate = "";

    var m_nowdate = $("#nowdate").val();

    if (p_month < 10) {
        m_strmonth = "0" + p_month;
    }
    else {
        m_strmonth = p_month;
    }

    var b_today = false;

    var m_resdate = $("#resnowdate").val();
    var m_strday = "";

    var m_resdayadd = $("#resdayadd").val();

    for (row = 1; row <= 6; row++) {

        m_tbody = m_tbody + "<tr>";

        for (col = 1; col <= 7; col++) {

            if (m_day < 10) {
                m_strday = "0" + m_day;
            }
            else {
                m_strday = m_day;
            }

            m_strdate = m_stryear + "-" + m_strmonth + "-" + m_strday;

           
            if (b_start == false && col == p_week) {
                b_start = true;
            }

            if (m_strdate >= m_resdate) {          // 예약가능일
                m_strday = "<b>" + m_day + "</b>";
            }
            else {
                m_strday = m_day;                       // 예약 불가능
            }

            if (b_start == true && m_day <= p_lastday) {

                if (col == 1) {
                    if (m_strdate >= m_resdate || m_resdayadd == "F") {
                        m_tbody = m_tbody + "<td class=\"sun\" id=\"td" + m_strdate + "\" onclick=\"OnSelDate('" + m_strdate + "');\" style=\"cursor:pointer\" onMouseOver=\"OnMouseOver('" + m_strdate + "');\" onMouseOut=\"OnMouseOut('" + m_strdate + "');\">" + m_strday + "</td>";
                    }
                    else {
                        m_tbody = m_tbody + "<td class=\"sun\" id=\"td" + m_strdate + "\">" + m_strday + "</td>";
                    }
                }
                else if (col == 7) {
                    if (m_strdate >= m_resdate || m_resdayadd == "F") {
                        m_tbody = m_tbody + "<td class=\"sat\" id=\"td" + m_strdate + "\" onclick=\"OnSelDate('" + m_strdate + "');\" style=\"cursor:pointer\" onMouseOver=\"OnMouseOver('" + m_strdate + "');\" onMouseOut=\"OnMouseOut('" + m_strdate + "');\">" + m_strday + "</td>";
                    }
                    else {
                        m_tbody = m_tbody + "<td class=\"sat\" id=\"td" + m_strdate + "\">" + m_strday + "</td>";
                    }
                }
                else {
                    if (m_strdate >= m_resdate || m_resdayadd == "F") {
                        m_tbody = m_tbody + "<td id=\"td" + m_strdate + "\" onclick=\"OnSelDate('" + m_strdate + "');\" style=\"cursor:pointer\" onMouseOver=\"OnMouseOver('" + m_strdate + "');\" onMouseOut=\"OnMouseOut('" + m_strdate + "');\">" + m_strday + "</td>";
                    }
                    else {
                        m_tbody = m_tbody + "<td id=\"td" + m_strdate + "\">" + m_strday + "</td>";
                    }
                }

                m_day = m_day + 1;
            }
            else {
                m_tbody = m_tbody + "<td>&nbsp;</td>";
            }

        }

        m_tbody = m_tbody + "</tr>";
    }

    $tbody.append(m_tbody);

}



// 다음 달력부분
function OnNextCalendar() {
    var m_nextyear = ""
    var m_nextmonth = "";

    m_nextyear = $("#nextyear").val();
    m_nextmonth = $("#nextmonth").val();

    $("#cboyear").val(m_nextyear);
    $("#cbomonth").val(m_nextmonth);

    // 달력 재설정
    SetCalendar();



}

// 달력 이전날짜 선택
function OnPrevCalendar() {

    var m_prevyear = ""
    var m_prevmonth = "";

    m_prevyear = $("#prevyear").val();
    m_prevmonth = $("#prevmonth").val();

    $("#cboyear").val(m_prevyear);
    $("#cbomonth").val(m_prevmonth);

    // 달력 재설정
    SetCalendar();


}

//날짜 선택
function OnSelDate(p_date) {

    var m_seldate = p_date;
    var m_nowdate = $("#nowdate").val();
    var m_resdayadd = $("#resdayadd").val();

    if (m_resdayadd != "F") {

        if (m_nowdate > m_seldate) {
            alert("오늘은 " + m_nowdate + " 입니다.\n오늘날짜 이후로 입력하여 주세요.");
            return false;

        }

    }

    $objTarget.val(m_seldate);

    OnCalendarClose();

    return false;

}

function OnMouseOver(p_date) {

    var m_class = "";
    var m_changeclass = "";

    $objTd = $("#td" + p_date);

    m_class = $objTd.attr("class");

    switch (m_class) {
        case "":
            m_changeclass = "select";
            break;
        case "sat":
            m_changeclass = "satselect";
            break;
        case "sun":
            m_changeclass = "sunselect";
            break;
    }

    $objTd.removeClass(m_class);
    $objTd.addClass(m_changeclass);

}


function OnMouseOut(p_date) {

    var m_class = "";
    var m_changeclass = "";
    var m_nowdate = "";

    $objTd = $("#td" + p_date);

    m_class = $objTd.attr("class");

    switch (m_class) {
        case "select":
            m_changeclass = "";
            break;
        case "satselect":
            m_changeclass = "sat";
            break;
        case "sunselect":
            m_changeclass = "sun";
            break;
    }

    $objTd.removeClass(m_class);
    $objTd.addClass(m_changeclass);
    
}

