var targetObj;

function getObject( objCAL ) {
  if ( document.getElementById ) {
    objCAL = document.getElementById( objCAL );

  } else if ( document.all ) {
    objCAL = document.all.item( objCAL );

  } else {
    objCAL = null;
  }
	return objCAL;
}

function moveObject( objCAL, e ) {
  var tempX = 0;
  var tempY = 0;
  var offset = 5;
  var objHolder = objCAL;
  mayclose=false;

  objCAL = getObject( objCAL );
  if (objCAL==null) return;

  if (document.all) {
    tempX = event.clientX + document.body.scrollLeft;
    tempY = event.clientY + document.body.scrollTop;
  } else {
    tempX = e.pageX;
    tempY = e.pageY;
  }

  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}

  objCAL.style.top  = (tempY + offset) + 'px';
  objCAL.style.left = (tempX + offset) + 'px';

  displayObject( objHolder, true );
}

function displayObject( objCAL, show ) {
  objCAL = getObject( objCAL );
  if (objCAL==null) return;

  objCAL.style.display = show ? 'block' : 'none';
  objCAL.style.visibility = show ? 'visible' : 'hidden';
}

var evalOnExecuteGlobal;
function showcal(objOut, event, evalOnExecute) {
	if (evalOnExecute) evalOnExecuteGlobal = evalOnExecute;
	targetObj = objOut;
	moveObject("calendarche", event);
}

YAHOO.namespace("myCal.calendar");

YAHOO.myCal.calendar.init = function() {
	YAHOO.myCal.calendar.cal1 = new YAHOO.widget.Calendar("cal1","calendarche", {
		START_WEEKDAY: "1",
		MONTHS_SHORT:  ["ßíó", "Ôåâ", "Ìàð", "Àïð", "Ìàé", "Þíè", "Þëè", "Àâã", "Ñåï", "Îêò", "Íîå", "Äåê"],
		WEEKDAYS_SHORT: ["Íä", "Ïí", "Âò", "Ñð", "×ò", "Ïò", "Ñá"],
		MONTHS_LONG: ["ßíóàðè", "Ôåâðóàðè", "Ìàðò", "Àïðèë", "Ìàé", "Þíè", "Þëè", "Àâãóñò", "Ñåïòåìâðè", "Îêòîìâðè", "Íîåìâðè", "Äåêåìâðè"]
	});

	var mySelectHandler = function(type,args,obj) {
		var selected = args[0];
		if (targetObj) {
			data = this._toDate(selected[0]);

			var y=data.getYear();
			if (y<150) y=y+1900;
			var M=data.getMonth()+1;
			var d=data.getDate();
			targetObj.value = d+'.'+M+'.'+y;
			displayObject("calendarche", 0);
			if (evalOnExecuteGlobal) eval(evalOnExecuteGlobal);
		}
	};

	YAHOO.myCal.calendar.cal1.selectEvent.subscribe(mySelectHandler, YAHOO.myCal.calendar.cal1, true);
	YAHOO.myCal.calendar.cal1
	YAHOO.myCal.calendar.cal1.render();
}

YAHOO.util.Event.onDOMReady(YAHOO.myCal.calendar.init);

mayclose = false;
document.onclick=function(e)
{

	if (document.documentElement && document.documentElement.scrollTop) wtop=document.documentElement.scrollTop;
	else if (document.body) wtop=document.body.scrollTop;
	if (!wtop) wtop=0;

	objCalID = document.getElementById('calendarche')

	objX=parseInt(objCalID.style.left);
	objY=parseInt(objCalID.style.top);

	if (window.event) {
		cliX=window.event.clientX
		cliY=window.event.clientY+wtop
	} else {
		cliX=e.clientX;
		cliY=e.clientY+wtop;
	}
	
	if (objCalID.style.display!="none" && mayclose) {
		if ((cliX<objX || cliX>objX+195) || (cliY<objY || cliY>objY+200)) {
			objCalID.style.display="none";
		}
	}
	mayclose=true;
}
