var calendar = null;
var calendar_fnct = null;

function calendarSelect(cal, date) {
    if (cal.dateClicked) {
        cal.sel.value = date;
        cal.callCloseHandler();
    if ( calendar_fnct != null )
        calendar_fnct(date);
    }
}

function calendarClose(cal) {
    cal.hide();
}

function showCalendar(id, o, fnct) {

    calendar_fnct = null
    if (typeof(fnct) != 'undefined')
        calendar_fnct = fnct

    var cc = document.getElementById('calendar-container');

    cc.style.left = findPosX(o) + 'px';
    cc.style.top = findPosY(o) + 'px';

    var el = document.getElementById(id);
    if (calendar != null) {
        calendar.hide();

    } else {
        var cal = new Calendar(1, null, calendarSelect, calendarClose);
        calendar = cal;
        cal.setRange(1900, 2070);
        cal.create();
    }

    calendar.setDateFormat('%Y.%m.%d');
    calendar.showsTime = false;
    calendar.yearStep = 1;
    calendar.weekNumbers = true;
    calendar.parseDate(el.value);
    calendar.sel = el;
    calendar.showAtElement(cc, "cc");
}

function findPosX(obj)
{
 var curleft = 0;
 if (obj.offsetParent)
 {
 while (obj.offsetParent)
 {
 curleft += obj.offsetLeft
 obj = obj.offsetParent;
 }
 }
 else if (obj.x)
 curleft += obj.x;
 return curleft;
}

function findPosY(obj)
{
 var curtop = 0;
 if (obj.offsetParent)
 {
 while (obj.offsetParent)
 {
 curtop += obj.offsetTop
 obj = obj.offsetParent;
 }
 }
 else if (obj.y)
 curtop += obj.y;
 return curtop;
}

