var KalenderID = IDPRAEFIX + "KalenderPanel";
var KalenderYearTextboxID = IDPRAEFIX + "KalenderYearTextbox";
var CONTENTPLACEHOLDER = "ContentPlaceHolder1_";
var KalenderTop = IDPRAEFIX + "KalenderTop";
var KalenderLeft = IDPRAEFIX + "KalenderLeft";
var KalenderVisibility = IDPRAEFIX + "KalenderVisibility";
var KalenderTopOffset = -28;
var CurrentDateInputField = null;   
var hiding=false;
var binover = false;
var KalenderHideInterval = null;
var MountSelectOpen = false;
 
function ShowCalendar(pID,pTop)
{
    var o = document.getElementById(IDPRAEFIX + pID); //FilterFieldIdPraefix
    CurrentDateInputField = o;
       
    var kalender = document.getElementById(KalenderID);
  
    var top = parseInt(o.parentNode.parentNode.parentNode.parentNode.offsetTop,10);
    var left = parseInt(o.parentNode.parentNode.parentNode.parentNode.offsetLeft,10);

        
    kalender.style.top = top + pTop + "px";
    kalender.style.left = left +"px";    // +25
    kalender.style.visibility = "visible";
    
    kalender.style.position = "absolute";
    kalender.style.zIndex = "999";
    
    document.getElementById(KalenderLeft).value = kalender.style.left;
    document.getElementById(KalenderTop).value = kalender.style.top;
    document.getElementById(KalenderVisibility).value = kalender.style.visibility;
}

function ShowCalendarRelative(pID, pTop,pLeft) {
    var o = document.getElementById(IDPRAEFIX + pID); //FilterFieldIdPraefix
    CurrentDateInputField = o;

    var kalender = document.getElementById(KalenderID);

    var pos=findPos(o);
    var top = pos[1]; 
    var left = pos[0];


    kalender.style.top = top + pTop + "px";
    kalender.style.left = left + pLeft+"px";
    kalender.style.visibility = "visible";

    kalender.style.position = "absolute";
    kalender.style.zIndex = "999";

    document.getElementById(KalenderLeft).value = kalender.style.left;
    document.getElementById(KalenderTop).value = kalender.style.top;
    document.getElementById(KalenderVisibility).value = kalender.style.visibility;
}






function ShowTextBoxKalender(pID,pTop,pLeft)
{
    var o = document.getElementById(IDPRAEFIX + pID); //FilterFieldIdPraefix
    CurrentDateInputField = o;
       
    var kalender = document.getElementById(KalenderID);
    if (!kalender) 
    {
        kalender = document.getElementById(IDPRAEFIX + CONTENTPLACEHOLDER + KalenderID.replace(IDPRAEFIX, ''));
        if(KalenderTop.search(CONTENTPLACEHOLDER) == -1)
        {
            KalenderLeft = IDPRAEFIX + CONTENTPLACEHOLDER + KalenderLeft.replace(IDPRAEFIX, '');
            KalenderTop = IDPRAEFIX + CONTENTPLACEHOLDER + KalenderTop.replace(IDPRAEFIX, '');
            KalenderVisibility = IDPRAEFIX + CONTENTPLACEHOLDER + KalenderVisibility.replace(IDPRAEFIX, '');
        }
    }
        
    kalender.style.top = pTop + "px";
    kalender.style.left = pLeft + "px";
    kalender.style.visibility = "visible";
    
    kalender.style.position = "absolute";
    kalender.style.zIndex = "999";
    
    document.getElementById(KalenderLeft).value = kalender.style.left;
    document.getElementById(KalenderTop).value = kalender.style.top;
    document.getElementById(KalenderVisibility).value = kalender.style.visibility;
    HideCalendar();
}

function ShowEditFieldCalendar(pImage,pID,pTopOffset,pLeftOffset)
{
    var o = pImage;
    var top = o.style.top;
    var left = o.style.left;
    var kalender = document.getElementById(KalenderID);

    var topInt = parseInt(top.replace("px",""),10);
    var leftInt = parseInt(left.replace("px",""),10);
    var topOffsetInt = parseInt(pTopOffset,10);
    var leftOffsetInt = parseInt(pLeftOffset,10);
    

    CurrentDateInputField = document.getElementById(IDPRAEFIX + pID);

    var windowHeight = GetWindowHeight();
    var posTop=topInt + topOffsetInt;
    if ( (posTop + 150) > (windowHeight-25) )  posTop=posTop-170;
    kalender.style.top =  (posTop + KalenderTopOffset) + "px";
    kalender.style.left = leftInt + leftOffsetInt + "px";
    kalender.style.visibility = "visible";

    kalender.style.position = "absolute";
    kalender.style.zIndex = "999";
    
    document.getElementById(KalenderLeft).value = kalender.style.left;
    document.getElementById(KalenderTop).value = kalender.style.top;
    document.getElementById(KalenderVisibility).value = kalender.style.visibility;
    HideCalendar(); 
}

function HideCalendar() 
{
    if (MountSelectOpen) return;
    
    if(!hiding)
   { 
     hiding=true; 
     KalenderHideInterval = window.setTimeout("dohiding();",1000);
   } 
}

function dohiding() 
{
    if(!binover)
   {
       DoHidecalender();
   } 
   hiding=false;
}

function DoHidecalender() {
    var kalender = document.getElementById(KalenderID);
    if (!kalender) kalender = document.getElementById(IDPRAEFIX + CONTENTPLACEHOLDER + KalenderID.replace(IDPRAEFIX, ''));

    kalender.style.visibility = "hidden";
    document.getElementById(KalenderVisibility).value = kalender.style.visibility;
}

function SelectDateFromCalendar(pDate) 
{
    if ( CurrentDateInputField != null ) 
    {
     CurrentDateInputField.value = pDate;
     if (CurrentDateInputField.onchange != null && CurrentDateInputField.readOnly == true) { CurrentDateInputField.onchange(); }
    }
    if(CurrentDateInputField.id.indexOf("FilterField")>=0)block(true);

    DoHidecalender();
}

var KalenderInterval;
function KalenderMouseOver() 
{
    binover = true;
    MountSelectOpen = false;
 }

function KalenderMouseOut() {
    binover=false;
    HideCalendar();
 }

 function KalenderMonthSelectClick(pObject) {
     MountSelectOpen = true;
 }

