﻿$(function() {
    if (DateType == 1) {
        $("dl input[ID!='Date1']").attr("onclick", "void(0)");
    }
    $(".znext_import input[value='']").attr("disabled", "disabled");

    for (var i = 0; i < $("dl input[type='text']").size(); i++) {
        if ($("dl input[type='text']:eq(" + i + ")").val() == "") {
            $("dl input[type='text']:eq(" + i + ")").attr("disabled", "disabled");
        }
    }

    $("input[ID^='Date']").removeAttr("disabled");

    for (var i = 0; i < MaxJouneryNum; i++) {
        if (document.getElementById("OutHotel" + i) != null) {
            $("#OutHotel" + i).removeAttr("disabled");
            break;
        }
    }

})

//参数信息：o调用该方法的元素。
//IntoHotelDay：入住酒店调整天数
//num：行程步骤
//thisMinIntoHotel:当前行程最小入住天数
function setIntoHotel(IntoHotelDay, num, thisMinIntoHotel) {
    $.ajax({
        type: "GET",
        url: "/ashx/ashx0003.ashx?ID=" + ID + "&StartTime=" + $("#Date1").val() + "&DateType=" + DateType,
        success: function(msg) {
            var itinerary = eval("(" + msg + ")"); //转换为json对象
            for (var i = 0; i < itinerary.data.length; i++) {
                if (itinerary.data[i] == null) {
                    break;
                }
                $("#Date" + parseFloat(i + 1)).val(itinerary.data[i].StartTime);
                $("#IntoHotel" + parseInt(i + 1)).val(itinerary.data[i].IntoHotelTime);
                $("#OutHotel" + parseInt(i + 1)).val(itinerary.data[i].OutHotelTime);
                $("#night" + parseInt(i + 1)).val("入住" + itinerary.data[i].Night + "晚");

                if (FreeTour_AirType == 1) {
                    var DateReturnTrip = GetTimeByString2($("#Date1").val(), MaxNight);
                    $("#Date" + MaxJouneryNum).val(DateReturnTrip.getFullYear() + "-" + parseInt(DateReturnTrip.getMonth() + 1) + "-" + DateReturnTrip.getDate());
                }
            }
        }
    });

}

//参数信息
//num:行程步骤
//day:入住调整天数
function setIntoMinDay(num, day) {
    var StartTime = $("#Date" + num).val(); //出发时间
    var DateArr = StartTime.split("-");
    //var DateNew = new Date(DateArr[0], parseInt(DateArr[1]) - 1, DateArr[2]);
    //DateNew.setDate(parseInt(DateNew.getDate()) + (day));
    var DateNew = GetTimeByString2($("#Date" + num).val(), day);
    return DateNew.getFullYear() + "-" + parseInt(DateNew.getMonth() + 1) + "-" + DateNew.getDate();
}

//参数信息
//num:行程步骤
//IntoDay:入住调整天数
//MaxDay:最大入住天数
//MinDay:最小入住天数
function setIntoMaxDay(num, IntoDay, MaxDay, MinDay) {
    var StartTime = $("#Date" + num).val(); //出发时间
    var DateArr = StartTime.split("-");

    var year = DateArr[0];
    var Month = DateArr[1] - 1;
    var Day = DateArr[2];

    var DateNew = new Date(year, Month, Day);
    DateNew.setDate(DateNew.getDate() + parseInt(IntoDay + MaxDay - MinDay));
    return DateNew.getFullYear() + "-" + parseInt(DateNew.getMonth() + 1) + "-" + DateNew.getDate();
}

//参数信息
//num:行程步骤
//MinDay:最小入住天数
//day:入住调整天数
function setOutMinDay(num, MinDay, day) {
    //var StartTime = $("#IntoHotel" + num).val(); //入住时间
    var StartTime = $("#Date" + num).val(); //出发时间

    var DateArr = StartTime.split("-");
    var year = DateArr[0];
    var Month = DateArr[1] - 1;
    var Day = DateArr[2];

    var DateNew = new Date(year, Month, Day);
    DateNew.setDate(DateNew.getDate() + parseInt(MinDay + day));
    return DateNew.getFullYear() + "-" + parseInt(DateNew.getMonth() + 1) + "-" + DateNew.getDate();
}


//参数信息
//num:行程步骤
//MaxDay:最大入住天数
//day:入住调整天数
function setOutMaxDay(num, MaxDay, day) {
    var StartTime = $("#Date" + num).val(); //出发时间
    var DateArr = StartTime.split("-");
    var year = DateArr[0];
    var Month = DateArr[1] - 1;
    var Day = DateArr[2];

    var DateNew = new Date(year, Month, Day);
    DateNew.setDate(DateNew.getDate() + parseInt(MaxDay + day));
    return DateNew.getFullYear() + "-" + parseInt(DateNew.getMonth() + 1) + "-" + DateNew.getDate();
}

//设置下一程入住日期,下一程入住日期和当前行程的入住晚数
//num:行程步骤
//IntoDay:下一程入店调整天数
//OutDay:离店调整天数
//NextMinHotelDay:下一程酒店最小入住天数
//thisIntoDay:当前行程入店调整天数
//upperOutDay:上一程离店调整天数
//thisMinHotelDay:当前最小入住酒店天数
function SetIntoDay(num) {
    var OutDay = $("#OutHotelRoomNightNum" + num).val(); //离店调整天数
    var IntoDay = $("#IntoHotelRoomNightNum" + parseInt(num + 1)).val(); //下一程入店调整天数
    var NextMinHotelDay = $("#IntoHotelRoomNightMinNum" + parseInt(num + 1)).val(); //下一程酒店最小入住天数
    var thisIntoDay = $("#IntoHotelRoomNightNum" + num).val(); //当前行程入店调整天数
    var upperOutDay = $("#OutHotelRoomNightNum" + parseInt(num - 1)).val(); //上一程离店调整天数
    var thisMinHotelDay = $("#IntoHotelRoomNightMinNum" + num).val(); //当前最小入住酒店天数

    $.ajax({
        type: "GET",
        url: "/ashx/ashx0002.ashx?BeginTime=" + $("#IntoHotel" + num).val() + "&EndTime=" + $("#OutHotel" + num).val(),
        success: function(msg) {
            $("#night" + num).text("入住" + msg + "晚");
        }
    });

    var StartTime = $("#OutHotel" + num).val(); //退房日期
    var DateArr = StartTime.split("-");

    var year = DateArr[0];
    var Month = DateArr[1] - 1;
    var Day = DateArr[2];

    var DateNew = new Date(year, Month, Day); //下一程出发日期
    var DateNew2 = new Date(year, Month, Day); //下一程入住酒店日期

    DateNew.setDate(DateNew.getDate() + parseInt(OutDay));
    DateNew2.setDate(DateNew2.getDate() + parseInt(OutDay) + parseInt(IntoDay)); //下一程入住酒店日期

    //判断当前日期退房日期是否大于下一程退房日期
    if (document.getElementById("OutHotel" + parseInt(num + 1)) != null && $("#OutHotel" + parseInt(num + 1)).val() != "") {
        var beginTime = GetTimeByString2(StartTime, parseInt(IntoDay + OutDay + NextMinHotelDay));
        var endTime = GetTimeByString($("#OutHotel" + parseInt(num + 1)).val());

        m = endTime - beginTime;
        m -= (D = parseInt(m / 86400000)) * 86400000;
        m -= (H = parseInt(m / 3600000)) * 3600000;
        S = parseInt((m -= (M = parseInt(m / 60000)) * 60000) / 1000);
        endTime.setSeconds(endTime.getSeconds() + 1); //新的时间值
        day = D;
        //当当前退房日期小于下一程退房日期时，添加当前退房日期的样式
        if (day < 0) {
            $("#OutHotel" + parseInt(num + 1)).addClass("chenjing_border_red");
        } else {
            $("#OutHotel" + parseInt(num + 1)).removeClass("chenjing_border_red");
        }
    }

    //判断当前退房日期是否小于上一程退房日期
    if (document.getElementById("OutHotel" + parseInt(num - 1)) != null) {
        var endTime = GetTimeByString($("#OutHotel" + num).val());
        var beginTime = GetTimeByString2($("#OutHotel" + parseInt(num - 1)).val(), parseInt(thisIntoDay + upperOutDay + thisMinHotelDay));
        m = endTime - beginTime;
        m -= (D = parseInt(m / 86400000)) * 86400000;
        m -= (H = parseInt(m / 3600000)) * 3600000;
        S = parseInt((m -= (M = parseInt(m / 60000)) * 60000) / 1000);
        endTime.setSeconds(endTime.getSeconds() + 1); //新的时间值
        day = D;
        //当当前退房日期不小于上一程退房日期时，去除当前退房日期的样式

        if (day >= 0) {
            $("#OutHotel" + num).removeClass("chenjing_border_red");
        }
    }

    //判断退房日期是否小于出发日期
    if (document.getElementById("IntoHotel" + num) != null) {
        var beginTime = GetTimeByString2($("#IntoHotel" + num).val(), thisMinHotelDay);
        var endTime = GetTimeByString($("#OutHotel" + num).val());
        m = endTime - beginTime;
        m -= (D = parseInt(m / 86400000)) * 86400000;
        m -= (H = parseInt(m / 3600000)) * 3600000;
        S = parseInt((m -= (M = parseInt(m / 60000)) * 60000) / 1000);
        endTime.setSeconds(endTime.getSeconds() + 1); //新的时间值
        day = D;
        //当当前退房日期不小于上一程退房日期时，去除当前退房日期的样式
        if (day >= 0) {
            $("#OutHotel" + num).removeClass("chenjing_border_red");
        }
    }

    //设置下一程的出发日期
    if (document.getElementById("Date" + parseInt(num + 1)) != null) {
        if (num + 1 == MaxJouneryNum && FreeTour_AirType == 1)
            return;
        $("#Date" + parseInt(num + 1)).val(DateNew.getFullYear() + "-" + parseInt(DateNew.getMonth() + 1) + "-" + DateNew.getDate());
        //设置下一程的入住日期
        if (document.getElementById("IntoHotel" + parseInt(num + 1)) != null) {
            $("#IntoHotel" + parseInt(num + 1)).val(DateNew2.getFullYear() + "-" + parseInt(DateNew2.getMonth() + 1) + "-" + DateNew2.getDate());

            //设置住几晚
            if ($("#OutHotel" + parseInt(num + 1)).val() != "") {
                m = $("#OutHotel" + parseInt(num + 1)).val() - $("#IntoHotel" + parseInt(num + 1)).val();
                m -= (D = parseInt(m / 86400000)) * 86400000;
                m -= (H = parseInt(m / 3600000)) * 3600000;
                S = parseInt((m -= (M = parseInt(m / 60000)) * 60000) / 1000);
                endTime.setSeconds(endTime.getSeconds() + 1); //新的时间值
                //day = D + '天' + H + '时' + M + '分' + S + '秒';
                day = D;

                $("#night" + num + 1).text("入住" + day + "晚");
            }
        }
    }

    if (document.getElementById("IntoHotel" + parseInt(num + 1)) != null) {
        $("#Date" + parseInt(num + 1)).removeAttr("disabled");
        $("#IntoHotel" + parseInt(num + 1)).removeAttr("disabled");
        $("#OutHotel" + parseInt(num + 1)).removeAttr("disabled");
    }

    if (document.getElementById("IntoHotel" + parseInt(num + 1)) == null) {

        for (var i = parseInt(num + 1); i <= MaxJouneryNum; i++) {

            OutDay = $("#OutHotelRoomNightNum" + i).val(); //离店调整天数
            thisIntoDay = $("#IntoHotelRoomNightNum" + i).val(); //当前行程入店调整天数
            IntoDay = $("#IntoHotelRoomNightNum" + parseInt(i + 1)).val(); //下一程入店调整天数

            StartTime = $("#Date" + i).val(); //退房日期
            DateArr = StartTime.split("-");

            year = DateArr[0];
            Month = DateArr[1] - 1;
            Day = DateArr[2];

            DateNew = new Date(year, Month, Day); //下一程出发日期
            DateNew2 = new Date(year, Month, Day); //下一程入住酒店日期

            DateNew.setDate(DateNew.getDate() + parseInt(OutDay)); //下一程出发日期
            DateNew2.setDate(DateNew2.getDate() + parseInt(OutDay) + parseInt(IntoDay)); //下一程入住酒店日期

            //设置下一程的出发日期
            if (document.getElementById("Date" + parseInt(i + 1)) != null) {
                if (i + 1 == MaxJouneryNum && FreeTour_AirType == 1)
                    return;
                $("#Date" + parseInt(i + 1)).val(DateNew.getFullYear() + "-" + parseInt(DateNew.getMonth() + 1) + "-" + DateNew.getDate());
                //设置下一程的入住日期
                if (document.getElementById("IntoHotel" + parseInt(i + 1)) != null) {
                    $("#IntoHotel" + parseInt(i + 1)).val(DateNew2.getFullYear() + "-" + parseInt(DateNew2.getMonth() + 1) + "-" + DateNew2.getDate());
                }
            }

            //设置住几晚

            m = endTime - beginTime;
            m -= (D = parseInt(m / 86400000)) * 86400000;
            m -= (H = parseInt(m / 3600000)) * 3600000;
            S = parseInt((m -= (M = parseInt(m / 60000)) * 60000) / 1000);
            endTime.setSeconds(endTime.getSeconds() + 1); //新的时间值
            //day = D + '天' + H + '时' + M + '分' + S + '秒';
            day = D;

            $("#night" + i + 1).text("入住" + day + "晚");

            if (document.getElementById("IntoHotel" + parseInt(i + 1)) != null) {
                $("#Date" + parseInt(i + 1)).removeAttr("disabled");
                $("#IntoHotel" + parseInt(i + 1)).removeAttr("disabled");
                $("#OutHotel" + parseInt(i + 1)).removeAttr("disabled");
                break;
            }
        }
    }
}

//验证入住日期
//num:步骤数
//IntoDay:入住调整天数
function checkIntoHotel(num, IntoDay) {
    var beginTime = GetTimeByString($("#Date" + num).val());
    var endTime = GetTimeByString($("#IntoHotel" + num).val());
    m = endTime - beginTime;
    m -= (D = parseInt(m / 86400000)) * 86400000;
    m -= (H = parseInt(m / 3600000)) * 3600000;
    S = parseInt((m -= (M = parseInt(m / 60000)) * 60000) / 1000);
    endTime.setSeconds(endTime.getSeconds() + 1); //新的时间值
    //day = D + '天' + H + '时' + M + '分' + S + '秒';
    day = D;
    if (day > IntoDay) {
        $("#Prompt" + num).css("display", "block");
        parent.setWidgetLocation(654, parseInt($(document).height() + 4), 80);
    } else {
        if ($("#Prompt" + num).css("display") == "block") {
            parent.setWidgetLocation(654, parseInt($(document).height() - 22), 80);
        }
        $("#Prompt" + num).css("display", "none");
    }
}

//验证提交
function checkSubmit() {

    var flag = false;

    //验证是否存在未选择日期的情况  
    for (var i = 0; i < $("dl input[type='text']").size(); i++) {
        if ($("dl input[type='text']:eq(" + i + ")").val() == "" || $("dl input[type='text']:eq(" + i + ")").val() == "") {
            $("dl input[type='text']:eq(" + i + ")").click();
            alert("请选择日期");
            flag = false;
            return false;
        }
    }

    //验证总日期是否符合规范

    //总入住晚数
    var day = 0;
    //调整天数
    var AdjustmentDay = 0;
    for (var i = 1; i <= MaxJouneryNum; i++) {
        if ($("#IntoHotel" + i).size() > 0 && $("#OutHotel" + i).size() > 0) {
            var DateArr = $("#IntoHotel" + i).val().split("-");
            var year = DateArr[0];
            var Month = DateArr[1] - 1;
            var Day = DateArr[2];

            var beginTime = new Date(year, Month, Day);

            var DateArr2 = $("#OutHotel" + i).val().split("-");
            var year2 = DateArr2[0];
            var Month2 = DateArr2[1] - 1;
            var Day2 = DateArr2[2];

            var endTime = new Date(year2, Month2, Day2);

            m = endTime - beginTime;
            m -= (D = parseInt(m / 86400000)) * 86400000;
            m -= (H = parseInt(m / 3600000)) * 3600000;
            S = parseInt((m -= (M = parseInt(m / 60000)) * 60000) / 1000);
            endTime.setSeconds(endTime.getSeconds() + 1); //新的时间值
            //day = D + '天' + H + '时' + M + '分' + S + '秒';
            day = day + D + parseInt($("#IntoHotelRoomNightNum" + i).val());
            AdjustmentDay = AdjustmentDay + parseInt($("#IntoHotelRoomNightNum" + i).val());
        }
    }

    //验证日期过短或过长
    if (day > MaxNight) {
        alert("您的入住晚数过长,应小于等于" + (MaxNight - AdjustmentDay) + "晚");
        return false;
    }

    if (day < MinNight) {
        alert("您的入住晚数过短,应大于等于" + (MinNight - AdjustmentDay) + "晚");
        return false;
    }

    //验证最小成人数
    if ($("#PersonNum").val() == "" || parseInt(MinPerson) > parseInt($("#PersonNum").val()) || $("#PersonNum").val() <= 0) {
        $("#PersonNum").focus();
        alert("出行成人数必须大于等于最小成人数且不为空");
        return false;
    }

    //验证是否存在上一程退房日期大于下一程退房日期
    if ($(".chenjing_border_red").size() > 0) {
        $(".chenjing_border_red:frist").click();
        return false;
    }
    return true;
}

//根据日期字符串(2011-7-1)返回日期类型
function GetTimeByString(str) {
    var StartTime = str; //出发时间
    var DateArr = StartTime.split("-");
    var year = DateArr[0];
    var Month = parseInt(DateArr[1] - 1);
    var Day = DateArr[2];

    return new Date(year, Month, Day);
}

//根据日期字符串(2011-7-1)返回日期类型
function GetTimeByString2(str, days) {
    var StartTime = str; //出发时间
    var DateArr = StartTime.split("-");
    var year = DateArr[0];
    var Month = Number(DateArr[1]) - 1;
    var Day = Number(DateArr[2]) + Number(days);
    return new Date(year, Month, Day);
}

//只能输入数字
function checkkey(value, e) {
    var key = window.event ? e.keyCode : e.which;
    if ((key > 95 && key < 106) ||
                    (key > 47 && key < 60)) {
    } else if (key != 8) {
        if (window.event) //IE 
        {
            e.returnValue = false;   //event.returnValue=false 效果相同. 
        }
        else //Firefox 
        {
            e.preventDefault();
        }
    }
} 
