var calendar, popup, calendarContainer, activeInput, isVisible;

function ToggleCalendar(e, inputId)
{
    ShowCalendar(inputId);
    e.cancelBubble = true;
}

function ShowCalendar(inputId)
{
    if (!popup)
        popup = new RadCalendar.Popup();
        
    if (!calendarContainer)
        calendarContainer = document.getElementById("calendarContainer");
        
    if (activeInput
        && activeInput.id == inputId
        && popup.IsVisible())
    {
        popup.Hide();
    }            
    else
    {        
        activeInput = document.getElementById(inputId);
        var x = PositionX(activeInput);
        var y = PositionY(activeInput) + activeInput.offsetHeight;
        //get the original date 
        var strDateArray = activeInput.value.split("/");
        //conver 2 a rad calendar format
        var dateArray = new Array(3);
        //make positions remapping
        dateArray[0]  = parseInt(strDateArray[2],10);
        dateArray[1]  = parseInt(strDateArray[0],10);
        dateArray[2]  = parseInt(strDateArray[1],10);
        //put current selected date on calendar
        if(calendar!=null) calendar.SelectDate(dateArray,true);
        popup.Show(x, y, calendarContainer);
    }
}

function ChangeInput(renderDay, args)
{     
    var dateArray = args.Date;  
    var dateString = dateArray[1] + "/" + dateArray[2] + "/" + dateArray[0];
    activeInput.value = dateString;
    if (popup.IsVisible()){
        popup.Hide();
    }
}

function ChangeInputAndSubmmit(renderDay, args)
{
    ChangeInput(renderDay, args);
}

function Init()
{}

function PositionX(inputElement) 
{
    var offsetLeft = 0;
    if (inputElement.offsetParent)
    {
        while (inputElement.offsetParent)
        {
            offsetLeft += inputElement.offsetLeft;
            inputElement = inputElement.offsetParent;
        }
    }
    else if (inputElement.x)
    {
        offsetLeft += inputElement.x;
    }
    return offsetLeft;
}

function PositionY(inputElement) 
{
    var offsetTop = 0;
    if (inputElement.offsetParent)
    {
        while (inputElement.offsetParent)
        {
            offsetTop += inputElement.offsetTop;
            inputElement = inputElement.offsetParent;
        }
    }
    else if (inputElement.y)
    {
        offsetTop += inputElement.y;
    }
    return offsetTop;
}

function AreThereRows(strGridId)
{
    var objGrid = document.getElementById(strGridId);
    return (objGrid && objGrid.rows && objGrid.rows.length > 1);
}