﻿// Grote kalender

function loadCalendarDates(calendarID, cssCollection, smallCal)
{
    var heenCal;
    var terugCal;
    
    if (calendarID.toLowerCase().indexOf('kalender_heen')>-1)
    {
        heenCal = gO(calendarID+'selectedDate');
        terugCal = gO(calendarID.replace("Kalender_Heen", "Kalender_Terug")+'selectedDate');
    } else {
        heenCal = gO(calendarID.replace("Kalender_Terug", "Kalender_Heen")+'selectedDate');
        terugCal = gO(calendarID+'selectedDate');
    }
    
    //selectedDate
    //var myCalendar = gO(tableID);

    var selectedDate = gO(calendarID+'selectedDate');
    var selectedMonth = gO(calendarID+'maandenLijst');
    
    var monthNr = parseFloat(selectedMonth.value.substr(0, 2)) - 1;
    var yearNr = parseInt(selectedMonth.value.substr(2, 4));

    var bothDates = false;
    
    
    var monthFirstDay = new Date(yearNr, monthNr, 1);
        
    var dayTable = gO(calendarID+'calendarTable');
    
    var numberRows = 6;
    
    // Rijen object    
    var rowObj;

    if (dayTable.tBodies)
    {
        if (dayTable.tBodies.length==0)
        {
            var newBody = document.createElement("tbody");
            dayTable.appendChild(newBody);
        } 
        
        rowObj = dayTable.tBodies[0];
    } else {
        rowObj = dayTable;
    }
    
    // Als er rijen zijn, dan deze verwijderen
    while (rowObj.childNodes.length>0)
    {
        rowObj.removeChild(rowObj.childNodes[0]);
    }

    var fom = monthFirstDay.getDay()
    if (fom == 0) { fom = 7; }
    var dlm = (numberRows-6) + (fom - 1);
    if (dlm==0) { dlm=7; }
    
    //var dtm = daysInMonth(monthFirstDay.getMonth(), monthFirstDay.getFullYear())
    //var dnm = (numberRows*7) - dlm - dtm;
    
    //var iterateDay = new Date(yearNr, monthNr, (-1 * dlm)+1);
    //var nextDay = new Date(yearNr, monthNr, (-1 * dlm)+2);
    
    var dayCollection = new Array((numberRows*7)-1);
    
    //alert(nextDay-iterateDay);
    for (i=0; i<(numberRows*7); i++)
    {
        dayCollection[i] = (new Date(yearNr, monthNr, (-1 * dlm)+1+i));
    }

    var dayShift = 0;

    if (calendarID.indexOf('Terug') > -1) {
        dayShift = -1;
    }

    for (i=0; i<numberRows; i++)
    {
        var newRow = document.createElement('tr');

        for (j=0; j<7; j++)
        {
            var newCell = document.createElement('td');  
            var newDiv = document.createElement('div');  
            
            var addHTML='';
            
            var addHover = true;
            
            if (!smallCal)
            {
                switch (cssCollection[(i * 7) + j + dayShift])
                {
                    case "00":
                        newDiv.className='generic_notAvailable';
                        addHover = false;
                    break;

                    case "11":
                        newDiv.className='offer_Available';
                    break;

                    case "20":
                        newDiv.className='normal_OnRequest';
                    break;

                    case "21":
                        newDiv.className='offer_OnRequest';
                    break;

                    case "101":
                        newDiv.className='normal_Available';
                        
                        addHTML='<img style="position: absolute; right: -2px; top: -2px" src="/App_Image/icon/phone_us.png" alt="Bel ons om deze datum te reserveren" />';
                    break;

                    case "201":
                        newDiv.className='normal_OnRequest';
                        
                        addHTML='<img style="position: absolute; right: -2px; top: -2px" src="/App_Image/icon/phone_us.png" alt="Bel ons om deze datum te reserveren" />';
                    break;

                    default:
                        newDiv.className='normal_Available';
                    break;
                }

            } else {
                newDiv.className='small_Available';
            }

            newDiv.setAttribute("tmpClass",newDiv.className);
            newDiv.setAttribute("orgClass",newDiv.className);
            if (!smallCal)
            {
                newDiv.setAttribute("fixedClass","fixed_Date");
            } else {
                newDiv.setAttribute("fixedClass","small_Fixed");
            }
            
            
            newDiv.innerHTML=(dayCollection[(i*7)+j].getDate()).toString()+addHTML;
            //newCell.innerHTML=(dayCollection[(i*7)+j]).toString();
            newDiv.setAttribute("tmpDate",dayCollection[(i*7)+j].getDate().toString()+'-'+(dayCollection[(i*7)+j].getMonth()+1).toString()+'-'+dayCollection[(i*7)+j].getFullYear().toString());
            newDiv.setAttribute("calID", calendarID);
            
            if (addHover)
            {
       		    if (browser.isIE) {
//                    newCell.attachEvent("onmouseover", hoverOn);
//                    newCell.attachEvent("onmouseout", hoverOff);
//                    newCell.attachEvent("onclick", setDate);
                    newDiv.attachEvent("onmouseover", hoverOn);
                    newDiv.attachEvent("onmouseout", hoverOff);
                    newDiv.attachEvent("onclick", setDate);
                    //window.event.cancelBubble = true;
                    //window.event.returnValue = false;
                }
                if (browser.isNS) {
//                    newCell.addEventListener("mouseover", hoverOn, true);
//                    newCell.addEventListener("mouseout", hoverOff, true);
//                    newCell.addEventListener("click", setDate, true);
                    newDiv.addEventListener("mouseover", hoverOn, true);
                    newDiv.addEventListener("mouseout", hoverOff, true);
                    newDiv.addEventListener("click", setDate, true);
                    //event.preventDefault();
                }
            }

            newCell.appendChild(newDiv);
            
            if (!smallCal)
            {
                newCell.className='dayCell';
            }
            
            newRow.appendChild(newCell);
        }

        rowObj.appendChild(newRow);
    }
    
    getStyle(calendarID+"waitPanel").display='none';
    getStyle(calendarID+'calendarTable').display='inline';
    
    checkSelectedDates(calendarID);
}

function selectDate(calendarID, seldate)
{
    var calTable = gO(calendarID);
    
    for (myrow=0; myrow<calTable.rows.length; myrow++) {
        if (calTable.rows[myrow].cells.length > 1) {

                for (mycell = 0; mycell < calTable.rows[myrow].cells.length; mycell++) {
                    var divobj = calTable.rows[myrow].cells[mycell].childNodes[0];
                    var splobj = divobj.getAttribute('tmpDate').split('-');
                    var divdate = new Date(splobj[2], splobj[1] - 1, splobj[0])

                    if (compareDates(divdate, seldate)) {
                        divobj.click();
                    }
                }
            }

        }  
    
    reisplanChanged();
}

function checkSelectedDates(calendarID)
{
    var heenCal;
    var terugCal;
    
    var heenSel;
    var terugSel;

    if (calendarID.toLowerCase().indexOf('kalender_heen')>-1)
    {
        heenSel = gO(calendarID+'selectedDate');
        terugSel = gO(calendarID.replace("Kalender_Heen", "Kalender_Terug")+'selectedDate');
        
        heenCal = gO(calendarID+'calendarTable');
        terugCal = gO(calendarID.replace("Kalender_Heen", "Kalender_Terug")+'calendarTable');
    } else {
        heenSel = gO(calendarID.replace("Kalender_Terug", "Kalender_Heen")+'selectedDate');
        terugSel = gO(calendarID+'selectedDate');

        heenCal = gO(calendarID.replace("Kalender_Terug", "Kalender_Heen")+'calendarTable');
        terugCal = gO(calendarID+'calendarTable');
    }
    
    var heenDate;
    var terugDate;
    
    if (heenSel && terugSel)
    {
        if (heenSel.value!='' && terugSel.value!='')
        {
            var splitHeen = new Array();
            splitHeen = heenSel.value.split('-');
            var splitTerug = new Array();
            splitTerug = terugSel.value.split('-');
            
            heenDate = new Date(splitHeen[2], parseFloat(splitHeen[1])-1, splitHeen[0]);
            terugDate = new Date(splitTerug[2], parseFloat(splitTerug[1])-1, splitTerug[0]);
           
            for (myrow=0; myrow<heenCal.rows.length; myrow++) {
                
                if (heenCal.rows[myrow].cells.length > 1) {
                    
                    for (mycell = 0; mycell < heenCal.rows[myrow].cells.length; mycell++) {
                        var divobj = heenCal.rows[myrow].cells[mycell].childNodes[0];
                        var splobj = divobj.getAttribute('tmpDate').split('-');
                        var divdate = new Date(splobj[2], splobj[1] - 1, splobj[0])

                        if (compareDates(divdate, heenDate)) {
                            divobj.className = divobj.getAttribute('fixedClass');
                        } else if (divdate > heenDate && divdate <= terugDate) {
                            divobj.className = divobj.className.replace('normal', 'selected');
                        } else {
                            divobj.className = divobj.className.replace('selected', 'normal');
                        }
                    }

                }

            }            
            
            for (myrow=0; myrow<terugCal.rows.length; myrow++) {
                if (terugCal.rows[myrow].cells.length > 1) {
                    for (mycell = 0; mycell < terugCal.rows[myrow].cells.length; mycell++) {
                        var divobj = terugCal.rows[myrow].cells[mycell].childNodes[0];
                        var splobj = divobj.getAttribute('tmpDate').split('-');
                        var divdate = new Date(splobj[2], splobj[1] - 1, splobj[0])

                        if (compareDates(divdate, terugDate)) {
                            divobj.className = divobj.getAttribute('fixedClass');
                        } else if (divdate >= heenDate && divdate < terugDate) {
                            divobj.className = divobj.className.replace('normal', 'selected');
                        } else {
                            divobj.className = divobj.className.replace('selected', 'normal');
                        }
                    }
                }
            }            

        }
    }
}

function preSelectDate(objid, dagid, mndid)
{
    var calid = objid.replace('selectedDate', '');

    var dagDD = gO(dagid);
    var mndDD = gO(mndid);

    var jaar = mndDD.value.substr(2,4);
    var maand = mndDD.value.substr(0,2);
    var dag = dagDD.value;

    gO(objid).value=dag.toString()+'-'+maand.toString()+'-'+jaar.toString();
    //gO(calid+'dateSelected').value='true';
    gO(calid+'selectedMonth').value=mndDD.value;

    fillCalendar(calid, maand, jaar);

    checkSelectedDates(calid);

    if (calid.toLowerCase().indexOf('datumheen')>-1)
    {
        document.cookie = "vertrek_datum="+jaar+'-'+maand+'-'+dag;
    } else {
        document.cookie = "retour_datum="+jaar+'-'+maand+'-'+dag;
    }

    //gO(calid+'dateSelected').value='true';
        
    var currentCity='';
        
    if (calid.indexOf('WensenPanel')>-1)
    {
        var tmpObj = gO(calid.substr(0,calid.indexOf('WensenPanel')+11)+'_Bestemming_DD');

        if (tmpObj)
        {
            currentCity = tmpObj.value;    
        }
    }
    
//    else if (calid.indexOf('ZoekenBoek')>-1) {
//        var tmpObj = gO(calid.substr(0,calid.indexOf('ZoekenBoek')+10)+'_Bestemming_DD');

//        if (tmpObj)
//        {
//            currentCity = tmpObj.value;    
//        }
//    }
        
    if (currentCity!='')
    {
        var aantalVolw = noVolw();
        var aantalKind = noKind();
            
        if (calid.indexOf('datumHeen')>-1)
        {
            var othCal = gO(calid.replace('datumHeen','datumTerug')+'selectedDate');
            if (othCal.value!='')
            {
                var thisCal=gO(calid);
                    
                var depDate = gO(calid+'selectedDate').value;
                var retDate = gO(calid.replace('datumHeen','datumTerug')+'selectedDate').value;
                
                //updateAvailIndividual(depDate,retDate);//gO(callObj.getAttribute('calID')+'selectedDate').value=
                if (aantalVolw){
                    var volw = parseInt(aantalVolw[aantalVolw.selectedIndex].value);
                    var kind = parseInt(aantalKind[aantalKind.selectedIndex].value);
                } else {
                    var volw = 2;
                    var kind = 0;
                }

                updateAvailAll(depDate,retDate, aantalKamers(volw, kind), volw, kind);
            }
        } else {
            var othCal = gO(calid.replace('datumTerug','datumHeen')+'selectedDate');
            if (othCal.value!='')
            {
                var thisCal=gO(calid);
                    
                var retDate = gO(calid+'selectedDate').value;
                var depDate = gO(calid.replace('datumTerug','datumHeen')+'selectedDate').value;
                
                //updateAvailIndividual(depDate,retDate);
                if (aantalVolw){
                    var volw = parseInt(aantalVolw[aantalVolw.selectedIndex].value);
                    var kind = parseInt(aantalKind[aantalKind.selectedIndex].value);
                } else {
                    var volw = 2;
                    var kind = 0;
                }
                
                updateAvailAll(depDate,retDate, aantalKamers(volw, kind), volw, kind);
            }
        }        
    }
}

function setDate(event)
{
    var callObj;
    var smallCalendar = false;
    
    if (browser.isIE) {
      callObj = window.event.srcElement;
    } else if (browser.isNS) {
      callObj = event.target;
    }
    
    if (callObj.nodeName=="IMG") { callObj = callObj.parentNode; }
    //datumSelectieMndDD
    //datumSelectieDagDD
    
    var tmpObj = new Array();
    tmpObj = callObj.getAttribute('tmpDate').split('-');
        
    var kalenderMsg = gO(callObj.getAttribute('calID')+'KalenderMelding');
    if (kalenderMsg)
    {
        // grote kalender
        kalenderMsg.innerHTML = "<b>Geselecteerde datum:</b><br/>"+callObj.getAttribute('tmpDate');
    } else {
        // kleine kalender
        var dayDD=gO(callObj.getAttribute('calID').replace('KleineKalender_','datumSelectieDagDD'));
        var mndDD=gO(callObj.getAttribute('calID').replace('KleineKalender_','datumSelectieMndDD'));
                
        dayDD.value=tmpObj[0];
        mndDD.value=((tmpObj[1]<10)?'0'+tmpObj[1]:tmpObj[1])+tmpObj[2];
        
        smallCalendar=true;
    }
    gO(callObj.getAttribute('calID')+'selectedDate').value=callObj.getAttribute('tmpDate');
    
    var calTable = gO(callObj.getAttribute('calID')+'calendarTable');
//    // Rijen object    
    var rowObj;

    if (calTable.tBodies)
    {
        if (calTable.tBodies.length==0)
        {
            rowObj = calTable;
        } else {
            rowObj = calTable.tBodies[0];
        }
    } else {
        rowObj = calTable;
    }
    
    for (rownr=0; rownr<rowObj.rows.length; rownr++)
    {
        for (cellnr=0; cellnr<rowObj.rows[rownr].cells.length; cellnr++)
        {
            var mydiv = rowObj.rows[rownr].cells[cellnr].firstChild;
            if (mydiv.className==mydiv.getAttribute('fixedClass'))
            {
                mydiv.className=mydiv.getAttribute('tmpClass');
            }
        }
    }

    callObj.className = callObj.getAttribute('fixedClass');
    
    checkSelectedDates(callObj.getAttribute('calID'));
    
    if (callObj.getAttribute('calID').toLowerCase().indexOf('kalender_heen')>-1)
    {
        //document.cookie = "vertrek_datum="+tmpObj[2]+'-'+tmpObj[1]+'-'+tmpObj[0];
    } else {
        //document.cookie = "retour_datum="+tmpObj[2]+'-'+tmpObj[1]+'-'+tmpObj[0];
    }

    
    if (smallCalendar)
    {
        var tmpCalid=callObj.getAttribute('calID');
        
        //gO(tmpCalid+'dateSelected').value='true';
        
        var currentCity='';
        
        if (tmpCalid.indexOf('WensenPanel')>-1)
        {
            var tmpObj = gO(tmpCalid.substr(0,tmpCalid.indexOf('WensenPanel')+11)+'_Bestemming_DD');
            
            if (tmpObj)
            {
                currentCity = tmpObj.value;    
            }
        }
        
        if (currentCity!='')
        {
            var aantalVolw = noVolw();
            var aantalKind = noKind();
            
            if (tmpCalid.indexOf('datumHeen')>-1)
            {
                var othCal = gO(tmpCalid.replace('datumHeen','datumTerug')+'selectedDate');
                if (othCal.value!='')
                {
                    var thisCal=gO(tmpCalid);
                        
                    var depDate = gO(tmpCalid+'selectedDate').value;
                    var retDate = gO(tmpCalid.replace('datumHeen','datumTerug')+'selectedDate').value;
                    
                    //updateAvailIndividual(depDate,retDate);//gO(callObj.getAttribute('calID')+'selectedDate').value=
                    if (aantalVolw){
                        var volw = parseInt(aantalVolw[aantalVolw.selectedIndex].value);
                        var kind = parseInt(aantalKind[aantalKind.selectedIndex].value);
                    } else {
                        var volw = 2;
                        var kind = 0;
                    }
                   
                    updateAvailAll(depDate,retDate, aantalKamers(volw, kind), volw, kind);
                }
            } else {
                var othCal = gO(tmpCalid.replace('datumTerug','datumHeen')+'selectedDate');
                if (othCal.value!='')
                {
                    var thisCal=gO(tmpCalid);
                        
                    var retDate = gO(tmpCalid+'selectedDate').value;
                    var depDate = gO(tmpCalid.replace('datumTerug','datumHeen')+'selectedDate').value;
                    
                    //updateAvailIndividual(depDate,retDate);
                    if (aantalVolw){
                        var volw = parseInt(aantalVolw[aantalVolw.selectedIndex].value);
                        var kind = parseInt(aantalKind[aantalKind.selectedIndex].value);
                    } else {
                        var volw = 2;
                        var kind = 0;
                    }

                    updateAvailAll(depDate,retDate, aantalKamers(volw, kind), volw, kind);                
                }
            }        
        }

        
        hidePanel(callObj);
    } else {
        reisplanChanged();
    }
}

function hoverOn(event)
{
    var callObj;
    
    if (browser.isIE) {
      callObj = window.event.srcElement;
    } else if (browser.isNS) {
      callObj = event.target;
    }

    if (callObj.nodeName=="IMG") { callObj = callObj.parentNode; }

    if (callObj.className.indexOf('small')==-1)
    {
        if (callObj.className != callObj.getAttribute('fixedClass'))
        {
            callObj.setAttribute("tmpClass", callObj.className);
            callObj.className = "generic_Hover";
        }
    } else {
        callObj.setAttribute("tmpClass", callObj.className);
        callObj.className = "small_Hover";
    }
    
}

function hoverOff(event)
{
    var callObj;
    
    if (browser.isIE) {
      callObj = window.event.srcElement;
    } else if (browser.isNS) {
      callObj = event.target;
    }
    
    if (callObj.nodeName=="IMG") { callObj = callObj.parentNode; }


    if (callObj.className != callObj.getAttribute('fixedClass'))
    {
        callObj.className = callObj.getAttribute("tmpClass");
    }        
}

function daysInMonth(monthnr, yearnr)
{
    return 32 - new Date(yearnr, monthnr, 32).getDate();
}

function changeAvailMonth(numMonth, callObj) {
    var small=(callObj.src)?((callObj.src.indexOf('small')==-1)?false:true):false;
    
    if (callObj.id.indexOf('disabled')==-1)
    {
        var monthList = gO(callObj.id.substr(0, callObj.id.lastIndexOf('_')+1)+'maandenLijst');

        var curIndex = monthList.selectedIndex;
        var newIndex = curIndex + numMonth;

        if (callObj.id.indexOf('selectedMonth')>-1)
        {
            if (numMonth>0)
            {
                callObj=gO(callObj.id.replace('selectedMonth', 'volgendeMaand'));
            } else {
                callObj=gO(callObj.id.replace('selectedMonth', 'vorigeMaand'));
            }
        }
        
        if (newIndex<0)
        {
            if (small)
            {
                callObj.src='/App_Image/button/vorige_disabled_small.png';
            } else {
                callObj.src='/App_Image/button/vorige_disabled.png';
            }
        } else if (newIndex>monthList.length-1) {
            if (small)
            {
                callObj.src='/App_Image/button/volgende_disabled_small.png';
            } else {
                callObj.src='/App_Image/button/volgende_disabled.png';
            }
        } else {
            var vorigeObj = gO(callObj.id.replace('volgende', 'vorige'));
            var volgendeObj = gO(callObj.id.replace('vorige', 'volgende'));
        
            if (newIndex==0)
            {
                if (small)
                {
                    vorigeObj.src='/App_Image/button/vorige_disabled_small.png';
                } else {
                    vorigeObj.src='/App_Image/button/vorige_disabled.png';
                }
            } else {
                if (small)
                {
                    vorigeObj.src='/App_Image/button/vorige_small.png';
                } else {
                    vorigeObj.src='/App_Image/button/vorige.png';
                }            
            }
            
            if (newIndex==monthList.length-1)
            {
                if (small)
                {
                    volgendeObj.src='/App_Image/button/volgende_disabled_small.png';
                } else {
                    volgendeObj.src='/App_Image/button/volgende_disabled.png';
                }
            } else {
                if (small)
                {
                    volgendeObj.src='/App_Image/button/volgende_small.png';
                } else {
                    volgendeObj.src='/App_Image/button/volgende.png';
                }
            }
            
            monthList.selectedIndex=newIndex;

            checkUnitsMinMaxDate(monthList);

            monthList.onchange();
        }
    } else {
        return false;
    }
}

function checkUnitsMinMaxDate(monthList) {
    var small = (monthList.id) ? ((monthList.id.indexOf('small') == -1) ? false : true) : false;

    if (monthList.id.indexOf('Kalender_Heen') > -1) {
        var kamertable = gO(kamertableID);
        
        if (kamertable && !small) {
            var selmonth = monthList[monthList.selectedIndex].value;
            var ddmonth = selmonth.substr(0, 2);
            var ddyear = selmonth.substr(2);
            var fom = new Date(ddyear, parseInt(ddmonth) - 1, 1);
            var lom = new Date(ddyear, ddmonth, 0);

            var visiblerows = 0;
            var selrooms = 0;

            gO('noRooms').style.display = 'none';

            for (i = 0; i < kamertable.rows.length; i++) {
                var mindate = new Date(kamertable.rows[i].getAttribute('mindate').substr(0, 4), parseInt(kamertable.rows[i].getAttribute('mindate').substr(5, 2)) - 1, kamertable.rows[i].getAttribute('mindate').substr(8, 2));
                var enddate = new Date(kamertable.rows[i].getAttribute('maxdate').substr(0, 4), parseInt(kamertable.rows[i].getAttribute('maxdate').substr(5, 2)) - 1, kamertable.rows[i].getAttribute('maxdate').substr(8, 2));

                var ddcol = kamertable.rows[i].getElementsByTagName("select");

                if ((fom > enddate) || (lom < mindate)) {
                    kamertable.rows[i].style.display = 'none';
                    
                    for (j = 0; j < ddcol.length; j++) {
                        ddcol[j].selectedIndex = 0;
                    }
                } else {
                    kamertable.rows[i].style.display = 'inline';

                    for (j = 0; j < ddcol.length; j++) {
                        selrooms += ddcol[j].selectedIndex;
                    }

                    visiblerows++;
                }
            }

            if (visiblerows == 0) {
                gO('noRooms').style.display = 'block';
            } else {
                if (selrooms == 0) {
                    for (i = 0; i < kamertable.rows.length; i++) {
                        var occ = parseInt(kamertable.rows[i].getAttribute('occ'));

                        if (kamertable.rows[i].style.display != 'none') {
                            if (occ == 2) {
                                var ddcol = kamertable.rows[i].getElementsByTagName("select");

                                for (j = 0; j < ddcol.length; j++) {
                                    ddcol[j].selectedIndex = 1;
                                }

                                if (ddcol.length > 0) {
                                    i = kamertable.rows.length;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

function compareDates(date1, date2)
{
    if ((date1.getFullYear()==date2.getFullYear()) && (date1.getDate()==date2.getDate()) && (date1.getMonth()==date2.getMonth()))
    {
        return true;
    } else {
        return false;
    }
}

var currentPanel;
var targetWidth;
var targetHeight;
var panelTimeout;

function flowPanel()
{
    var myWidth=parseInt(currentPanel.width);
    var myHeight=parseInt(currentPanel.height);
    
    myWidth=Math.floor(myWidth/6*5);
    myHeight=Math.floor(myWidth/6*5);

    if (myWidth<1)
    {
        myWidth=0;
    }
    
    if (myHeight<1)
    {
        myHeight=0;
    }
    
    currentPanel.width = myWidth.toString() + 'px';
    currentPanel.height = myHeight.toString() + 'px';
    
    var newLeft = -1*(myWidth)+10;
    var newTop = -1*(myHeight/2)-10;
    
    if (newLeft>10) { newLeft=10 }
    if (newTop>-10) { newTop=-10; }
    
    currentPanel.left = newLeft.toString() + 'px';
    currentPanel.top = newTop.toString() + 'px';
    
    if (myWidth!=targetWidth || myHeight!=targetHeight)
      {
        panelTimeout=setTimeout('flowPanel()', 20);
    }
}

function hidePanel(myobj)
{
    if (myobj.id.indexOf('closeImg')>-1)
    {
        currentPanel=getStyle(myobj.id.replace('closeImg','contentPanel'));
    } else {
        currentPanel=getStyle(myobj.getAttribute('calID')+'contentPanel');    
    }
       
    targetWidth=0;
    targetHeight=0;
    panelTimeout=setTimeout('flowPanel()', 300);
}

function showPanel(myobj)
{
//    if (myobj.nextSibling.nextSibling.id.indexOf('datumTerug')>-1)
//    {
//        var heenMaandJaar = gO(myobj.nextSibling.nextSibling.parentElement.id.replace('datumTerug','datumHeen').replace('layoutPanel','maandenLijst')).value;
//        var heenMaand=heenMaandJaar.substr(0,2);
//        var heenJaar=heenMaandJaar.substr(2,4);
//        var myCalTable = myobj.id.replace('datumTerug', 'datumHeen').replace('datumSelectieIconImage', '');
//        //fillCalendar(
//        fillCalendar(myCalTable, heenMaand, heenJaar);
//    }
    if (panelTimeout>0)
    {
        currentPanel.display='none';
        clearTimeout(panelTimeout);
        panelTimeout=0;
    }    
    
    currentPanel=getStyle(myobj.id.replace('datumSelectieIconImage','contentPanel'));
    currentPanel.display='inline';
    
    currentPanel.left='-143px';
    currentPanel.top='-93px';
    currentPanel.width='154px';
    targetWidth=154;
    targetHeight=166;
    currentPanel.height='166px';
   
}














































// Oude kalender
//function fillTable(tableID)
//{
//    var myCalendar = gO(tableID);
//    var dagHidden = gO(tableID.replace('availabilityTable', 'calDag'));
//    var maandHidden = gO(tableID.replace('availabilityTable', 'calMaand'));
//    var jaarHidden = gO(tableID.replace('availabilityTable', 'calJaar'));
//    var accoHidden = gO(tableID.replace('availabilityTable', 'calAccoID'));
//    var fixedDate = gO(tableID.replace('availabilityTable', 'calFixed'));
//    
//    var caldate = new Date(parseInt(jaarHidden.value), parseInt(maandHidden.value)-1, 1);
//    var curdate = new Date();
//    
//    var numberRows = 6;
//        
//    var rowObj;

//    if (myCalendar.tBodies)
//    {
//        if (myCalendar.tBodies.length==0)
//        {
//            var newBody = document.createElement("tbody");
//            myCalendar.appendChild(newBody);
//        } else {
//            rowObj = myCalendar.tBodies[0];
//        }
//    } else {
//        rowObj = myCalendar;
//    }
//    
//    while (rowObj.childNodes.length>1)
//    {
//        rowObj.removeChild(rowObj.childNodes[1]);
//    }        
//    
//    
//    var fom = caldate.getDay()
//    if (fom == 0) { fom = 7; }
//    var dlm = (numberRows-6) + (fom - 1);
//    var dtm = dim(caldate.getMonth(), caldate.getFullYear())
//    var dnm = (numberRows*7) - dlm - dtm;
//    
//    var temp = new Date(curdate.getFullYear(), curdate.getMonth()-1, 1);
//    var dilm = dim(temp.getMonth(), temp.getFullYear());

//    var alldays = new Array();
//    var coldays = new Array();
//    var alldayInc = 0;

//    // Dagen in vorige maand
//    for (i=0; i<dlm; i++)
//    {
//        alldays[alldayInc]=dilm-(dlm-1)+i;
//        coldays[alldayInc]=0;
//        alldayInc++;
//    }
//    
//    var selindex=-1;
////    
//    // Dagen huidige maand
//    for (i=1; i<=dtm; i++)
//    {
////        if (mysel > 0)
////        {
////            if (mysel == i)
////            {
////                selindex=alldayI;
////            }
////        }
//        alldays[alldayInc]=i;
//        coldays[alldayInc]=1;
//        alldayInc++;
//    }
//    
//    // Dagen volgende maand
//    for (i=1; i<=dnm; i++)
//    {
//        alldays[alldayInc]=i;
//        coldays[alldayInc]=0;
//        alldayInc++;
//    }

//    for (i=0; i<numberRows; i++)
//    {
//        var newRow = document.createElement('tr');
//                        
//        for (j=0; j<7; j++)
//        {
//            var newCell = document.createElement('td');  
//            
//            newCell.innerHTML=(alldays[(i*7)+j]).toString();

//            if (selindex == (i*7)+j)
//            {
//                newCell.className='calSelected';
//            } else {
//                if (coldays[(i*7)+j]==1)
//                {
//                    newCell.className='calPending';
//                    //newCell.onmouseover=changeCol;
//                    //newCell.onmouseout=changeCol;
//                    //newCell.onclick=setDate;
//                } else {
//                    newCell.className='calPlain';
//                    //newCell.onmouseover=changeCol;
//                    //newCell.onmouseout=changeCol;
//                    //newCell.onclick=setDate;
//                }
//            }
//            
//            newRow.appendChild(newCell);
//        }
//        
//        rowObj.appendChild(newRow);
//    }
//    
//    //TODO: andere plek voor performance vinden
//    updateCalendar(tableID, accoHidden.value, 2, maandHidden.value, jaarHidden.value, fixedDate.value);
//}

//function changeMonth(callingObj, monthNum)
//{
//    var mydate;
//    var tempdate = new Date();
//    var nowdate = new Date(tempdate.getFullYear(), tempdate.getMonth(), 1);
// 
//    var calPrefix = callingObj.parentNode.parentNode.parentNode.parentNode.id.substring(0, callingObj.parentNode.parentNode.parentNode.parentNode.id.lastIndexOf('_'));

//    var calMaand = gO(calPrefix+'_calMaand');
//    var calJaar = gO(calPrefix+'_calJaar');
// 
//    var mymnd = parseInt(calMaand.value);
//    var myyear= parseInt(calJaar.value);
//    mydate = new Date(myyear, (mymnd-1)+monthNum, 1);

//    if (mydate < nowdate)
//    {
//        alert('Datum kan niet in het verleden liggen');
//    } else if (mydate > new Date(nowdate.getFullYear(), nowdate.getMonth()+12, 1)) {
//        alert('Er kan tot maximaal 1 jaar vantevoren worden geboekt.');
//    } else {
//        calMaand.value = mydate.getMonth()+1;
//        calJaar.value = mydate.getFullYear();

//        var maandenDD = gO(calPrefix+'_maandenDD')

//        selFast(maandenDD, mydate.getMonth(), mydate.getFullYear());

//        var hotID = gO(calPrefix+'_calAccoID').value;
//        
//        fillTable(calPrefix+'_availabilityTable');
////                    
////        showCal(toonmnd);
//    }
//}

function dim(monthnr, yearnr)
{
    return 32 - new Date(yearnr, monthnr, 32).getDate();
}

//function showAvailability(resultObj)
//{
//    var tableID = resultObj.tableID;
//    var myCalendar = gO(tableID);
//    
//    if (resultObj.List[resultObj.occup])
//    {
//        var availCol = resultObj.List[resultObj.occup];    
//        
//        var rowObj;

//        if (myCalendar.tBodies)
//        {
//            if (myCalendar.tBodies.length==0)
//            {
//                var newBody = document.createElement("tbody");
//                myCalendar.appendChild(newBody);
//            }

//            rowObj = myCalendar.tBodies[0];
//        } else {
//            rowObj = myCalendar;
//        }

////        while (rowObj.childNodes.length>1)
////        {
////            rowObj.removeChild(rowObj.childNodes[1]);
////        }

//        if (rowObj.childNodes.length>1)                
//        {
//            for (rowidx=1; rowidx<rowObj.childNodes.length; rowidx++)
//            {
//                for (celidx=0; celidx<rowObj.childNodes[rowidx].childNodes.length; celidx++)
//                {
//                    var mycell = rowObj.childNodes[rowidx].childNodes[celidx];
//                    
//                    if (mycell.className=='calPending')
//                    {
//                        var dayVal = parseInt(mycell.innerHTML);
//                        if (availCol[dayVal])
//                        {
//                            switch (availCol[dayVal].toUpperCase())
//                            {
//                                case "RQ":
//                                    mycell.className='calOnRequest';
//                                break;
//                                case "RP":
//                                    mycell.className='calOnRequest';
//                                break;
//                                case "OK":
//                                    mycell.className='calAvailable';
//                                break;
//                                default:
//                                    mycell.className='calUnAvailable';
//                                break;
//                                
//                            }
//                        }
//                    }
//                }
//            }
//        }
//        
//        if (resultObj.FixedDate)
//        {
//            showMonth(myCalendar);
//        } else {
//            //tableID
//            getStyle(tableID.replace('availabilityTable', 'availabilityMenu')).visibility='visible';
//            fillMonths(myCalendar);
//            selFast(myCalendar, resultObj.maand, resultObj.jaar);
//        }
//    } else {
//        // TODO javascript fout
//    }
//}


//function showMonth(fillobj)
//{
//    var calPrefix = fillobj.id.substring(0, fillobj.id.lastIndexOf('_'));
//    var calMaand = gO(calPrefix+'_calMaand');
//    var calJaar = gO(calPrefix+'_calJaar');

//    var myobj = gO(calPrefix+'_availabilityMenu');
//    var mystyle = getStyle(calPrefix+'_availabilityMenu');
//    
//    var monthTxt=mndname(parseInt(calMaand.value)) + ' ' + calJaar.value;
//    
//    mystyle.fontSize='11px';
//    mystyle.fontWeight='bold';
//    mystyle.textAlign='center';
//    mystyle.paddingTop='9px';
//    mystyle.height='16px';
//    mystyle.visibility='visible';
//        
//    myobj.innerHTML=monthTxt;
//}

//function fillMonths(fillobj)
//{
//    var ddID = fillobj.id.replace('availabilityTable', 'maandenDD');
//    ddobj=gO(ddID);
//    nowdat=new Date();
//    
//    if (ddobj.length<3)
//    {
//        for (i=0; i<12; i++)
//        {
//            newdat=new Date(nowdat.getFullYear(), nowdat.getMonth() + i, 1);
//            
//            var y=document.createElement('option');
//            y.text = mndname(newdat.getMonth()+1) + ' ' + parseFloat(newdat.getFullYear());
//            
//            if (newdat.getMonth()<9) { y.value=newdat.getFullYear().toString() + '0' + (newdat.getMonth()+1).toString(); } else { y.value=newdat.getFullYear().toString() + (newdat.getMonth()+1).toString(); }

//            try {
//                ddobj.add(y,null);
//            } catch(ex) {
//                ddobj.add(y);
//            }
//        }
//    }
//}

//function monthSelect(fastObj)
//{
//    var calPrefix = fastObj.id.substring(0, fastObj.id.lastIndexOf('_'));
//    var calMaand = gO(calPrefix+'_calMaand');
//    var calJaar = gO(calPrefix+'_calJaar');

//    var selectedYear = fastObj.value.substr(0,4);
//    var selectedMonth = fastObj.value.substr(4,2);
//    
//    calMaand.value = (parseInt(selectedMonth)).toString();
//    calJaar.value = (parseInt(selectedYear)).toString();
//    
//    fillTable(calPrefix+'_availabilityTable');
//}

//function selFast(fastobj, tmpMaand, tmpJaar)
//{
//    var ddID = fastobj.id.replace('availabilityTable', 'maandenDD');
//    var myobj = gO(ddID);

//    var selvalue = '';
//    
//    if (tmpMaand<10) { selvalue = tmpJaar.toString() + '0' + tmpMaand.toString(); } else { selvalue = tmpJaar.toString() + tmpMaand.toString(); }
//    
//    var selindx = 0;
//                    
//    for (i=0; i<myobj.options.length; i++)
//    {
//        if (myobj.options[i].value == selvalue)
//        {
//            selindx = i;
//            i=myobj.options.length;
//        }
//    }
//    
//    myobj.selectedIndex = selindx;
//}
