var CalendarDiv = null;

function getPosition(obj){
	var node = obj;
	var top=node.offsetTop,left=node.offsetLeft;
	node = node.offsetParent;
	while(node.tagName != "BODY"){
		top += node.offsetTop;
		left += node.offsetLeft;
		node = node.offsetParent;
	}
	return [top,left];
	/*	
	var node = obj;
	var top=node.offsetTop,left=node.offsetLeft;
	node = node.parentNode;
	while(node.tagName != "BODY"){
//		alert(node.tagName + ":" + node.offsetTop + "," + node.offsetLeft);
		if(node.tagName=="TD" || node.tagName=="TBODY" || node.tagName=="TABLE" || node.tagName=="DIV"|| node.tagName=="FIELDSET"){
			top += node.offsetTop;
			left += node.offsetLeft;
		}
		node = node.parentNode;
	}
	return [top,left];
	*/
}

function setCalendarPosition(){
  DateInputObject=window.event.srcElement;
	var pos = getPosition(DateInputObject);
	pos[0] = (pos[0]+189) > document.body.clientHeight ? (document.body.clientHeight-189) : pos[0];
	pos[1] = (pos[1]+174) > document.body.clientWidth ? (document.body.clientWidth-174) : pos[1];
//	alert((pos[0]+189) + ":" + document.body.clientHeight);
//	DateInputObject.offsetParent = window.document.body;
//	alert(DateInputObject.offsetTop + ":" + DateInputObject.offsetLeft );
	CalendarDiv.style.top= pos[0]+20;
	CalendarDiv.style.left= pos[1];
	CalendarDiv.style.display="";
}

function hideCalendar(){
	CalendarDiv.style.display="none";
}

function showCalendar(){
	if(CalendarDiv == null){
		CalendarDiv= document.createElement("div");
		CalendarDiv.style.display="none";
		CalendarDiv.style.position="absolute";
		CalendarDiv.innerHTML = '<iframe width=174 height=189 name="gToday:normal:agenda.js" id="gToday:normal:agenda.js" src="/beef/clay/iflateng.htm" scrolling="no" frameborder="0"></iframe>';
		document.body.appendChild(CalendarDiv);
	}
	setCalendarPosition();
}

function setInputDate(str){
//	alert(getDateString(getDateByStr(str)));
	DateInputObject.value = getDateString(getDateByStr(str));
}

function calendar(){
	DateInputObject = event.srcElement;
	if(event.ctrlKey && window.event.keyCode==68){
			showCalendar();
			return false;
	}
	if(event.altKey && window.event.keyCode==68){
		var d = new Date();
		DateInputObject.value = d.getYear()+"-"+(d.getMonth()+1)+"-"+d.getDate();
		return false;
	}	
}

function getDateArray(datestr){
	var arr = datestr.split("-");
	arr[1] = arr[1].replace(/^0(\d)/, "$1");
	arr[2] = arr[2].replace(/^0(\d)/, "$1");
	return [parseInt(arr[0]),parseInt(arr[1])-1,parseInt(arr[2])];
}

function getDateByStr(dstr){
	var arr = getDateArray(dstr);
	return new Date(arr[0],arr[1],arr[2]);
}

function getDateString(d){
	var dstr = d.getYear() + "-";
	if( (d.getMonth()+1) < 10 )
		dstr += "0";
	dstr += d.getMonth()+1;
	dstr += "-";
	if( d.getDate() < 10)
		dstr += "0";
	dstr += d.getDate();
	return dstr;
}