﻿prefix='ctl00_BodyContent_';

if (document.layers){
  //Netscape 4 specific code
  pre = 'document.';
  preobj = 'document';
  endobj = '';
  post = '';
} else if (document.getElementById) {
  //Netscape 6 specific code
  pre = 'document.getElementById("';
  preobj = 'document.getElementById("';
  endobj = '")';
  post = '").style';
} else {
  //IE4+ specific code
  pre = 'document.all.';
  preobj = 'document.all';
  endobj = '';
  post = '.style';
} 

function getObj(objname)
{
    myObj = eval(preobj+objname+endobj);
    
    return myObj;
}

function getStyle(objname)
{
    myObj = eval(preobj+objname+post);
    
    return myObj;
}

function getParentObj(objname)
{
    myObj = eval('parent.'+preobj+objname+endobj);
    //alert('parent.'+preobj+objname+endobj);
    //alert(myObj);
    
    return myObj;
}

function recalcDates(subadd)
{
    var mymnd=getObj(prefix+subadd+'reis_Maand');
    var myjaa=getObj(prefix+subadd+'reis_Jaar');

    var mydat='';
    
    var tempobj=getObj(prefix+subadd+'reis_Datum');
    
    if (tempobj.value == '')
    {
        mydat='';
    } else {
        mydat=tempobj;       
    }
        
    if (mydat == '')
    {
        var nowdat = new Date()
        var tempdat = new Date(nowdat.getFullYear(), nowdat.getMonth(), nowdat.getDate() + 10);
        
        mymnd.value = tempdat.getMonth();
        myjaa.value = tempdat.getFullYear();
    } else {
        var tempdat = mydate(tempobj.value);

        mymnd.value = tempdat.getMonth();
        myjaa.value = tempdat.getFullYear();
    }
}

function showCal(subadd)
{
    toonmnd = subadd+'_Dagen';
 
    var curdate;
    
    var myyear= parseInt(getObj(prefix+subadd+'reis_Jaar').value);
    var mymnd= parseInt(getObj(prefix+subadd+'reis_Maand').value);
    curdate = new Date(myyear, mymnd, 1);
    
    if (getObj(subadd+'_FastSelect').options.length == 0) 
    { 
        FillMonths(subadd); 
        selFast(subadd+'_FastSelect', mndname(mymnd) + " " + parseFloat(myyear));
    }
    
    var comdate = mydate(getObj(prefix+subadd+'reis_Datum').value);
    
    var nowdate = new Date();
    
    if (comdate > nowdate)
    {
        if (comdate.getMonth() == mymnd)
        {
            var mysel = comdate.getDate();
            selFast(subadd+'_FastSelect', mndname(comdate.getMonth()) + " " + comdate.getFullYear()); 
        } else {
            var mysel = 0;
        }
    } else {
        var mysel = 0;
    }
            
    HeenCal = getObj(toonmnd)

    if (HeenCal.rows.length == 0)
    {
        for (i=0; i<7; i++)
        {
            HeenCal.insertRow(HeenCal.rows.length)
            
            for (j=0; j<7; j++)
            {
                HeenCal.rows[i].insertCell(HeenCal.rows[i].cells.length)
            }
        }

        for (i=0; i<7; i++)
        {
            HeenCal.rows[0].cells[i].className = 'dow';
            
            dayval = '';
            
            switch(i)
            {
                case 0:
                    dayval='ma';
                break;
                case 1:
                    dayval='di';
                break;
                case 2:
                    dayval='wo';
                break;
                case 3:
                    dayval='do';
                break;
                case 4:
                    dayval='vr';
                break;
                case 5:
                    dayval='za';
                break;
                case 6:
                    dayval='zo';
                break;
           }
            
           HeenCal.rows[0].cells[i].innerHTML = dayval;
        }
    }
            
    fom = curdate.getDay()
        
    if (fom == 0) { fom = 7; }
    
    var dlm = (fom - 1);
    var dtm = dim(curdate.getMonth(), curdate.getFullYear())
    var dnm = 42 - dlm - dtm;
    
    var temp = new Date(curdate.getFullYear(), curdate.getMonth()-1, 1);
    var dilm = dim(temp.getMonth(), temp.getFullYear());
    
//    alert('dlm=' + parseFloat(dlm));
//    alert('dtm=' + parseFloat(dtm));
//    alert('dnm=' + parseFloat(dnm));
//    alert('dilm=' + parseFloat(dilm));

    var alldays = new Array();
    var coldays = new Array();
    var alldayI = 0;

    // Dagen in vorige maand
    for (i=0; i<dlm; i++)
    {
        alldays[alldayI]=dilm-(dlm-1)+i;
        coldays[alldayI]=0;
        alldayI++;
    }
    
    var selindex=-1;
    
    // Dagen huidige maand
    for (i=1; i<=dtm; i++)
    {
        if (mysel > 0)
        {
            if (mysel == i)
            {
                selindex=alldayI;
            }
        }
        alldays[alldayI]=i;
        coldays[alldayI]=1;
        alldayI++;
    }
    
    // Dagen volgende maand
    for (i=1; i<=dnm; i++)
    {
        alldays[alldayI]=i;
        coldays[alldayI]=0;
        alldayI++;
    }

    for (i=0; i<6; i++)
    {
        for (j=0; j<7; j++)
        {
            HeenCal.rows[i+1].cells[j].innerHTML=parseFloat(alldays[(i*7)+j])

            if (selindex == (i*7)+j)
            {
                HeenCal.rows[i+1].cells[j].className='fixcol';
            } else {
                if (coldays[(i*7)+j]==1)
                {
                    HeenCal.rows[i+1].cells[j].className='colday';
                    HeenCal.rows[i+1].cells[j].onmouseover=changeCol;
                    HeenCal.rows[i+1].cells[j].onmouseout=changeCol;
                    HeenCal.rows[i+1].cells[j].onclick=setDate;
                } else {
                    HeenCal.rows[i+1].cells[j].className='plnday';
                    HeenCal.rows[i+1].cells[j].onmouseover=changeCol;
                    HeenCal.rows[i+1].cells[j].onmouseout=changeCol;
                    HeenCal.rows[i+1].cells[j].onclick=setDate;
                }
            }
        }
    }
}

function showPeriod(subadd, runagain)
{    
    var hdat = mydate(getObj(prefix+'Heenreis_Datum').value);
    var tdat = mydate(getObj(prefix+'Terugreis_Datum').value);
  
    var compdat = new Date();

    // Opschonen
    var mytable = getObj(subadd+'_Dagen');
   
    for (i=1; i<mytable.rows.length; i++)
    {
        for (j=0; j<mytable.rows[i].cells.length; j++) 
        {
            if (mytable.rows[i].cells[j].className == 'colper')
            {
                mytable.rows[i].cells[j].className = 'colday';
            } else if (mytable.rows[i].cells[j].className == 'plnper') {
                mytable.rows[i].cells[j].className = 'plnday';
            }
        }
    }
                
    if (hdat > compdat)
    {
        if (tdat > compdat)
        {
            if (tdat > hdat)
            {
                var diff = tdat - hdat;
                var nights = (((diff / 1000) / 3600) / 24);

                var breakall = false;
                
                for (i=1; i<mytable.rows.length; i++)
                {
                    for (j=0; j<mytable.rows[i].cells.length; j++)
                    {
                        if (mytable.rows[i].cells[j].className.substr(0,3) == 'fix')
                        {
                            var addvar = 1;
                            if (subadd == 'Heen')
                            {
                                addvar = 1;
                            } else {
                                addvar = -1;
                            }
                            
                            for (g=1; g<=nights; g++)
                            {
                                j = j + addvar;
                                if (j < 0)
                                {
                                    i = i - 1;
                                    j = mytable.rows[i].cells.length-1;
                                } else if (j > (mytable.rows[i].cells.length-1))
                                {
                                    i = i + 1;
                                    j = 0;
                                }

                                if (i > 0 && i < mytable.rows.length)
                                {
                                    if (mytable.rows[i].cells[j].className == 'colday')
                                    {
                                        mytable.rows[i].cells[j].className = 'colper';
                                    } else if (mytable.rows[i].cells[j].className == 'plnday') {
                                        mytable.rows[i].cells[j].className = 'plnper';
                                    }
                                }   
                            }
                            breakall=true;
                        }
                        if (breakall) { break; }
                    }
                    if (breakall) { break; }
                }
            }
        }
    }
    if (runagain)
    {
        if (subadd == 'Heen')
        {
            showPeriod("Terug", false);
        } else {
            showPeriod("Heen", false);
        }
    }
}

function dim(monthnr, yearnr)
{
    return 32 - new Date(yearnr, monthnr, 32).getDate();
}

function mydate(datestr)
{
    var retdate=new Date();
    
    if (datestr != '') 
    {
        st_d=datestr.substr(0,datestr.indexOf('/'));
        rest=datestr.substr(datestr.indexOf('/')+1,datestr.length-st_d.length-1);
        st_m=rest.substr(0,rest.indexOf('/'));
        st_y=rest.substr(rest.indexOf('/')+1,rest.length-st_m.length-1);
        
        ds_d=parseInt(st_d);
        ds_m=parseInt(st_m);
        ds_y=parseInt(st_y);
        
        retdate=new Date(ds_y, ds_m, ds_d);
    }

    return retdate;
}

function changeCol(e)
{
    var targ;
    if (!e) var e = window.event;
    
    if (e.target) { targ = e.target } else if (e.srcElement) { targ = e.srcElement; }
    
    if (targ.nodeType == 3) { targ = targ.parentNode }
    
    if (targ.className == 'colday')
    {
        targ.className = 'selcol';
    } else if (targ.className == 'plnday') {
        targ.className = 'selpln';
    } else if (targ.className == 'selcol') {
        targ.className = 'colday';
    } else if (targ.className == 'selpln') {
        targ.className = 'plnday';
    }
}

function setDate(e)
{
    var targ;
    if (!e) var e = window.event;
    
    if (e.target) { targ = e.target } else if (e.srcElement) { targ = e.srcElement; }
    
    if (targ.nodeType == 3) { targ = targ.parentNode }
    
    var mytable = targ.parentNode.parentNode.parentNode;
    
    subadd=mytable.id.substr(0,mytable.id.indexOf('_'));

    for (i=0; i<mytable.rows.length; i++)
    {
        for (j=0; j<mytable.rows[i].cells.length; j++)
        {
            if (mytable.rows[i].cells[j].className == 'fixcol')
            {
                mytable.rows[i].cells[j].className = 'colday'; 
            } else if (mytable.rows[i].cells[j].className == 'fixpln')
            {
                mytable.rows[i].cells[j].className = 'plnday';
            }
        }
    }
    
    if (targ.className == 'selcol')
    {
        targ.className = 'fixcol';
    } else if (targ.className == 'selpln')
    {
        targ.className = 'fixpln';
    } else if (targ.className == 'colday')
    {
        targ.className = 'fixcol';
    } else if (targ.className == 'plnday')
    {
        targ.className = 'fixpln';
    } else if (targ.className == 'colper')
    {
        targ.className = 'fixcol';
    } else if (targ.className == 'plnper')
    {
        targ.className = 'fixpln';
    }
    
    var mydate;
    var myday=parseInt(targ.innerHTML);
    var mymonth=parseInt(getObj(prefix+subadd+'reis_Maand').value);
    var myyear=parseInt(getObj(prefix+subadd+'reis_Jaar').value);
    
    if (targ.parentNode.rowIndex < 2)
    {
        if (myday > 20)
        {
            mymonth=mymonth-1;
        }
    }
    
    if (targ.parentNode.rowIndex > 4)
    {
        if (myday < 20)
        {
            mymonth=mymonth+1;
        }
    }
    
    mydate = new Date(myyear, mymonth, myday);
    
    getObj(prefix+subadd+'reis_Datum').value=parseFloat(mydate.getDate())+'/'+parseFloat(mydate.getMonth())+'/'+parseFloat(mydate.getFullYear());
    
    if (getObj(prefix+'Terugreis_Datum').value == '')
    {
        mndstr=mndname(parseInt(getObj(prefix+'Heenreis_Maand').value)) + ' ' + getObj(prefix+'Terugreis_Jaar').value

        selFast('Terug_FastSelect', mndstr)
        
        FastSetMnd('Terug');
    }
    
    showPeriod(subadd, true);
}

function changeMonth(toonmnd, hoeveelmnd)
{
    var mydate;
    var tempdate = new Date();
    var nowdate = new Date(tempdate.getFullYear(), tempdate.getMonth(), -1);
 
    var mymnd = parseInt(getObj(prefix+toonmnd+'reis_Maand').value);
    var myyear= parseInt(getObj(prefix+toonmnd+'reis_Jaar').value);
    mydate = new Date(myyear, mymnd+hoeveelmnd, 1);

    if (mydate < nowdate)
    {
        alert('Datum kan niet in het verleden liggen');
    } else if (mydate > new Date(nowdate.getFullYear(), nowdate.getMonth()+12, 1)) {
        alert('Maximaal 1 jaar');
    } else {
        getObj(prefix+toonmnd+'reis_Maand').value = mydate.getMonth();
        getObj(prefix+toonmnd+'reis_Jaar').value = mydate.getFullYear();

        selFast(toonmnd+'_FastSelect', mndname(mydate.getMonth()) + ' ' + parseFloat(mydate.getFullYear()));
                    
        showCal(toonmnd);
    }
}

function mndname(mndnum)
{
    var mndval;
    
    switch(mndnum)
    {
        case 0:
            mndval='Januari';
        break;
        case 1:
            mndval='Februari';
        break;
        case 2:
            mndval='Maart';
        break;
        case 3:
            mndval='April';
        break;
        case 4:
            mndval='Mei';
        break;
        case 5:
            mndval='Juni';
        break;
        case 6:
            mndval='Juli';
        break;
        case 7:
            mndval='Augustus';
        break;
        case 8:
            mndval='September';
        break;
        case 9:
            mndval='Oktober';
        break;
        case 10:
            mndval='November';
        break;
        case 11:
            mndval='December';
        break;
   }
   
   return mndval;
}

function FillMonths(subadd)
{
    ddobj=getObj(subadd+'_FastSelect');
    nowdat=new Date();
    
    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()) + ' ' + parseFloat(newdat.getFullYear());
        y.value= parseFloat(newdat.getFullYear()) + "/" + parseFloat(newdat.getMonth());

        try {
            ddobj.add(y,null);
        } catch(ex) {
            ddobj.add(y);
        }
    }
}

function selFast(fastobj, mndstr)
{
    var myobj = getObj(fastobj);
    
    var selindx = 0;
                    
    for (i=0; i<myobj.options.length; i++)
    {
        if (myobj.options[i].text == mndstr)
        {
            selindx = i;
        }
    }
    
    myobj.selectedIndex = selindx;
}

function FastSetMnd(subadd)
{
    var mymnd=getObj(prefix+subadd+'reis_Maand');
    var myjaa=getObj(prefix+subadd+'reis_Jaar');
    var ddobj=getObj(subadd+'_FastSelect');
    var ddstr=ddobj.options[ddobj.selectedIndex].value;
    
    var newjaa=ddstr.substr(0,4);
    var newmnd=ddstr.substr(5,ddstr.length-newjaa.length-1);
       
    mymnd.value = newmnd;
    myjaa.value = newjaa;
    
    showCal(subadd);
}
