    function InitCalendar(){
        var body = document.getElementsByTagName("body");
        if(body !== undefined){
            var obj = body.item(0);
            var div = document.createElement("div");
            div.setAttribute('id','calendar');
            obj.insertBefore(div, obj.lastChild);
        }
    }
    
    function ShowCalendar(element_id,date,start_year,end_year,allow_past_days,hide_when_loading){
        AjaxRequest.get(
			{
				'url': WEBROOT + '/_shared/calendar/calendar.php?ajax=1&element_id=' + element_id + '&date=' + date + '&start_year=' + start_year + '&end_year=' + end_year + '&allow_past_days=' + allow_past_days
				,'onSuccess':function(req) {
                    DisplayCalendar(req,element_id);
                }
				,'onLoading':function(req) {
                    if(hide_when_loading === true){
                        HideCalendar();
                    }
                }
				,'onLoaded':function(req) { }
				,'onError':function(req) { }
			}
		);
	}
    
    function DisplayCalendar(req,element_id){
        element = document.getElementById(element_id);
        if(element != undefined){
            var pos = getElementPosition(element);
            var div = document.getElementById('calendar');
            if(div !== undefined){
                div.style.top =  (pos.y + 20) + 'px';
                div.style.left =  pos.x + 'px';
                div.style.display = 'block';
                div.innerHTML = req.responseText;
            }
        }
    }
    
    function HideCalendar(){
        var div = document.getElementById('calendar');
        if(div !== undefined){
            div.style.display = 'none';
            div.style.top = '0px';
	        div.style.left = '0px';
        }
    }
    
    function CalendarSetDate(element_id,date){
        element = document.getElementById(element_id);
        if(element != undefined){
            element.value = date;
        }
        HideCalendar();
    }
    
    function getElementPosition(element) {
        var pos = {x:0, y:0};
    	if (element.offsetParent) {
    		pos.x = element.offsetLeft
    		pos.y = element.offsetTop
    		while (element = element.offsetParent) {
    			pos.x += element.offsetLeft
    			pos.y += element.offsetTop
    		}
    	}
    	return pos;
    }
    
    function addLoadEvent(func){	
        var oldonload = window.onload;
        if (typeof window.onload != 'function'){
            window.onload = func;
        } else {
            window.onload = function(){
                oldonload();
                func();
            }
        }
    }
    addLoadEvent(InitCalendar);
