var oContainerDiv = null;				//存放iframe的div
var ExpireDate = null;					//过期日期
var GroupArray = new Array();			//存放出团安排						//form input的输?
var CalendarInputColor = "#333333";
var oCalendarInput = null;
var OnSelectDate = null;

var AirlineTicketStart = new Array();	//存放启航信息
var AirlineTicketEnd = new Array();		//存放返航航信?
var AirlineTicketDirection = 0;			//启航返航参数
var EndDate = null;						//优化下定时的操作

var bRich = 0;


function SetCalendarInput(ob)
{
	oCalendarInput = ob;
}

function SetExpireDate(ExDate)
{
	var Year = parseInt(ExDate.substr(0,4),10);
	var Month = parseInt(ExDate.substr(5,2),10);
	var Day = parseInt(ExDate.substr(8,2),10);

	ExpireDate = new Date(Year,Month - 1,Day);
}

function GroupPlan(DayNum,AdultPrice,KidPrice,Status)
{
	this.DayNum = DayNum;
	this.AdultPrice = AdultPrice;
	this.KidPrice = KidPrice;
	this.Status = Status;
}
//GroupDate的格?"YYYY-MM-DD"
function PushGroup(GroupDate,AdultPrice,KidPrice,Status)
{
	var DayNum;

	var Year = parseInt(GroupDate.substr(0,4),10);
	var Month = parseInt(GroupDate.substr(5,2),10);
	var Day = parseInt(GroupDate.substr(8,2),10);

	DayNum = CaculateDay(Year,Month - 1,Day);
	
	var Plan = new GroupPlan(DayNum,AdultPrice,KidPrice,Status);
	GroupArray.push(Plan);
	return;
}


function AirlineTicket(DayNum,Status)
{
	this.DayNum = DayNum;
	this.Status = Status;
	this.EndDate = null;
}

//GroupDate的格?"YYYY-MM-DD"
function PushTicketStart(TicketDate,Status)
{
	var DayNum;

	var Year = parseInt(TicketDate.substr(0,4),10);
	var Month = parseInt(TicketDate.substr(5,2),10);
	var Day = parseInt(TicketDate.substr(8,2),10);

	DayNum = CaculateDay(Year,Month - 1,Day);
	
	var Plan = new AirlineTicket(DayNum,Status);
	AirlineTicketStart.push(Plan);
	return;
}

//GroupDate的格?"YYYY-MM-DD"
function PushTicketEnd(TicketDate,Status)
{
	var DayNum;

	var Year = parseInt(TicketDate.substr(0,4),10);
	var Month = parseInt(TicketDate.substr(5,2),10);
	var Day = parseInt(TicketDate.substr(8,2),10);

	DayNum = CaculateDay(Year,Month - 1,Day);
	
	var Plan = new AirlineTicket(DayNum,Status);
	AirlineTicketEnd.push(Plan);
	return;
}


function GetAirlineTicketDirection(DayNum)
{
	var Plan;
	var i;

	if(AirlineTicketDirection==1){
		for(i = 0; i < AirlineTicketStart.length; i++){
			if(AirlineTicketStart[i].DayNum == DayNum)
					return AirlineTicketStart[i];
		}		
	}else{
		for(i = 0; i < AirlineTicketEnd.length; i++){

			if(AirlineTicketEnd[i].DayNum == DayNum){
				if(EndDate!=null){
					if(DayNum<=GetlinuxDate(EndDate)){
						AirlineTicketEnd[i].EndDate = "CannotOrder";	
					}else{
						AirlineTicketEnd[i].EndDate = null;	
					}
				}			
				return AirlineTicketEnd[i];
			}
		}		
	}

	return null;
}
function GetlinuxDate(TicketDate)
{
	var Year = parseInt(TicketDate.substr(0,4),10);
	var Month = parseInt(TicketDate.substr(5,2),10);
	var Day = parseInt(TicketDate.substr(8,2),10);
	return CaculateDay(Year,Month - 1,Day);
}

function GetPlan(DayNum)
{
	var Plan;
	var i;

	for(i = 0; i < GroupArray.length; i++){
		if(GroupArray[i].DayNum == DayNum)
			return GroupArray[i];
	}
	return null;
}

function GroupSort(PlanA,PlanB)
{
	if(PlanA.DayNum > PlanB.DayNum)
		return 1;

	if(PlanA.DayNum < PlanB.DayNum)
		return -1;

	return 0;
}

//计算1970-01-01年以来的天数
function CaculateDay(Year,Month,Day)
{
	var DateOB = new Date(Year,Month,Day);
	var MillSecond = DateOB.getTime();

	return Math.round(DateOB.getTime() / (1000 * 60 * 60 * 24));
}

function ShowCalendar(ob)
{
	var OBTop = 0;
	var OBLeft = 0;
	var oCurrentNode = ob;

	if(oContainerDiv != null){
		return;
	}
	
	oCalendarInput = ob;

	while(oCurrentNode != null && oCurrentNode.tagName != "BODY"){
		OBTop += oCurrentNode.offsetTop;
		OBLeft += oCurrentNode.offsetLeft;
		oCurrentNode = oCurrentNode.offsetParent;
	}

	OBTop += document.getElementsByTagName('BODY')[0].offsetTop;
	OBLeft += document.getElementsByTagName('BODY')[0].offsetLeft; 

	oContainerDiv = document.createElement("DIV");

	oContainerDiv.style.display = "block";
	oContainerDiv.style.position = "absolute";
	oContainerDiv.style.top = (OBTop + ob.offsetHeight + "px");
	oContainerDiv.style.left = (OBLeft + "px");

	document.body.appendChild(oContainerDiv);

	if(bRich)
		GroupArray.sort(GroupSort);		//保险起见，对出团日期进行排序

	if(navigator.userAgent.indexOf("Firefox") > 0)
		oContainerDiv.innerHTML = "<IFRAME name=\"CalendarFrame\" SRC=\"calendar/Calendar.htm\" FRAMEBORDER=\"0\" scrolling=\"no\" width=\"364px\" height=\"191px\"></IFRAME>";
	else
		oContainerDiv.innerHTML = "<IFRAME name=\"CalendarFrame\" SRC=\"calendar/Calendar.htm\" FRAMEBORDER=\"0\" scrolling=\"no\" width=\"360px\" height=\"188px\"></IFRAME>";	

	document.onclick = CloseCalendar;
	return false;
}

function CancelBubble(event)
{
	event.cancelBubble = true;
}

function CloseCalendar()
{
	if(oContainerDiv != null){
		document.body.removeChild(oContainerDiv);
		oContainerDiv = null;

		document.onclick = null;
		return;
	}
}

function SelectDate(Year,Month,Day)
{
	if(oCalendarInput != null){
		oCalendarInput.value = "" + Year + "-" + patch(Month + 1) + "-" + patch(Day);
		oCalendarInput.style.color = CalendarInputColor;
	}

	CloseCalendar();
	
	if(OnSelectDate != null)
		OnSelectDate();
}

function patch(n)
{
	var r = "";

	if (n < 10)	
		r = "0" + n;
	else
		r = "" + n;

	return r;
}